🏠 Главная

MonoBehaviour в Unity

В Unity большинство игровых объектов управляется с помощью скриптов на C#. Почти каждый скрипт, создаваемый вручную, наследуется от базового класса MonoBehaviour. Именно этот класс позволяет Unity управлять поведением объектов: вызывать код при запуске игры, каждый кадр, при столкновениях и в других ситуациях.

Чтобы создать такой скрипт:

  1. В окне Assets щёлкните правой кнопкой мыши
  2. Выберите Create → MonoBehaviour Script
  3. Назовите его, например, CSharpScript
  4. Дважды кликните по нему, чтобы открыть в редакторе

Вы увидите примерно такой шаблон кода:


using UnityEngine;

public class CSharpScript : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        
    }

    // Update вызывается каждый кадр
    void Update()
    {
        
    }
}
  

using UnityEngine; — подключает основные функции Unity.
public class CSharpScript : MonoBehaviour — создаёт класс с именем, которое должно совпадать с названием файла. Unity требует этого для правильной работы скрипта.

При запуске Unity один раз вызовет метод Start(), а затем будет автоматически выполнять Update() каждый кадр — это основной цикл работы игры.

Кроме них, существует множество других методов, которые Unity вызывает в определённые моменты: при создании объекта, столкновении, включении/выключении и так далее. Ниже приведён список самых часто используемых событий, управляющих жизнью скриптов.

🧱 События жизни объекта

Метод Когда вызывается
Awake() 📦 До Start(), при создании скрипта или объекта
Start() 🚀 Один раз перед первым Update()
Update() 🕒 Вызывается каждый кадр (подходит для анимаций и ввода)
FixedUpdate() ⚙️ Вызывается с фиксированным интервалом (подходит для физики)
OnEnable() ✅ Когда объект или скрипт становится активным
OnDisable() ❌ Когда объект или скрипт отключается
OnDestroy() 💥 При удалении объекта или закрытии сцены

🧲 Физика (Collision и Trigger)

Метод Когда вызывается
OnCollisionEnter() ⚡ Столкновение с другим объектом (с коллайдером и Rigidbody)
OnCollisionStay() ♻ Пока объекты остаются в контакте
OnCollisionExit() 🏃 Когда контакт прекращается
OnTriggerEnter() 🚪 Вход в триггер-коллайдер
OnTriggerStay() 🔁 Пока объект внутри триггера
OnTriggerExit() 🚶 Выход из триггера

🖱️ Взаимодействие с мышью

Метод Когда вызывается
OnMouseDown() 🖱️ Клик мыши по объекту
OnMouseUp() ☝ Отпускание кнопки мыши над объектом
OnMouseEnter() 👀 Курсор зашёл на объект
OnMouseOver() 🔍 Пока курсор над объектом
OnMouseExit() 🙈 Курсор покинул границы объекта

📷 Камера и инспектор

Метод Когда вызывается
OnBecameVisible() 📸 Когда объект появляется в камере
OnBecameInvisible() 🌑 Когда объект исчезает из кадра