본문 바로가기
유니티5 독학 & 게임 제작

디자인 패턴 공부 - 명령패턴의 학습 -5-

by 인터넷떠돌이 2024. 2. 17.
반응형

안녕하세요?

 

어떻게 디자인 패턴에 대해서 공부를 하면서 디자인 패턴을 왜 처음으로 마주했냐 하면, 게임을 만들면서 피할 수 없는 문제가 입력을 하는 일이 있어야 하고, 이 과정을 생각하면 처음으로 마주치는 문제라면 문제라고 할 수 있어 보입니다. 아무튼 지난번 포스팅에서 못 다한 것이 있는데, 바로 명령을 일으키는, 즉 키보드를 사용해서 입력을 하는 게임이라고 치면, 여기서 바로 버튼에 해당할 수 있는 부분인 invoke를 만들어서 할당하는 것을 잊었습니다.

 

 

먼저 시작한 것은 바로 command 클래스를 상속받아 사용할 수 있는 이 명령 자체의 클래스를 일단 리스트에 담아줘야 하는 문제가 있습니다. 이 문제를 해결하기 위해서 일단 object라고 하는 자료형을 가지고 왔습니다. 이걸 사용하면, 메모리상에 올려놓은 클래스도 얼마든지 리스트에 넣을 수 있습니다.

 

 

이제 리스트 안에 있기 때문에, 이걸 위 스크린샷에서 볼 수 있는 것처럼 foreach구문으로 변형할 수 있는데, 역시 주의해야 하는 것은 바로 object라고 자료형을 붙여 주는 것이라고 할 수 있습니다. 그리고 당연하다면 당연하다고 할 수 있는데, 일단 지역변수라고 할 수 있는 comm을 if구문에서 2번 연속으로 쓰니, 헷갈려 하는 문제가 당연하다면 당연하게 발생을 하는 것을 확인할 수 있었습니다.

 

 

이제 클라이언트라고 해야 할까요? 아무튼 사용자 측에서 일어나는 일에 대해서 이야기를 해야 할듯 합니다. 먼저 위 스크린샷에서 볼 수 있는 것처럼, 일단은 Invoker 클래스를 먼저 메모리에 올려 놓아서 작동 시켜 놓도록 합니다. 그리고 다른 클래스도 역시나 불러서 작동할 수 있도록 만들어 주도록 합니다.

 

 

그리고 나서 당연하다면 당연한 것이, object를 자료형으로 쓰고 있는 것이라고 해도, 이걸 가지고서 일단 메모리에 올려진 클래스를 리스트에 집어넣은 과정이 필요하고, 그 다음에야 명령을 전달하도록 해야 합니다.

 

 

일단 이렇게 해서 각각의 파트를 클래스로 나누어서 어떻게 할 수 있는 여부는 공부가 되었습니다. 다만, 여기서 이걸 실제로 게임을 만들기 위해서 유니티를 사용할 경우에는 어떻게 될 지 모르겠다는 것 입니다. 이 작업까지 가서, 그때는 그때대로 또 해답을 찾아내야 할 듯 합니다.

반응형