Добавлен alexprey,
опубликован
Заметки по Unity3D
Содержание:
Скрипты
- Не стоит использовать GetComponent слишком часто - это довольно затратная функция, поэтому старайтесь избегать её применения, но бояться её не нужно :) Если все же есть такая необходимость, то получайте нужный скрипт заранее внутри Start, если не планируете добавлять его динамически.
- Кэшируйте переменные внутри Update! К примеру возьмём два блока кода:
privat int i;
void Update() {
for (i = 0; i < 10; i++) {
...
}
}
void Update() {
for (int i = 0; i < 10; i++) {
...
}
}
Оба примера идентичны по функционалу, но первый вариант является более грамотным.
- Использование Co-routines. Насколько мы знаем, Update() функция вызывается каждый кадр, поэтому если нам позволяет вызывать функцию каждые 5 секунд, лучше использовать Co-routines.
- GUI - дорогое удовольствие, особенно для мобильных устройств. Не злоупотребляйте рисованием GUI.
- Создавать новые переменные(прим. new Rect) в циклах - опасно.
- CompareTag быстрее чем прямое сравнение(object.tag == "nametag")
Пруф (English)
CompareTag compiles to fewer CIL instructions than the direct comparison, for sure: it probably results in a single call to the CompareTag internal function, while the other alternative will need a call to the tag getter function (to get the tag string) and another call to the string comparison function, all of this in CIL (the interpreted language used in .NET applications). Since the tag string must be returned by the getter function, space must be allocated, what takes extra time.
Anyway, the difference probably is very small, but may become significant if a lot of CompareTags is used in Update or OnCollision/TriggerStay, and/or the target machine is a mobile device.
Anyway, the difference probably is very small, but may become significant if a lot of CompareTags is used in Update or OnCollision/TriggerStay, and/or the target machine is a mobile device.
Сцена
- Туман жрёт очень много ресурсов.
- Большой ландшафт тоже дорогой. 200х200 вполне хватает. Увеличение параметра PixelError увеличит и производительность.
- Освещение тоже сильно давит на процессор, особенно на мобильных устройствах.
- Старайтесь сделать так, чтобы у вас было как можно меньше материалов и текстур.
- Использование физики отъедает значительный кусок пирога памяти - это и ежу понятно.
- Ресурсы(Шейдеры, текстуры, модели...), адаптированные под мобильные устройства неплохо экономят FPS и память.
- Отключайте события/физику/циклы вне поля зрения игрока. Отследить это можно функциями OnBecameVisible и OnBecameInvisible.
P.S. Помимо всего этого можно играться с настройками графики, крутить ползунки, сжимать текстуры, и т.д.
Содержание
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Devion
Пруф как тестили (здесь можно нажать)
Случай такой как оказалось потом не только с Transfrom, но отлавливать ноги у таких багов, где весь код по логике - дико и не нужно. Та же херня и с телами методов и еще кучей классов.
Отредактирован Devion