블로그 이미지
한국IT전문학교 게임프로그래밍 2018년 졸업생 / 배우고 익히고 정리하는 곳 무명의 공룡

카테고리

분류 전체보기 (133)
Unity (5)
AR / VR (8)
홀로렌즈2 (2)
Unity 3D 액션 게임 제작 (2)
정리 (9)
소소한 배움 (6)
그외 (7)
비공개 (56)
--이전 프로젝트들-- (0)
Tree-sha (팀 3D) (9)
Icicle Game (2D) (19)
MMD RPG (3D) (9)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

기왕 쓰는거 이게 빠지면 섭섭할거 같아서 작성합니다.



씬이 넘어갈 때마다 보이는 로딩 창입니다.


이건 이전과 달라진게 없지만 자세히 다룬적이 없는 거 같아 적어봅니다.



이 로딩도 하나의 씬입니다. 



이건 로딩 씬에서의 Hierarchy 입니다.


로딩 도중에 미니 게임을 넣을 수도 있겠지만 여긴 그정도로 시간이 걸리지 않기 때문에 간소하게 만들었습니다.


UGUI를 생성하면 자동으로 따라오는 이벤트 시스템은 로딩 씬을 호출하는 기존의 씬이 가지고 있기 때문에 지워주었습니다.


이벤트 시스템이 2개면 유니티가 경고를 마구 띄우기 때문에 보기 좋지 않습니다.



저기서 Manager가 중요한 역할을 합니다.


일단 어느 씬이든 씬이 켜지면 초기화 과정에서 이 로딩 씬도 같이 호출합니다.



메인화면에서의 Hierarchy 입니다.


위에 원래 자신의 오브젝트들이 배치되고 아래에 추가로 로딩 씬이 자리하고 있습니다.


SceneManager.LoadScene("Loading", LoadSceneMode.Additive); 이 함수로 호출하면 씬을 불러서 이동하는게 아니라 추가로 붙여버립니다.


근데 씬을 붙인다는건 무조건 게임 시작 이후에 이루어진다는 소리입니다. 그말은 즉 사전에 기존 씬이 로딩 씬에 설정을 해줄수가 없다는 뜻입니다.


그래서 저는 싱글톤을 사용했습니다.


로딩 씬을 보면 Manager만 활성화 되어 있는데 이게 실시간으로 싱글톤의 특정 값의 변화를 기다립니다.


그리고 씬이 변경 되어야 할 때 씬 로드를 하지 않고 Manager 가 기다리는 값을 로드 되어야 할 씬으로 바꾸어줍니다.


그러면 Manager는 Canvas를 활성화 시키고 활성화 된 Canvas는 싱글톤의 값을 읽어 비동기 씬 로딩을 시작합니다.


그리고 그 과정을 유저의 눈에 보이도록 수치를 출력하고 로딩이 끝나면 씬 변경을 합니다.


그리고 그 씬에서도 동일하게 초기화 과정에서 SceneManager.LoadScene("Loading", LoadSceneMode.Additive);를 하여 로딩 씬을 대기시킵니다.



이게 옳은 방법인지는 알 수 없습니다만 꽤 간단하게 다용도 비동기 씬 로딩을 구현할 수 있습니다.




그리고 예전에 소녀전선 같은 로딩도 한 번 구현해 본다고 했었습니다만 구현은 해봤었습니다.


근데 영문 모를 버그가 터지는데다 친구가 별로래서 묵혀뒀습니다.


일단 어떤식으로 작동되냐면



이런식으로 호출하면 옆에서 싹 생기고 뭐 누르면 가리고 있는 사이에 뒤에서 몰래 비동기 씬로딩을 가하는 방식입니다.


근데 만약 그냥 닫기를 하면 이 씬이 삭제 되야 하는데


SceneManager.UnloadScene(); 이런 함수가 하나 있긴 한데 사용하지 않는 함수라고 합니다.


근데 대체 함수도 없어서 그냥 써보면 또 잘 됩니다.


하지만 좀 찝찝하죠.


무엇보다 이게 중요한게 아니고 위에 gif 같은 행위를 계속 하고 있다 보면 저 캔버스가 원래 위치로 가지 않고 절반만 가는 경우가 있습니다.


대충 10번에 한 번 꼴로 발생하는 거 같은데 로그 찍으면서 알아봤지만 값은 모두 정상인데 반만 가버리는 문제가 계속 발생해서 스스로도 이건 못쓰겠다 싶어 구석에 넣어놨습니다.




이것으로 Icicle Game 1.03버전의 분석이 모두 끝났습니다.


분석이라면서 빼놓은 것도 많고 코드가 들어간 것도 있고 아닌 것도 있는 등 좀 개판입니다만 막 비밀이라거나 그런 이유는 절대 아닙니다.


그냥 스스로의 코드가 부끄러워서 전부 공개하기가 좀 그런데다 어떻게 글을 막 쓰다보니 타이밍을 놓친다고 해야하나...


아무튼 이 블로그에 정독 하러 오시는 분도 없겠지만 만약 뭐 물어보시거나 보여달라 하시면 들어드릴 용의는 충분히 있습니다.


긴 글 읽어주셔서 감사합니다.

'Icicle Game (2D) > 분석' 카테고리의 다른 글

1.03버전 분석 4 (상점화면)  (0) 2018.01.12
1.03버전 분석 3 (게임화면)  (0) 2018.01.11
1.03버전 분석 2 (메인화면)  (0) 2018.01.10
1.03버전 분석 1 (서론)  (0) 2018.01.09
정리  (0) 2017.12.06
Posted by 무명의 공룡
, |