Unity C#

Instantiate в Unity C#: создание объектов в runtime

Метод Instantiate создаёт копии объектов прямо во время игры. С ним можно динамически добавлять на сцену врагов, пули и любые другие элементы геймплея. Метод работает с любыми объектами типа UnityEngine.Object — префабами, игровыми объектами и компонентами.

Особенности

  • Создание копий: делает точную копию объекта, оригинал не меняется.
  • Разные типы: работает с GameObject, компонентами и наследниками UnityEngine.Object.
  • Гибкость: можно задать позицию, поворот и родительский объект, а перегрузки позволяют комбинировать эти параметры.

Пример: спавн с позицией и поворотом

using UnityEngine;

public class Spawner : MonoBehaviour
{
    public GameObject enemyPrefab; // Префаб врага
    public Transform spawnPoint;  // Точка спавна

    // Метод для спавна объекта
    void Start()
    {
        // Создаем объект на указанной позиции и с указанным поворотом
        GameObject enemy = Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation);
        Debug.Log("Объект создан: " + enemy.name);
    }
}

Пример: спавн с родителем

using UnityEngine;

public class AdvancedSpawner : MonoBehaviour
{
    public GameObject enemyPrefab; // Префаб врага
    public Transform parentTransform; // Родительский объект

    void Start()
    {
        // Создаем объект с указанием родителя
        GameObject enemy = Instantiate(enemyPrefab, parentTransform);
        Debug.Log("Объект создан с родителем: " + parentTransform.name);
    }
}