2015-09-30 35 views
0
if (Input.GetKeyDown(KeyCode.LeftArrow)) 
{ 
    transform.Translate(-Vector3.right * distance); 
} 
else if (Input.GetKeyDown(KeyCode.RightArrow)) 
{ 
    transform.Translate(Vector3.right * distance); 
} 

想要這樣做,當按下左/右箭頭鍵時,玩家向左/向右移動但以45度角移動。有沒有辦法使用transform.translate與x和y座標,而不是Vector3.right?謝謝以45度的角度移動播放器與Transform.translate?

+0

你不能先旋轉,然後翻譯,然後旋轉回來? –

+0

可能,只是想知道是否有辦法使用x和y來代替Vector2.right,因爲它會容易得多 – lego116

+2

它不是一個「統一」,請閱讀標籤 – Backs

回答

1

當然,任何標準化的矢量是一個方向矢量,你不僅僅限於正確的,向上的,向前的。

Vector3 direction = new Vector3(1f, 1f, 0f).normalized; 

if (Input.GetKeyDown(KeyCode.LeftArrow)) 
    transform.Translate(direction * distance); 

else if (Input.GetKeyDown(KeyCode.RightArrow)) 
    transform.Translate(direction * distance);