Как переместить куб в unity3d & C #? - PullRequest
0 голосов
/ 16 октября 2019

Прежде всего, я прошу прощения, что эти тексты выглядят так странно. Я впервые использую stackoverflow

Я начинаю изучать Unity и C #.

И сегодня я узнаю о перемещении куба в единстве, собираюсь пересмотреть сценарий и думаю, что потерпел неудачу.

Я помещаю скрипт в cube1 в Hierarchy, щелкаю по построению решения в C # и запускаю в unity. И не сработало.

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 Ответ

5 голосов
/ 16 октября 2019

Вы не можете позвонить GameObject.Find() прямо туда, вы должны получить ошибку в консоли.

UnityException: Find не разрешается вызывать из конструктора MonoBehaviour (или инициализатора поля экземпляра), вместо этого вызывайте его в Awake или Start

Сделайте это в Awake() или Start() вместо.

public class TRAIN : MonoBehaviour
{
    GameObject cube; 

    void Start()
    {
        cube = GameObject.Find("cube1");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...