立方体沿x轴问题移动

时间:2015-12-03 11:18:16

标签: c# unity3d

它是一个二维立方体,并以给定的速度沿x轴从右侧移动到左侧。我还添加了一个组件RigidBody2D,其中它的速度向下移动这个立方体。我禁用Rigidbody2D并希望以给定的速度将此立方体沿x轴从右侧直接移动到左侧我不知道该怎么做。 代码:

public class Move : MonoBehaviour 
{
   private float speed = -3f;
   //private Rigidbody2D body;

   /*
   void Awake()
   {
      body = GetComponent<Rigidbody2D> ();
   }
   */

   void Update () 
   {
      //body.velocity = new Vector2 (speed,0f);
   }
}

2 个答案:

答案 0 :(得分:1)

你不能改变x坐标,你必须使用更新的x坐标

制作一个新的Vector3
public class Move : MonoBehaviour 
{
   private float speed = -3f;

   void Update () 
   {
      transform.position = new Vector3(transform.position.x += speed * Time.deltaTime,transform.position.y,transform.position.z);
   }
}

答案 1 :(得分:1)

再一次:transform.position不是变量。这是一个财产。

让我用这种方式来定义它 - 属性就像机器中一个锁定的齿轮箱,你在机器内部时无法改变它内部的任何东西。您只能用新框替换该框。所以你要做的就是从机器中拿出那个盒子,然后调整它并在完成之后再将它放回去。这就是我在这段代码中所做的:

public class Move : MonoBehaviour 
{
   private float speed = -3f;

   void Update () 
   {
      Vector3 pos = transform.position;
      pos.x += speed * Time.deltaTime;
      transform.position = pos;
   }
}

google属性与变量以获取更多信息