簡體   English   中英

如果條件為真,我希望我的對象向前和向右移動(C#)

[英]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.leftVector3(-1, 0, 0) Vector3.forward簡寫形式,而Vector3.forwardVector3(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM