Unity - Как мне создать экземпляр актива? - PullRequest
0 голосов
/ 19 февраля 2019
    void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        Instantiate(Resources.Load("Objects/Level"), transform.position, Quaternion.identity);
    }
}

Это мой код.У меня есть объект с именем Level.obj внутри папки с именем «Объекты» внутри моих активов.Я пытаюсь создать его поверх родительского объекта этого скрипта с помощью Resources.Load («Объект / Уровень»).Я считаю, что этот код сам по себе правильный, потому что консоль возвращает «Объект, экземпляр которого вы хотите создать, равен нулю».после нажатия пробела.Что, вероятно, неправильно, это мои параметры, в частности, как я пытался найти объект.Я также попробовал Активы / Объекты / Уровень в отличие от того, что было выше.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Добавьте общедоступное поле public GameObject myPrefab; к вашему монобихевому поведению.

Установите его в редакторе, выбрав игровой объект и используя инспектор.

Создайте его как Instantiate(myPrefab, transform.position, Quaternion.identity);

Вам нужны только ресурсы. Загрузка, если ваш ресурс не существует во время компиляции.И, как сказано в документации, ресурсу нужен ресурс в папке Resources.

https://docs.unity3d.com/ScriptReference/Resources.Load.html

0 голосов
/ 19 февраля 2019

Я никогда не использовал Resources.Load (), поэтому вы можете попытаться добиться чего-то другого, но я делаю, чтобы «порождать» объекты, чтобы превратить их в префаб (просто перетащите ваш объект в ваши активы).Затем объявите в вашем скрипте открытое поле GameObject, перетащите в инспектор префаб в нем, а затем установите его, как вы.

Надеюсь, это помогло!

...