목표
- GameObject를 삭제하는 방법에 대해 알아보자.
GameObject의 삭제
- Runtime중 GameObject를 삭제하는 방법은 Destroy와 DestroyImmediate가 있다.
Destory
Destroy로 지정된 GameObject의 Update가 완료되기 전까지 파괴되지 않는다.
또한 Destory의 2번째 인자로 시간을 설정하면, n초후 파괴되는 지연 파괴 기능을 지원한다.
Destroy(bullet); // 즉시 파괴
Destroy(bullet, 5); // 5초후 파괴
DestroyImmediate
- DestroyImmediate의 경우, 함수가 호출된 즉시 오브젝트를 즉시 파괴한다.
- 2번째 인자로
실제 파일까지 파괴하는 기능
을 가지고 있으니 주의하여 사용해야 한다. - DestroyImmediate 함수는, 사용하지 않는 것을 권장한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputController : MonoBehaviour
{
public float MoveSpeed = 10.0f;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
// update가 완료된 이후 파괴
Destroy(this.gameObject);
}
if (Input.GetKeyDown(KeyCode.Alpha2))
{
// 2초 후 파괴
Destroy(this.gameObject, 2.0f);
}
if (Input.GetKeyDown(KeyCode.Alpha3))
{
// 즉시 파괴
DestroyImmediate(this.gameObject, false);
}
}
}