如果条件成立,我希望我的对象向前和向右移动(C#)

时间:2017-04-19 03:23:14

标签: c# unity3d

所以现在我有一个对象,当点击鼠标时我想向前和向左或向前和向右移动。这将产生向前的对角线运动。

 if (Input.GetMouseButtonDown (0)) {
        if (dir == Vector3.forward) {
            dir = Vector3.left && Vector3.forward;
        } else {
            dir = Vector3.right && Vector3.forward;
        }
    }

3 个答案:

答案 0 :(得分:1)

Vector3.leftVector3(-1, 0, 0)的简写,Vector3.forwardVector3(0, 0, 1)的简写。因此,您可以使用它的构造函数[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);
   }
}

答案 1 :(得分: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);
   }
}

再次感谢你指出我正确的方向,我试图配对运营商,但使用这些点是有道理的。更容易改变前进,并允许更多的控制。

答案 2 :(得分:0)

您可以一起添加矢量以获得您想要的效果。

public override Action<int,int> onTwoIntegers => (x,y) => { };

查看Unity文档中的Vector3 page并向下滚动以查看可以使用的运算符列表,例如+, - 和*。