如何在unity3d和C#中移动立方体?

时间:2019-10-16 10:26:47

标签: c# unity3d

首先,我很抱歉这段文字看起来很奇怪。 这是我第一次使用stackoverflow

我开始学习Unity和C#。

今天,我了解了如何统一移动多维数据集,要回顾一下脚本,我认为我失败了。

我将脚本放在Hierarchy的cube1中,单击在C#处生成的解决方案并统一运行。 而且没有用。

public class TRAIN : MonoBehaviour
{
    // return cube1 to cube. cube1 is name of cube object in unity
    GameObject cube = GameObject.Find("cube1");   

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        //move cube1 to z-axis at speed 1
        cube.transform.position += new Vector3(0, 0, 1);  
    }
}

如何移动cube1?

1 个答案:

答案 0 :(得分:5)

您不能直接在此处调用GameObject.Find(),您应该在控制台中遇到错误。

  

UnityException:不允许从MonoBehaviour构造函数(或实例字段初始值设定项)调用查找,而应在Awake或Start中调用

改为在Awake()Start()中进行。

public class TRAIN : MonoBehaviour
{
    GameObject cube; 

    void Start()
    {
        cube = GameObject.Find("cube1");
    }