[Unity][Quaternion][LookRotation]
void Update () { //Walk if(Input.GetButton("Horizontal") || Input.GetButton("Vertical")){ transform.Translate(Vector3.forward * Time.deltaTime * speed * 1 ); //正面 } //Direction of Caracter's face if(Input.GetButton("Horizontal") || Input.GetButton("Vertical")){ transform.rotation = Quaternion.LookRotation(transform.position + (Vector3.right * Input.GetAxisRaw("Horizontal")) + (Vector3.forward * Input.GetAxisRaw("Vertical")) - transform.position); } }
ミソはQuaternion.LookRotation
これでキャラクターの身体の向きを指定している。
Quaternion.LookRotation(向きたい方向 - 現在のポジション)で、キャラクターの向きを指定している。
ここを参照。わかりやすいスクリプト例が記載されています。
似たようなのでtransform.LookAt(target)もある。