Темы в Unity, чтобы избежать замораживания анимации - PullRequest
1 голос
/ 14 апреля 2019

Каждый раз, когда я загружаю текстуру из сохраненного файла, любая анимация в моей сцене останавливается до завершения загрузки из файла.Я прочитал очень много разных мнений о темах, и никто не получил ответы.но я должен загрузить текстуру в другом потоке, чтобы избежать замерзания.Мой код прикреплен к игровому объекту, который является всплывающим окном пользовательского интерфейса

void Start() {
Texture2D tex = LoadTexFromFile(); //Should be in a diffrent thread that returns a texture
sprite = Sprite.Create(tex, 
                       new Rect(0, 0, tex.width, tex.height), 
                       new Vector2(tex.width / 2, tex.height / 2));

picFrame.GetComponent<Image>().overrideSprite = sprite; }

Как безопасно использовать потоки в моем коде?

1 Ответ

0 голосов
/ 14 апреля 2019

Лучшие практики говорят, что вы должны не загружать активы в течение уровня, а, скорее, при начале , чтобы избежать сбоев. Почему вы идете против того, что обеспечивает промежуточное программное обеспечение, как Unity? Пусть он управляет вашими заданиями за вас и загружает их в начале уровня.

Существует вариант использования ( не , специфичный для Unity) для потоковой передачи активов , но обычно зарезервирован для загрузки активов по требованию AAA, таких как текстуры; сетка; и другие активы, скажем, в больших играх с открытым миром , но я сомневаюсь, что это именно тот случай. Такая функция очень сложна, и я не буду вдаваться в подробности.

Скажи мне больше

enter image description here

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