012-Repeat Unity FPS Sample - Console-01
안녕하세요? FPS Sample을 똑같이 작성하고 있는 다소승탁진 입니다.
지난번까지 FPS Sample 의 BootStrapper scene을 작성했었습니다.
여기서 어떤 것을 먼저 작성할지에 대한 기로에 서게 되었는데요, Game Prefab에 사용되는 Replicated Entity Registity에 포함되어야 할 Prefab을 먼저 작성할지, 다른 Console Prefab을 작성할지 고민 중입니다.
지금까지 작성했던 Repeat FPS Sample 을 실행시키면 아래와 같이 Game prefab과 Debug Updater 만 Load 됩니다.
FPS Sample에서 살펴보면 Console에서 여러 명령을 입력하면 실행이 되도록 되어 있으므로, Console 부터 작성을 하는 것이 맞을 것 같습니다. Replicated Entity Registry에 Prefab을 할당한다 해도 Console에서 이루어지는 명령들이 없으면, 의미가 없을테니까요.
testlevel을 load하여 Console 창을 불러온 모습입니다(F1 키를 누르면 됩니다.)
Hierarchy 창에서 보니 ConsoleGUI 게임오브젝트가 Clone 형태로 DontDetroyOnLoad scene에 포함되어 있네요. Prefab 형태로 되어 있다가, 어느시점에 load 되는가 봅니다.
Game.cs script를 VS로 열어 봅니다. Project 창에서 더블 클릭하면 됩니다.
Ctrl + F를 눌러 ConsoleGUI를 입력하고 검색해 봅니다. 그랬더니, 아래와 같이 해당 Prefab을 인스턴싱하는 부분이 나옵니다.
consoleUI 객체에 ConsoleGUI prefab을 load하는 군요. 그리고 DontDestoryOnLoad 함수에 load한 Prefab을 넘기는 군요. Prefab은 Assets/Resources/Prefabs/ConsoleGUI.prefab 폴더에 있습니다.
var consoleUI = Instantiate(Resources.Load<ConsoleGUI>("Prefabs/ConsoleGUI"));
DontDestroyOnLoad(consoleUI);
Console.Init(consoleUI);
폴더에는 다른 Prefab들도 있네요.
Console Prefab을 Open해 봅니다. 여러가지 UI로 구성되어 있는 것을 알 수 있습니다.
이제 ConsoleGUI Prefab을 작성해 보겠습니다. bootstrapper scene에서 게임오브젝트들을 모두 등록한 후에 이것을 Prefab으로 만들겠습니다.
먼저 Canvas 게임오브젝트를 추가합니다.
그리고 이름을 ConsoleGUI로 변경합니다.
아래와 같이 설정을 변경합니다.
Additonal Shader Channel은 아래와 같이 변경합니다.
Add component를 눌러 Consol GUI script를 추가합니다.
Inspetor에서 추가된 Script를 살펴보니, 추가해야 할 것들이 많습니다.
FPS Sample에서 살펴보니, 아래와 같이 다양한 UI 요소들이 할당되어 있네요.
ConsoleGUI 게임오브젝트 하위에 Image UI 게임오브젝트를 추가합니다.
이름을 Panel로 바꾸고, 아래와 같이 설정을 변경합니다.
이제 Panel 하위에 InputField를 추가합니다.(UI > InputField)
Placeholder는 삭제합니다.
Inspector 창에서 아래와 같이 수정합니다.
InputField 하위의 Text 게임오브젝트의 설정을 변경합니다.
그리고 Text 부분을 수정하려고 하니, RobotoMono-Medium font가 없군요. FPS Sample에서 복사해 오겠습니다.
FPS Sample에서 Font의 위치를 확인합니다.
Fonts 폴더를 통째로 복사하였습니다.
Fonts 폴더를 복사하고 import가 되면 Font 설정 부분에서 동그라미 버튼을 누릅니다. 그러면 RobotoMono-Medium을 선택할 수 있습니다.
아래와 같이 최종 설정을 변경하였습니다.
Color는 아래와 같이 설정합니다.
오늘은 여기까지 하고, 다음에 또 이어서 하도록 하겠습니다.
- 다소승탁진 -
#유니티, 유니티 튜토리얼, 유니티 강좌, Unity, Unity tutorial, HDRP, FPS Sample, 게임 개발, C#