1. Map오브젝트 생성
- - 1개의 시작스테이지
- - 10개의 챕터1스테이지, 10개의 챕터2 스테이지
- - 3개의 중간보스스테이지, 3개의 천사스테이지
- - 1개의 마지막보스스테이지
- - 각 스테이지Map에는 다른 스테이지로 이동할 WarpGate 트리거콜라이더와 이동시 시작할 위치가 될 StartPos Transform 위치정보를 포함(Tag와 Layer설정)

2.스테이지를 관리할 StageMgr 오브젝트및 StageMgr스크립트 생성
- - 싱글톤구현
- - 기본적인 변수 셋팅
- - 플레이어 오브젝트를 public으로 컴포넌트창에 드래그 앤 드랍한 이 후 [HideInInspector]로 숨김

- - 각 스테이지의 시작위치정보를 원소로 담은 챕터1과 챕터2리스트를 원소로 하는 배열을 생성
- - 3개의 천사스테이지 시작위치정보 일반 리스트, 3개의 중보스테이지 시작위치정보 일반리스트 생성
- - 1개의 막보스테이지 시작위치정보 변수 생성

- - 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()에 의해 플레이어가 이동되기 전 스테이지를 비활성화)
- - 카메라이동

- - 이전스테이지의 종류에따라 해당스테이지Map오브젝트를 비활성화 시키고 이전스테이지와 관련된 각 챕터안의 시작위치정보인덱스를 삭제

- - 컴포넌트창에서 알맞은 시작위치정보를 할당

3.카메라 이동
- transform.position.x를 직접적으로 사용불가 임시위치정보를 만들어 각방향별로 컨트롤 후 다시 transform.position에 재할당하는 방식으로 구현


4.캐릭터이동
- 캐릭터와 벽충돌시 떨림방지를 레이케스트로 해결



-결과

'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 |