オブジェクトを特定の座標に向ける方法を自分用にメモ。
[ transform.LookAtを使う方法 ]
下記のスクリプトをオブジェクトにアタッチしてスペースキーを押すと、そのオブジェクトが座標(2, 3, 1)を向きます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScriptTest : MonoBehaviour { private Vector3 TargetPosition; void Start() { TargetPosition = new Vector3(2, 3, 1); } void Update() { if(Input.GetKeyDown(KeyCode.Space)) { transform.LookAt(TargetPosition); } } }
[ Quaternion.LookRotationを使う方法 ]
下記のスクリプトをオブジェクトにアタッチしてスペースキーを押すと、そのオブジェクトが座標(2, 3, 1)を向きます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScriptTest : MonoBehaviour { private Vector3 TargetPosition; void Start() { TargetPosition = new Vector3(2, 3, 1); } void Update() { if(Input.GetKeyDown(KeyCode.Space)) { transform.rotation = Quaternion.LookRotation((TargetPosition - transform.position), Vector3.Up); } } }
[ Y座標だけを向かせたい場合 ]
下記のスクリプトをオブジェクトにアタッチしてスペースキーを押すと、そのオブジェクトが座標(2, 3, 1)を向きます。ただしY軸のみでX軸とZ軸は向きません。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScriptTest : MonoBehaviour { private Vector3 TargetPosition; private Vector3 Direction; void Start() { TargetPosition = new Vector3(2, 3, 1); } void Update() { if(Input.GetKeyDown(KeyCode.Space)) { Direction = (TargetPosition - transform.position); Direction.y = 0; transform.rotation = Quaternion.LookRotation(Direction, Vector3.Up); } } }