Как создать во время выполнения префаб в заданной папке, не входящей в иерархию ресурсов? - PullRequest
0 голосов
/ 18 января 2020

У меня есть префаб, скажем, (MyPrefab.prefab), который расположен как "Assets / Scripts / MyPrefab.prefab".

Как я могу установить его во время выполнения?

Я пытался этот фрагмент кода, но он выдал исключение во время выполнения.

var myGO = Instantiate(Resources.Load ("Assets/Scripts/MyPrefab") as GameObject);

и это:

var myGO = Instantiate(Resources.Load ("Assets/Scripts/MyPrefab.prefab") as GameObject);

Ни один из них не сработал для меня. Unity вызвала исключение: ArgumentNullException: The Object you want to instantiate is null

PS: мне не разрешено перемещать префаб в другую папку.

Ответы [ 2 ]

0 голосов
/ 18 января 2020

В общем Ни в коем случае не используйте ресурсы !

Если по какой-то причине вы все еще хотите использовать его, ваши активы должны быть помещенным в папку с именем Resources, так как только они отслеживаются системой Resources

Все активы, которые находятся в папке с именем "Ресурсы" в любом месте Доступ к папке ресурсов можно получить через функции Resources.Load. Могут существовать несколько папок «Ресурсы», и при загрузке объектов будут проверяться все.


Но, как уже говорилось, скорее есть

public GameObject prefab;

или также

[SerializeField] private GameObject prefab;

поле. Теперь это появляется в Inspector соответствующего компонента. Просто перетащите ваш префаб в этот слот, а затем выполните

var myGo = Instantiate(prefab);

Особенно обратите внимание на Создание префабов во время выполнения

0 голосов
/ 18 января 2020

Чтобы загрузить что-либо из папки ресурсов, в ее пути должна быть папка Resources.

Таким образом, ваш префаб может быть

Assets/Resources/Scripts/yourPrefabName, а затем загружен API ресурсов с помощью

Resources.Load<GameObject>("Scripts/yourPrefabName");

Или

Assets/Scripts/Resources/yourPrefabName, а затем загружаются через API ресурсов с помощью

Resources.Load<GameObject>("yourPrefab");

PS: не размещайте сценарии в каталоге с «Ресурсами» папка как прямой или косвенный родитель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...