所以现在我有一个对象,当点击鼠标时我想向前和向左或向前和向右移动。这将产生向前的对角线运动。
if (Input.GetMouseButtonDown (0)) {
if (dir == Vector3.forward) {
dir = Vector3.left && Vector3.forward;
} else {
dir = Vector3.right && Vector3.forward;
}
}
答案 0 :(得分:1)
Vector3.left
是Vector3(-1, 0, 0)
的简写,Vector3.forward
是Vector3(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并向下滚动以查看可以使用的运算符列表,例如+, - 和*。