Создание объекта фотонной сцены из пакета активов Unity - PullRequest
0 голосов
/ 29 октября 2019

РЕЗЮМЕ: Мне нужно использовать PhotonNetwork.InstantiateSceneObject (строка prefab_name) для создания экземпляра объекта, который находится в AssetBundle.

Во время выполнения я загружаю комплект ресурсов Unity из Интернета, который содержит кучупрефабы. Затем я хочу использовать PhotonNetwork.InstantiateSceneObject для создания экземпляров некоторых префабов, но эта функция принимает только строку имени префаба, но все префабы находятся внутри пакета ресурсов и доступны только в том случае, если вы сначала загрузите объект как префаб, а затем создадите экземплярЭто. Вы не можете создать его как строковое имя напрямую, как если бы оно было в папке Resource.

AssetBundle ab=AssetBundle.LoadFromFile("c:\assets\bundlename.android");
var prefab=ab.LoadAsset("networked_monster.prefab");

PhotonNetwork.InstantiateSceneObject("networked_monster.prefab");  <<------ this wont work, cant access asset bundle from Photon

Есть ли способ распаковать все префабы и другие объекты в комплекте ресурсов, чтобы он выглядел так, как если бывсе они находятся в папке ресурсов ??? Тогда я смогу получить к ним доступ следующим образом:

PhotonNetwork.InstantiateSceneObject("networked_monster.prefab"); 
AudioClip audio=Resources.Load("BangZoom") as AudioClip; 

Здесь BangZoom - это файл WAV, который был внутри пакета ресурсов, и мне нужно, чтобы он отображался так, как если бы он находился в папке ресурсов.

Кроме того, «networked_monster.prefab» был в комплекте ресурсов, мне нужно, чтобы он отображался так, как если бы он находился в папке ресурсов, чтобы я мог создать его экземпляр по имени.

Также как мне выгрузить иосвободить все эти активы, когда я закончу с ними?

1 Ответ

0 голосов
/ 04 ноября 2019

Я только что ответил на нашем форуме на тот же вопрос: https://forum.photonengine.com/discussion/14956/photonnetwork-instantiatesceneobject

По сути, вы просто реализуете свой собственный интерфейс IPrefabPool, и тогда вы можете свободно создавать объекты сети так, как вам хочется.

Пожалуйста, проверьте реализацию по умолчанию (класс DefaultPool в punclasses.cs) для примера.

Пока,

Жан

для выгрузки, я не уверен, что это будетлучше спросить на форуме Unity или UA

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