0
ここの以前の記事は私の問題には対処していないようです。ユニティのオブジェクトの周りを動くカメラ
私は自分のカメラに「ターゲット」という特定のポイントを移動させようとしています。ターゲットは、ゲームの中心に設定された空のゲームオブジェクトです。アイデアは、カメラがターゲットに近づいたり遠ざかったりすることなく、目に見えない球のまわりを動いているかのように、ターゲットのまわりを単に回転するということです。カメラは常に目標を指すべきです。 transform.LookAt(target)
は、ターゲット上で訓練されたカメラをうまく保つだけですが、正しい動きを得ることはできません。私が水平軸または垂直軸に沿って動いているかどうかは、それを周回するのではなく、ターゲットに常に螺旋を描きます。何か案は?
public class CameraController : MonoBehaviour {
public float speed;
public Transform target;
void Update() {
transform.LookAt(target);
if(Input.GetAxis("Vertical") != 0)
{
transform.Translate(transform.up * Input.GetAxis("Vertical") * Time.deltaTime * speed); //.up = positive y
}
if(Input.GetAxis("Horizontal") != 0)
{
transform.Translate(transform.right * Input.GetAxis("Horizontal") * Time.deltaTime * speed); //.right = positive x
}
}
}
これはまだまだ機能しません。 1つは、X軸(磁極で停止して振動する)で回転するときには、まったく動かないだろう。また、y軸の周りを回転するとき、ターゲットの上か下であっても、そのY移動がターゲットの移動と一致するまで軌道に降下します。 –
@DylanRussell私はこれらの2つの機能を自分のプロジェクトで使用していますが、うまくいくようです。これらが原因だと確信していますか? –
X軸を中心に回転する特定の点に達すると、ローカルの正の軸と負の軸が切り替わるということが、実際に極に問題があることがわかりました。上向きまたは下向きのキーを押したままにすると、ターゲットをスムーズに回転させることがわかっている、これに対処する方法はありますか? –