Есть поле userData, в которое я обычно записываю json, чтобы можно было сохранить изменяемую структуру.
Для этого можно использовать AssetImporter::userData.
Есть поле userData, в которое я обычно записываю json, чтобы можно было сохранить изменяемую структуру.
Для этого можно использовать AssetImporter::userData.
Я уже писал про PackTextures , но эта штука ломается, если невозможно запаковать текстуры, т.к. их размер увеличивается максимальный размер атласа. Для этого можно использовать GenerateAtlas, т.к. этот метод ничего не делает с текстурами, а только работает с ректами и возвращает true, если все объекты поместятся в атлас. То есть можно сначала вызвать его, а потом использовать PackTextures, либо запаковать самостоятельно, с помощью SetPixels.
Как-то не заметно произошло появление этого класса в юнити, но появился он аж в 2019.2.
Это такая удобная штука, которая позволяет получать уже нужные типы без необходимости искать их во всех сборках.
В юнити есть замечательная штука, которую мало кто получает. На самом деле даёт возможность считать примитивами. В качестве примера я такое часто использую для того, чтобы знать, какие объекты нужно просчитывать, а какие — нет. Наверное, это апи можно считать уже в обстановке, т.к. Приходите всякие брг, которые умеют выбраковывать, плюс это апи не умеет всплески. Но на самом деле я все равно его использую, т.к. даже на уровне представления он дает прирост, если самому отключать аниматоры/рендеры и прочие штуки.
Когда мы начинали делать проект, в юнити не было возможности отключить сборщик мусора. А нам было нужно)
У нас геймплей был динамичным и любые «провисания» из-за GC плохо влияли на ощущения от игры. Поэтому мы решили его выделить. Раньше для этого нужно было сделать хаки, а сейчас уже есть возможность это сделать нормально: https://docs.unity3d.com/Manual/ Performance-disabling-garbage-collection.html
В нашем кейсе в геймплее мы очень бережно относимся (да и относимся) к аллокациям, всё на пулах, поэтому перед началом боя мы выключаем GC, а после боя - включаем и собираем мусор.
Такое решение на самом деле впоследствии помогло нам на различных платформах в свое время: на PS4 и переключателе GC.Collect могло занимать до пары секунд. Надеюсь, что сейчас уже нет таких проблем, но 10 лет назад - были
В Unity добавлен атрибут HideInCallstack, который пока не работает