Unityで画像1のような挙動を目指しています。
画像1
(ゼルダの伝説神々のトライフォース2より)
画面奥に向かって傾いたまま、普通に移動させたいわけです。
無料アセットStandardAssetsに付いてくるThirdPersonControllerの
Ethan氏で試しています。
- 付属のThirdPersonUserController componentを削除
- 付属のThirdPersonCharacter componentを削除
- Transform componentのRotationを45に
これらの操作をして、こういう移動scriptを入れました。
public class Move : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetKey("up")) { transform.position += transform.forward * 1f * Time.deltaTime; } if (Input.GetKey("down")) { transform.position -= transform.forward * 1f * Time.deltaTime; } if (Input.GetKey("right")) { transform.position += transform.right * 1f * Time.deltaTime; } if (Input.GetKey("left")) { transform.position -= transform.right * 1f * Time.deltaTime; } } }
画像2のように一応期待通りには動いてくれますが、
前進する時がやや遅く、後退する時がやや速くなってしまいます。
画像2
Rigidbody componentを無効にしてみると、画像3のように動きました。
画像3
どうもRotationの傾きに対して忠実に動こうとして
画像2のようなぎこちない動きになってしまうようです。
実際に傾かせるのではなく、見た目だけマイケルジャクソンになってくれればいいんですが、
「前傾 移動」などで検索しても参考になりそうなのが見当たらず、
どうかアドバイスをお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。