它是一个二维立方体,并以给定的速度沿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);
}
}
答案 0 :(得分:1)
你不能改变x坐标,你必须使用更新的x坐标
制作一个新的Vector3public 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属性与变量以获取更多信息