유니티를 시작한 지
오늘 딱 601일 차이지만,
그동안 무얼 한 건지
Queue(큐)는 처음 보게 되었다.
먼저 Queue(큐) 란 배열, 리스트 같이
한 데이터를 저장하는 장소라고 생각하면 된다.
하지만 다른 점은,
선입선출, 좀 더 전문적으로 말하면
FIFO가 기본 시스템이다.
FIFO가 뭘까?
FIFO란 First - In, First - Out의 약자로,
먼저 들어온 것이 먼저 나간다는 말이다.
이번 글은 FIFO를 그림으로 표현해 보고,
코드로 표현해 본 후,
포스팅을 마치겠다.
그림을 보면 알다시피, 첫 번째로 들어간 물건은,
가장 첫 번째로 나오게 되고,
두 번째로 들어간 물건은
두 번째로 나오게 되는 간단한 형태이다.
이걸 코드로 표현해 보겠다.
Queue<String> Objects;
void Awake() {
Objects = new Queue<String>(); //초기화.
}
void AddQueue(string Index) { //Queue저장.
Objects.Enqueue(Index); //오브젝트에 문자열 Index를 저장.
}
void UseQueue() { //Queue사용
Objects.Dequeue(); //오브젝트 중 첫번째 오브젝트 사용.
}
주석으로도 보이겠지만 다시 설명하자면
AddQueue라는 함수는 원하는 이름의
문자열을 Objects라는 이름의 Queue(큐)에 넣어준다.
UseQueue는 Queue(큐)를 사용하는 함수이다.
하지만 특이한 점이 있다.
UseQueue는 사용을 하는 함수인데,
아무것도 전달받지 않는다.
이유가 무엇일까? 그 이유는
Queue(큐)에서는 무조건 첫 번째 오브젝트가 첫 번째로 나가기 때문에
배열이나 리스트처럼 우리가 원하는 오브젝트를 나가게 할 수 없기 때문이다.
앞선 그림을 코드로 표현해 보겠다.
AddQueue("First");
AddQueue("Second");
AddQueue("Third");
AddQueue("Fourth");
AddQueue("Fifth");
AddQueue("Sixth");
AddQueue("Seventh");
AddQueue("Eighth"); //앞선 그림의 물체들 생성.
UseQueue(); //첫번째로 들어온 오브젝트(이 코드에선 "First")사용.
이렇게 표현할 수 있겠다.
사실상 이걸 쓸 바에 배열을 쓰는 게 나아 보이는데,
사실 나(필자)도 그렇게 생각한다.
하지만 장단점은 누구에게나 있는 법.
Queue(큐)의 장점은 간단한 정보 관리에 있다고 한다.
순서가 상관없는 정보의 저장이나 이 저장기법과
만들고 싶은 바가 운명적으로 일치할 때 정도에 쓰면 되겠다.
이상으로 도움이 되었길 바라며,
끝.
'게임 개발 > 유니티C#' 카테고리의 다른 글
유니티 C#) 선택된 UI 가져오는 법. (EventSystem.current.currentSelectedGameObject) (0) | 2023.01.25 |
---|---|
유니티 C#) 랜덤한 값 생성하기. (0) | 2023.01.24 |
유니티 C#) Time.timeScale과 Time.unscaledDeltaTime (0) | 2023.01.14 |
유니티 C#) switch, case문 작성하는 법, 활용 방법. (0) | 2023.01.09 |
유니티(C#)으로 그래프를 그리는 방법. (2) | 2022.12.25 |
댓글