到目前为止,我尝试用 Unity 制作2款游戏 - 其中一款是2D,另一款是3D。在我的2D游戏中,我对移动物体没有任何问题。
以下是我的播放器对象向左移动的代码,左侧 UI 按钮点击:
float moveSpeed = 2f;
//.......
//.......
public void SheWalksL()
{
AniWalkL (); // Animation
GetComponent<Rigidbody2D> ().velocity = new Vector2 (-moveSpeed, GetComponent<Rigidbody2D> ().velocity.y); // Move Left
}
上面的代码正在处理用户界面Button
。但是在我的 3D游戏中,当我尝试以相同的方式移动player
对象时(添加了第3维),它无法正常工作。这是代码:
public void ButtonMoveL()
{
Vector3 movemnt = new Vector3(-2.0f, GetComponent<Rigidbody>().velocity.y, 0);
GetComponent<Rigidbody>().velocity = movemnt * speed; // Move Left(Vantage point: looking down at the scene, along the Y-axis. So, Z is aligned vertically and X is aligned horizontally)
}
唯一不同的是,在3D游戏中,我分别创建了运动矢量并将其分配给了物体速度,并且在不使用变量的情况下直接提供了矢量的X值。我还有一个&#34; Fire&#34;按钮,按下时功能完美,因此按钮事件调用不会出现问题。有人可以指出我在3D代码中做错了什么,以使其无法正常工作。