목표

  • 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);  
        }  
    }  
}  

+ Recent posts