A
Akrus Games | Unity
@AkrusUnity2.0K подп.
653просмотров
31.9%от подписчиков
7 марта 2026 г.
Score: 718
⚡️ Unity: Интерфейсы в C# — сила контрактов Интерфейс — это контракт, который гарантирует, что класс умеет делать определённые действия. Неважно, кто его подписал — игрок, враг или бочка. Главное — они все могут выполнить условия контракта. В интерфейсах в c# не принято делать реализацию функций, свойств, только объявление. 🔥 Зачем это в играх? Допустим, у тебя есть меч, который может бить врагов и ломать бочки. Без интерфейсов — это ад из if (collider.GetComponent<Enemy>() != null)... С интерфейсами — чисто и гибко. Можно наследовать от любого количества интерфейсов, в отличии от наследования от классов. Если мы хотим сделать приватное свойство для реализующего интерфейс класса, мы можем не указывать set в свойстве интерфейса 🎯 Реальный пример: взаимодействие с объектами public class Bullet : MonoBehaviour { private const int _damage = 10; private void CheckHit() { //проверка столкновений с IHealth hitObj.TakeDamage(_damage); } } public class Player : MonoBehaviour, IHealth { // Реализация свойства public int Health { get; private set; } // Прочие поля // Прочии свойства // Прочии функции // Реализация функции public void TakeDamage(int damage) => Health -= damage; } public interface IHealth { // Обьявление свойства Health int Health { get; } // Обьявление функции TakeDamage void TakeDamage(int damage); } 💡 Два главных плюса: 🔸 Гибкость — добавляй новые разрушаемые объекты без изменения кода меча 🔸 Чистота — избавляешься от гигантских цепочек проверок через GetComponent 🚀 Где ещё использовать? • IInteractable для взаимодействия с NPC, дверями, предметами • ICollectable для сбора монет, аптечек, боеприпасов • ISaveable для системы сохранений 💬 Используешь интерфейсы в своих проектах? Делися в комментах! 🔔 Подпишись — ещё больше C# фишек для геймдева Пост помог написать @Nokskiy 👉Akrus Games | Unity
653
просмотров
1935
символов
Да
эмодзи
Нет
медиа

Другие посты @AkrusUnity

Все посты канала →
⚡️ Unity: Интерфейсы в C# — сила контрактов Интерфейс — это — @AkrusUnity | PostSniper