在Unity 2D中移动简单对象

Naw*_*waf 8 c# unity-game-engine

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

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;

    }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*air 23

您无法直接指定x值,position因为它是从属性getter返回的值类型.(参见:无法修改返回值错误c#)

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

transform.position = new Vector3(transform.position.x + movespeed, transform.position.y);
Run Code Online (Sandbox Code Playgroud)

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

transform.Translate(movespeed, 0, 0)
Run Code Online (Sandbox Code Playgroud)

  • +1替代翻译方法 (6认同)