Ruya Games

List 맨앞, 맨뒤 값 제거하는 방법 본문

Unity

List 맨앞, 맨뒤 값 제거하는 방법

SadEvil 2023. 12. 4. 10:39

모종의 이유로 list의 맨앞 또는 맨뒤 값을 제거하고 싶을때가 있는데요.

list.RemoveAt을 사용하면 Index를 사용해서 원소를 제거할수 있습니다.

var myList = new List<GameObject>();

...

myList.RemoveAt(0) // 맨처음 원소 제거
myList.RemoveAt(myList.Count - 1) //마지막 원소 제거

이렇게 제거하면 됩니다.

다만 유의할점은 위의 예시처럼 gameObject들이 담긴 List라면 리스트에서 원소를 제거해도 씬에서 gameObject들은 삭제되지 않습니다.

원인은 list에 담긴 gameObject 정보들은 참조값이고, RemoveAt함수는 리스트 내의 참조값만을 제거하기 때문입니다.

따라서 리스트에 담긴 게임오브젝트를 실제로 유니티 씬 안에서 삭제하고 싶다면 Destroy()함수를 같이 사용해야 합니다.

 

다음은 Destroy()가 포함된 예시입니다.

var myList = new List<GameObject>();

...

Destroy(myList[0]);
myList.RemoveAt(0)