Создайте экземпляр префаба в функции с единствомC#

Место общения программистов C#
Ответить
Anonymous
 Создайте экземпляр префаба в функции с единством

Сообщение Anonymous »

Я пытаюсь создать экземпляр некоторых префабов в моей сцене, я вынужден сделать это в функции (а не в основном потоке), потому что я создаю экземпляр префаба только тогда, когда получаю некоторые данные передаются по протоколу TCP.

Сейчас я просто тестирую префаб куба, но он не работает:

Код: Выделить всё

     private void addAircraft(Plane plane)
{
listPlane.Add(plane);
//THIS 2 LINES ARE THE PROBLEM
GameObject cube = Instantiate(Resources.Load("Cube", typeof(GameObject))) as GameObject;
cube.transform.position = new Vector3((float)plane.X, 0, (float)plane.Y);
//
planeId_Object_Dictionnary.Add(plane.Flight, cube);
Debug.Log("Plane " + plane.Flight + " is added");
}
Мне возвращается ошибка:

Код: Выделить всё

Load can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
Даже если многие люди столкнулись с этой проблемой, я не могу найти решение, которое позволило бы мне создать экземпляр моего префаба в функции.< /п>

Подробнее здесь: https://stackoverflow.com/questions/365 ... with-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»