Что такое методы Unity API?
Это готовые «команды» от Unity, которые позволяют взаимодействовать с
игровыми объектами: создавать, перемещать, включать или удалять их.
Вместо того чтобы писать всё с нуля, ты просто вызываешь нужный метод —
как волшебное слово, которое запускает действие.
В предыдущем уроке мы научились получать доступ к компонентам объектов. Теперь мы сделаем шаг дальше — начнём вызывать у объектов действия: создавать, двигать, включать и уничтожать их.
Метод 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);
}
}
}
💡 Более подробно о префабах мы поговорим в отдельных туториалах — там ты узнаешь, как их создавать, настраивать и использовать в реальных проектах.
Чтобы сдвинуть объект в пространстве, используют метод
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 — если ничего не
нажато.
Иногда тебе нужно, чтобы объект что-то делал при столкновении —
например, собирал монетку или включал портал. Для этого в Unity есть
метод OnTriggerEnter2D
.
Он вызывается автоматически, если у объекта есть коллайдер с флажком Is Trigger, и он сталкивается с другим объектом, у которого есть Rigidbody2D.
using UnityEngine;
public class TriggerExample : MonoBehaviour
{
// Этот метод вызывается, когда объект входит в триггер
void OnTriggerEnter2D(Collider2D other)
{
// Выводим имя объекта, с которым столкнулись
Debug.Log(\"Вошли в триггер с: \" + other.name);
}
}
💡 Убедись, что у этого объекта есть BoxCollider2D
или
другой коллайдер с включённым Is Trigger
, а у второго —
Rigidbody2D
.
Если нужно временно убрать объект из сцены, не уничтожая его —
используй SetActive(false)
.
using UnityEngine;
public class Hider : MonoBehaviour
{
// Start вызывается один раз при запуске объекта
void Start()
{
// Выключаем объект через 3 секунды
Invoke("Disable", 3f);
}
// Метод, который отключает объект
void Disable()
{
gameObject.SetActive(false);
}
}
Чтобы полностью убрать объект из сцены, используется
Destroy()
. Это полезно для временных объектов: пуль,
эффектов, врагов.
using UnityEngine;
public class SelfDestruct : MonoBehaviour
{
// Start вызывается один раз при запуске объекта
void Start()
{
// Удаляем объект через 5 секунд
Destroy(gameObject, 5f);
}
}
💡 Можно вызывать Destroy()
без второго параметра, чтобы
удалить объект немедленно.
Сегодня мы познакомились с базовыми методами Unity API — они помогут тебе создавать объекты, двигать их, скрывать и удалять. Эти действия встречаются почти в каждой игре.
Но на этом вводная часть заканчивается. Unity предлагает десятки других методов, и мы будем разбирать их постепенно — уже в наших тематических туториалах, там, где они действительно пригодятся.
А значит, ты готов перейти от основ — к созданию настоящих игровых механик. Увидимся в первом проекте!