기본 패턴
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) | 지연 제거 |
주의할 점
매우 자주 생성/삭제되는 오브젝트는 Instantiate와 Destroy 대신
오브젝트 풀링으로 옮겨야 프레임 드랍을 줄일 수 있습니다.
참고 링크
2 sources