1. Map오브젝트 생성
- - 1개의 시작스테이지
- - 10개의 챕터1스테이지, 10개의 챕터2 스테이지
- - 3개의 중간보스스테이지, 3개의 천사스테이지
- - 1개의 마지막보스스테이지
- - 각 스테이지Map에는 다른 스테이지로 이동할 WarpGate 트리거콜라이더와 이동시 시작할 위치가 될 StartPos Transform 위치정보를 포함(Tag와 Layer설정)
![](https://blog.kakaocdn.net/dn/mom3O/btq4f02YfdG/xqPG2KKRSOL3AY8vWU8Xp0/img.png)
2.스테이지를 관리할 StageMgr 오브젝트및 StageMgr스크립트 생성
- - 싱글톤구현
- - 기본적인 변수 셋팅
- - 플레이어 오브젝트를 public으로 컴포넌트창에 드래그 앤 드랍한 이 후 [HideInInspector]로 숨김
![](https://blog.kakaocdn.net/dn/bXR8n5/btq4f87NgvE/JwNvwMgCi9nSO19qilC7T0/img.png)
- - 각 스테이지의 시작위치정보를 원소로 담은 챕터1과 챕터2리스트를 원소로 하는 배열을 생성
- - 3개의 천사스테이지 시작위치정보 일반 리스트, 3개의 중보스테이지 시작위치정보 일반리스트 생성
- - 1개의 막보스테이지 시작위치정보 변수 생성
![](https://blog.kakaocdn.net/dn/dIznol/btq4bXs7SZb/jmbYcCUxEHUPPyWh3oPfmk/img.png)
- - PlayerSc에서 플레이어가 WarpGate에 trigger하면 호출될 NextStage()함수 구현
- - 원하는 스테이지 이동순서는 1,2,3,4(챕터1스테이지) -> 5(천사스테이지) ->6,7,8,9(챕터1스테이지) -> 10(중보스테이지) -> 11,12,13,14(챕터2스테이지) -> 15(천사스테이지) -> 16,17,18,19(챕터2스테이지) -> 20(막보스테이지)
- - 챕터1과 챕터2의 구별은 현재스테이지의 1의 자리를 가져오기위해 10을 나누어서 arrayIndex를 사용
- - 각 챕터배열안에서 랜덤한 인덱스를 뽑아서 해당인덱스를 cleardeIndex에 저장하고
- - 해당 인덱스에 해당하는 스테이지의 시작위치로 플레이어를 이동시킴
- (*위 로직이 실행되기전 DestroyStage()에 의해 플레이어가 이동되기 전 스테이지를 비활성화)
- - 카메라이동
![](https://blog.kakaocdn.net/dn/w0dxw/btq4dwaenWK/w7snFF8f1baJ0RBm3XPci0/img.png)
- - 이전스테이지의 종류에따라 해당스테이지Map오브젝트를 비활성화 시키고 이전스테이지와 관련된 각 챕터안의 시작위치정보인덱스를 삭제
![](https://blog.kakaocdn.net/dn/Juwh3/btq4bKgpQYy/xUioKYEq1ChoEGbGEvjxO0/img.png)
- - 컴포넌트창에서 알맞은 시작위치정보를 할당
![](https://blog.kakaocdn.net/dn/CsXZA/btq4bs1mM8e/colDG3Kc8kFPYv1jLE2H01/img.png)
3.카메라 이동
- transform.position.x를 직접적으로 사용불가 임시위치정보를 만들어 각방향별로 컨트롤 후 다시 transform.position에 재할당하는 방식으로 구현
![](https://blog.kakaocdn.net/dn/eAVxVV/btq4bYMgF4b/RnXBMCm2aS2vD4CrPMdJq0/img.png)
![](https://blog.kakaocdn.net/dn/Fm5oU/btq4ehKFAy6/YVbVZ2spZ9gzhTwFzirWKk/img.png)
4.캐릭터이동
- 캐릭터와 벽충돌시 떨림방지를 레이케스트로 해결
![](https://blog.kakaocdn.net/dn/eoREei/btq4cgztuw6/qliZBXCCCVftNVb4jtrckk/img.png)
![](https://blog.kakaocdn.net/dn/Sq7sG/btq4c0Xdrpw/VTbdiW4Bk4quv2Dg5qqJdK/img.png)
![](https://blog.kakaocdn.net/dn/bcpfvR/btq4hq1rcqy/89ocxKpwvBjIxaYb7P7tkk/img.png)
-결과
![](https://blog.kakaocdn.net/dn/Jb9kw/btq4cGEE6OT/eDKhGIvx5lWo2LW7AZxZkK/img.gif)
'Unity > Unity3D_MyProject' 카테고리의 다른 글
Unity3D_MyProject - 스킬슬롯머신 선택스레벨업 과정 (0) | 2021.06.21 |
---|---|
Unity3D_MyProject - 플레이어Hp선형감소 + 잔상, 스킬머신UI에 스킬설명 추가 (0) | 2021.06.19 |
Unity3D_MyProject - 플레이어Exp경험치 획득, 레벨업 및 UI컨트롤, 플레이어 공속 컨트롤, 몬스터피격시 데미지 텍스트 생성 및 크리티컬 구현 (0) | 2021.06.19 |
Unit3D_MtProject - 속성추가데미지, 골드 드랍 자석효과 (0) | 2021.06.16 |
Unity3D_MyProject - 마초기본3타 경직, 액티브 경직 (0) | 2021.06.15 |