在Unity 2D中移动简单对象

我试图在Unity中移动一个简单的Object ,但我收到以下错误消息:

cannot modify the return value of unityengine.transform.position because itar is not variable

这是我的代码:

 using UnityEngine; using System.Collections; public class walk : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { float movespeed = 0.0f; movespeed++; transform.position.x = transform.position.x + movespeed; } } 

您不能直接在position上分配x值,因为它是从属性getter返回的值类型。 (参见: 无法修改返回值错误c# )

相反,您需要分配一个新的Vector3值:

 transform.position = new Vector3(transform.position.x + movespeed, transform.position.y); 

或者,如果您保持大部分坐标值相同,则可以使用Translate方法相对移动:

 transform.Translate(movespeed, 0, 0)