私は画面の下部にプレーヤーを、画面の上部に敵を持っています。私はそれらの両方を互いに向かって連続的に回転させたい。ここでは、両方のための私のコードは次のとおりです。Player&Enemy 2Dオートローテーション
void Update()
{
Vector3 diff = target.position - transform.position;
diff.Normalize();
float zRotation = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
Vector3 lookDirection = new Vector3(0, 0, zRotation - 90);
transform.rotation = Quaternion.Euler(lookDirection);
}
は、この状態を考えると、プレイヤーは期待通りに動作しますが、敵は常にダウンプレイヤーがどこにあるかで、彼が見上げていることを意味代わりに、離れたプレイヤーから回転します。
私はこのようなdiff
ベクトル切り替えた場合:
Vector3 diff = transform.position - target.position;
そして、それは敵から離れて見える選手だし。 両方のスプライトは、エディタで回転とスケールの値が0です。
ここで何が間違っていますか?
これは2Dでは機能しません。私はZ軸で回転したいだけです。 – Abdou023
したがって、xとyのターゲット値を0に変更してください – Maakep
2Dの関数を使ってみましたか?上記のコードを使って動作させることはできますか? – Abdou023