Unityでプロジェクトを作成し、発射体をターゲット(モンキー)にぶつけるところまでは、下の記事を参考にしてください。
ここでは、モンキーから見た発射体の運動を観察していきます。
モンキーから見た発射体の相対速度
発射体の速度のx成分を\( v_x \)、y成分を\( v_y \)とし、重力加速度の大きさを\( g \)とすると、
時刻\( t \)のときの速度
- \( v_{発射体}=(v_x,v_y -gt) \)
- \( v_{モンキー}=(0,-gt) \)
と表すことができます。
モンキーに対する発射体の相対速度\(v’ \)(モンキーから見たときの発射体の速度)は、$$\begin{eqnarray}v’&=&v_{発射体}-v_{モンキー}\\ &=&(v_x,v_y -gt)- (0,-gt)\\ &=& (v_x,v_y)\end{eqnarray}$$
となるので、相対速度は時間によらず一定ということがわかります。つまり、モンキーから見たら発射体は真っ直ぐ自分のところに向かってきているように見えるということです。
カメラがモンキーを追跡させるスクリプトをかく
CameraControlというC#スクリプトを作成し、以下のプログラムを記述してください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public GameObject monkey;
public Vector3 offset = new Vector3(0, 0, 0);
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
this.GetComponent<Transform>().position = monkey.transform.position + offset;
}
}
そして、CameraContrall スクリプトをMain Cameraにアタッチし(①)、Main Cameraのインスペクター上にあるMonkeyにはMonkeyオブジェクトを入れます(②)。
最後に、Main CameraのTransformを以下の値に設定してください。
以上で設定は終了です。
再生をすると、
のように、発射体が自分に向かって真っ直ぐ飛んでくるのがわかると思います。
コメント