2017-08-26 18 views
1

私はxとyの対角方向にgameobjectの顔を持っています(zについて心配しないでください)。Unity C# - 斜め方向に向く

このコードはすでに東に直面するために動作します:

Vector3 newEuler = citizen.gameObject.transform.eulerAngles; 
newEuler.x = 0; 
newEuler.y = 90; 
transform.eulerAngles = newEuler; 

そして、これは北向きのために働く:

Vector3 newEuler = citizen.gameObject.transform.eulerAngles; 
newEuler.x = 270; 
newEuler.y = 0; 
transform.eulerAngles = newEuler; 

しかし、これは、それは北東に直面していることはありません。

Vector3 newEuler = citizen.gameObject.transform.eulerAngles; 
newEuler.x = 270; 
newEuler.y = 90; 
transform.eulerAngles = newEuler; 

どのような値を使用できますか? ありがとうございます!

+1

どの方向が正確に対角線ですか? – z3nth10n

+0

好きです。投稿された最初のコードは、彼が90度、または東に向いています。私は彼が北東、または45度に直面することを望むが、y = 45を置くだけで動作しないようです – BowmanBeric

+0

私はmyEulerのyを45にすると、東に向いているように見えます90 – BowmanBeric

答えて

1

私はこれを行う最も簡単な方法は、これはあなたのカメラは正のz方向に直面していると仮定しているQuaternion.LookRotation

//Vector3 south = Vector3.down; 
//Vector3 north = Vector3.up; 
//Vector3 east = Vector3.right; 
//Vector3 southWest = Vector3.down + Vector3.left; 
//.. you get the idea 

Vector3 northEast = Vector3.up + Vector3.right; 
Quaternion rotation = Quaternion.LookRotation(northEast); 
transform.rotation = rotation; 

を使用することだと思います。

関連する問題