Сохрани — пригодится даже опытным разработчикам.
1️⃣ nameof() — безопасные строки
Debug.Log(nameof(Player)); // "Player"
🔸 Помогает избежать опечаток и ломания при рефакторинге. Работает с классами, методами, переменными.
2️⃣ [ContextMenu] — кнопка прямо в инспекторе
[ContextMenu("Reset Settings")]
private void ResetSettings() {
// Применяется без запуска игры
}🛠 Работает только в MonoBehaviour, не поддерживает static. Удобно для генерации данных, сбросов, ручного теста.
3️⃣ TryGetComponent<T>() — безопасно и чисто
if (TryGetComponent<Rigidbody>(out var rb)) {
rb.AddForce(Vector3.up * 10);
}🚀 Безопаснее GetComponent<T>() != null. Избегает двойного поиска и чище читается. С Unity 2020.1+
4️⃣ [System.Flags] — для комбинируемых enum’ов
[System.Flags]
public enum WeaponType {
None = 0,
Sword = 1,
Bow = 2,
Magic = 4
}
// Пример использования:
var myWeapon = WeaponType.Sword | WeaponType.Magic;
if ((myWeapon & WeaponType.Magic) != 0) {
Debug.Log("Magic enabled");
}
💡 Удобно для фильтров, состояний, прав. Избегайте HasFlag — он медленнее.
5️⃣ OnValidate() — авто-валидация в редакторе
void OnValidate() {
damage = Mathf.Max(0, damage);
}🧪 Вызывается при изменении полей в инспекторе. Удобно для базовой валидации и UI-обновлений. Не перегружайте тяжёлыми операциями.
📌 Подписывайся, если хочешь писать понятный, надёжный код в Unity и C#
💬 Используешь что-то из этого? Делись опытом 👇
👉Akrus Games | Unity