web-dev-qa-db-ja.com

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;

    }
}
8
Nawaf

xの値は、プロパティゲッターから返される値の型であるため、positionに直接割り当てることはできません。 (参照: 戻り値エラーc#を変更できません

代わりに、新しいVector3値を割り当てる必要があります。

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

または、ほとんどの座標値を同じに保つ場合は、代わりにTranslateメソッドを使用して相対的に移動できます。

transform.Translate(movespeed, 0, 0)
23
Chris Sinclair