[英]I want my object to move both forward and to the right if condition is true (C#)
所以現在我有一個對象,單擊鼠標時我想向前和向左移動或向前或向右移動。 這將產生向前的對角線運動。
if (Input.GetMouseButtonDown (0)) {
if (dir == Vector3.forward) {
dir = Vector3.left && Vector3.forward;
} else {
dir = Vector3.right && Vector3.forward;
}
}
Vector3.left
是Vector3(-1, 0, 0)
Vector3.forward
簡寫形式,而Vector3.forward
是Vector3(0, 0, 1)
Vector3.forward
簡寫形式。 所以,你可以代替做出Vector3
使用它的構造[ Vector3(float x, float y, float z)
]結合這些:
if (Input.GetMouseButtonDown (0)) {
if(dir.Equals(new Vector3(1, 0, 1))) {
dir = new Vector3(-1, 0, 1);
} else {
dir = new Vector3(1, 0, 1);
}
}
謝謝@SpencerWieczorek謝謝您的幫助,我修復了您提供的內容中的一個小錯誤,現在可以正常使用了。
if (Input.GetMouseButtonDown (0)) {
if(dir == new Vector3(1, 0, 1)) {
dir = new Vector3(-1, 0, 1);
} else {
dir = new Vector3(1, 0, 1);
}
}
再次感謝您為我指出了正確的方向,我試圖配對運算符,但是使用這些點很有意義。 同樣,更容易改變前進方向並允許更多控制。
您可以將Vectors加在一起以獲得所需的內容。
if (dir == Vector3.forward) {
dir = Vector3.left + Vector3.forward;
} else {
dir = Vector3.right + Vector3.forward;
}
在Unity文檔上查看Vector3頁面 ,然后向下滾動以查看可以使用的運算符列表,例如+,-和*。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.