오늘은 UI 기능을 전부 구현했고, 아이템 드롭도 구현했다. 그리고 장면 전환 효과를 구현했다.
1) UIManger에 버튼을 누르거나 UI창에 띄워줄 정보를 수정하는 함수들을 만들었다. 텍스트로 보여줄 정보는 BaseMonster/Ring/Relic등에 있는 description을 그대로 가져오면 된다. 그 외에 UI 오브젝트를 SetActive(true/false) 해주던지... 그대로 구현만 하면 되는거라 딱히 어려운 부분은 없다.
2) 아이템 드롭은 Room 클래스에 AddItem()함수를 만들었다. 현재 방이 가지고 있는 아이템 리스트인 items에 인자 Item을 추가해주면 된다. 그 후 FloorManager의 MoveToRoom()에서 방의 아이템 리스트에 원소가 있는 경우 해당하는 것을 보여주는 ShowItems()함수를 만들었다.
3) 장면 전환을 위한 클래스 SceneChanger를 만들었다. SceneChanger에는 delegate 인 ChangeFunc가 있다. 장면전환을 하는 경우는 주로 방->다른 방으로 이동할 때 이다(그 외에는 엔딩 보기... 정도가 있겠다). SceneChanger의 Update()에서 화면 가림막이 점차 어두워지다가 alpha값이 1이 되어 완전히 어두워지면 ChangeFunc로 등록한 함수가 실행되고 가림막이 점차 밝아지도록 되어 있다. 그리고 이 ChangeFunc로 넘어오는 함수는 거의 대부분 MoveToRoom()일 것이다. 이를 고려하여 만든 함수가 ChangeScene(ChangeFunc func, int x, int y, int _bgmID) 이다. 파라미터인 방의 x, y 좌표와 브금 전환을 위한 bgmID은 MoveToRoom()의 인자와 브금 전환 번호로 쓰이게 된다. 장면 전환 효과를 넣고 싶으면 이제 SceneChanger.instance.ChangeScene(...)으로 전환하면 화면도 바뀌고 동시에 필요한 함수도 대신 실행해준다..
내일은 오늘 UI 구현하면서 빠진 스프라이트들을 그리고 상점을 구현해야겠다.
- 빠진 UI 스프라이트 그리기
- 상점 구현
'게임 개발 > Tower of Rings' 카테고리의 다른 글
8/6 - 자잘하게 수정한 요소들 (0) | 2022.08.06 |
---|---|
8/5 - ☆★중간 점검★☆ (0) | 2022.08.05 |
8/3 - UI 틀 만들기 (0) | 2022.08.04 |
8/2 - 몬스터 스프라이트 적용 (0) | 2022.08.03 |
7/30 - UI 스프라이트 완성 (0) | 2022.07.31 |