Unity오브젝트와 프리팹

Instantiate와 Destroy

프리팹을 복제하고 일정 시점에 제거하는 `Instantiate` / `Destroy` 기본 흐름을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
[SerializeField] private GameObject bulletPrefab;
[SerializeField] private Transform firePoint;

private void Fire()
{
    GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
    Destroy(bullet, 3f);
}

설명

  • Instantiate는 프리팹이나 기존 오브젝트를 복제해서 씬에 배치합니다.
  • 총알, 적, 이펙트처럼 반복 생성되는 오브젝트에서 가장 자주 쓰입니다.
  • Destroy(obj, 3f)처럼 지연 삭제를 같이 쓰면 짧은 생명주기 오브젝트를 관리하기 쉽습니다.

짧은 예제

csharp
var enemy = Instantiate(enemyPrefab);
enemy.transform.position = spawnPoint.position;

빠른 정리

함수의미
Instantiate(prefab)기본 위치로 복제
Instantiate(prefab, pos, rot)위치와 회전 지정
Destroy(obj)즉시 제거 예약
Destroy(obj, delay)지연 제거

주의할 점

매우 자주 생성/삭제되는 오브젝트는 InstantiateDestroy 대신 오브젝트 풀링으로 옮겨야 프레임 드랍을 줄일 수 있습니다.

참고 링크

2 sources