유니티_unity

(유니티) 오브젝트가 화면 밖으로 나가면 삭제하기

코딩ABC 2024. 4. 9. 17:13
반응형

유니티에서 오브젝트가 화면 밖으로 나갔을 때 제거하는 것은 비교적 간단한 프로세스입니다. 여러 가지 방법이 있지만, 가장 일반적인 방법 중 하나는 카메라의 시야 영역을 기준으로 오브젝트의 위치를 확인하여 처리하는 것입니다.

다음은 이를 수행하기 위한 간단한 스크립트 예제입니다. 이 스크립트는 카메라의 시야 영역을 벗어나면 해당 게임 오브젝트를 제거합니다.

using UnityEngine;

public class ObjectRemover : MonoBehaviour
{
    private Camera mainCamera;

    void Start()
    {
        mainCamera = Camera.main; // 게임에서 메인 카메라 가져오기
    }

    void Update()
    {
        Vector3 viewPos = mainCamera.WorldToViewportPoint(transform.position);

        // 시야 영역을 벗어나면 제거
        if (viewPos.x < 0 || viewPos.x > 1 || viewPos.y < 0 || viewPos.y > 1)
        {
            Destroy(gameObject);
        }
    }
}

 

이 스크립트를 게임 오브젝트에 부착하면 해당 오브젝트가 화면 밖으로 나가면 자동으로 제거됩니다. 이 스크립트는 해당 오브젝트의 위치를 카메라의 시야 영역에서의 상대적 위치로 변환한 다음, 그 위치가 시야 밖에 있는지를 확인합니다.

 

물론, 게임의 요구에 따라 더 세부적인 로직이나 다른 방법을 사용할 수도 있습니다.

(유니티) 오브젝트가 화면 밖으로 나가면 삭제하기

반응형