🏠 Главная

🚀 Методы Unity API

Что такое методы Unity API?
Это готовые «команды» от Unity, которые позволяют взаимодействовать с игровыми объектами: создавать, перемещать, включать или удалять их. Вместо того чтобы писать всё с нуля, ты просто вызываешь нужный метод — как волшебное слово, которое запускает действие.

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

🧱 Создание объектов: Instantiate()

Метод Instantiate() позволяет создавать копии заранее подготовленных объектов — префабов. Это основа для появления пуль, врагов, монеток и любых динамических элементов.

Префаб — это шаблон объекта. Создаётся один раз, а потом используется многократно.


using UnityEngine;

public class Spawner : MonoBehaviour
{
    // Переменная для хранения префаба
    public GameObject cubePrefab;

    // Update вызывается каждый кадр
    void Update()
    {
        // Если нажата клавиша пробела
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Создаём новый объект из префаба
            Instantiate(cubePrefab, new Vector3(0, 1, 0), Quaternion.identity);
        }
    }
}

💡 Более подробно о префабах мы поговорим в отдельных туториалах — там ты узнаешь, как их создавать, настраивать и использовать в реальных проектах.

🚶 Перемещение объектов: transform.Translate()

Чтобы сдвинуть объект в пространстве, используют метод Translate(). Он перемещает объект на заданное расстояние.

Time.deltaTime помогает сделать движение плавным и не зависящим от количества кадров в секунду.


using UnityEngine;

public class Mover : MonoBehaviour
{
    // Скорость движения
    public float speed = 3f;

    // Update вызывается каждый кадр
    void Update()
    {
        // Двигаем объект вправо со скоростью speed
        transform.Translate(Vector3.right * speed * Time.deltaTime);
    }
}

🎮 Управление игроком: движение влево и вправо

Теперь добавим самое важное — управление. Будем двигать объект влево и вправо с помощью клавиш A/D или стрелок ← →. Метод Translate() отлично подойдёт для этого.


using UnityEngine;

public class PlayerController : MonoBehaviour
{
    // Скорость движения
    public float speed = 5f;

    // Update вызывается каждый кадр
    void Update()
    {
        // Получаем направление от клавиш (A/D или стрелки)
        float input = Input.GetAxis("Horizontal");

        // Двигаем объект по оси X
        transform.Translate(Vector3.right * input * speed * Time.deltaTime);
    }
}

💡 Input.GetAxis("Horizontal") возвращает -1, если нажата влево (A или ←), +1 — если вправо (D или →), и 0 — если ничего не нажато.

⚡ Реакция на триггеры 2D

Иногда тебе нужно, чтобы объект что-то делал при столкновении — например, собирал монетку или включал портал. Для этого в Unity есть метод OnTriggerEnter2D.

Он вызывается автоматически, если у объекта есть коллайдер с флажком Is Trigger, и он сталкивается с другим объектом, у которого есть Rigidbody2D.


using UnityEngine;

public class TriggerExample : MonoBehaviour
{
    // Этот метод вызывается, когда объект входит в триггер
    void OnTriggerEnter2D(Collider2D other)
    {
        // Выводим имя объекта, с которым столкнулись
        Debug.Log(\"Вошли в триггер с: \" + other.name);
    }
}

💡 Убедись, что у этого объекта есть BoxCollider2D или другой коллайдер с включённым Is Trigger, а у второго — Rigidbody2D.

👁 Скрытие объектов: SetActive()

Если нужно временно убрать объект из сцены, не уничтожая его — используй SetActive(false).


using UnityEngine;

public class Hider : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Выключаем объект через 3 секунды
        Invoke("Disable", 3f);
    }

    // Метод, который отключает объект
    void Disable()
    {
        gameObject.SetActive(false);
    }
}

💥 Удаление объектов: Destroy()

Чтобы полностью убрать объект из сцены, используется Destroy(). Это полезно для временных объектов: пуль, эффектов, врагов.


using UnityEngine;

public class SelfDestruct : MonoBehaviour
{
    // Start вызывается один раз при запуске объекта
    void Start()
    {
        // Удаляем объект через 5 секунд
        Destroy(gameObject, 5f);
    }
}

💡 Можно вызывать Destroy() без второго параметра, чтобы удалить объект немедленно.

📌 Подведём итоги

Сегодня мы познакомились с базовыми методами Unity API — они помогут тебе создавать объекты, двигать их, скрывать и удалять. Эти действия встречаются почти в каждой игре.

Но на этом вводная часть заканчивается. Unity предлагает десятки других методов, и мы будем разбирать их постепенно — уже в наших тематических туториалах, там, где они действительно пригодятся.

А значит, ты готов перейти от основ — к созданию настоящих игровых механик. Увидимся в первом проекте!