Перемещение простого объекта в Unity 2D

Я пытаюсь сделать простой 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;

    }
}

1 ответов


вы не можете назначить x значение on position непосредственно, поскольку это тип значения, возвращаемый из геттера свойств. (См.: Не удается изменить ошибку возвращаемого значения c#)

вместо этого вам нужно назначить новый Vector3 значение:

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

или если вы сохраняете большинство значений координат одинаковыми, вы можете использовать Translate способ вместо того, чтобы двигаться относительно:

transform.Translate(movespeed, 0, 0)