Сохрани — эти правила спасут твой проект от лагов и помогут выжать максимум FPS. Не теория, а то, что используют в реальных проектах.
1️⃣ Избегай строковых операций в циклах — невидимый убийца производительности
❌ Плохо:
void Update() {
if (gameObject.tag == "Player") { }
animator.SetTrigger("Attack");
}✅ Правильно:
private static readonly int AttackHash = Animator.StringToHash("Attack");
void Update() {
if (gameObject.CompareTag("Player")) { }
animator.SetTrigger(AttackHash);
}💡 Сравнение по тегу через CompareTag в 2-3 раза быстрее. Хеширование параметров аниматора исключает дорогостоящие поиски по строке каждый кадр.
2️⃣ Пулинг объектов — создавай объекты заранее
❌ Плохо: Instantiate() при появлении пули.
✅ Правильно: создай массив пуль при старте и переиспользуй их.
List<GameObject> _bulletPool = new List<GameObject>();
💡 Для всего, что появляется часто (пули, враги, эффекты), пулинг — must have. Никакого мусора для GC.
3️⃣ Избегай лишних вызовов в Update()
Вместо проверки каждого кадра:
void Update()
{
if (condition) DoSomething();
}
Используй корутины или InvokeRepeating:
IEnumerator CheckWithDelay() {
while (true) {
yield return new WaitForSeconds(1f);
if (condition) DoSomething();
}
}💡 Счетчик раз в секунду вместо 60 раз в секунду — вот оно, спасение CPU.
🔥 Особенно хеширование параметров аниматора — это профессиональный прием, который сразу показывает уровень разработчика.
💬 А ты хешируешь параметры аниматора или все еще используешь строки?
🔔 Подпишись — скоро разберем продвинутые методы: Job System, Burst Compiler и бенчмаркинг.
👉Akrus Games | Unity