공부/Unity

[Unity] 커비 6일차 parallel scrolling -> 2D로 원근감 주기, 마리오 커비 탄생

굴러다니다니 2023. 4. 18. 18:03
728x90

1. mario enemy 생성

도트로 찍힌 마리오 애셋을 구해서 마리오 적을 만든다

1 - 1 마리오 애니메이션 구성

-> 자르고 기존의 enemy control script에 필요한 변수들도 만들어서 연결하고

등등 기본적인 애니메이션 만듦

1 - 2 마리오의 공격

마리오도 공격이 가능한데, 불꽃 발사하는 것으로 만들고 싶었다.

마리오 안에 자식 오브젝트로 불꽃을 만들고 애니메이션으로 추가해서 연결해줬다 (불꽃은 monster Weapon layer에 넣어서 trigger 처리로 공격당한다)

그 결과 마리오에게 맞은 커비가 탄생한다.

 

2. kirby mario 생성 (및 그리기)

2 - 1 커비 마리오 애니메이션

인터넷에서 얻은 커비 그림

많아보이지만 변신 완료 했을때 자유의 여신상 포즈, 점프 모션, 둥실둥실 포즈 등등 부족한 것이 많아

기존의 커비 스프라이트에서 적당히 모자 붙여넣기를 하거나, 그리거나,, 티 안나게 적당히만 해줬다,,,

그림 진짜 못그리는구만! 크게보면 진짜 이상한데 아무도 그렇게 안보니깐,, ㅋㅋ

 

쨌든 애니메이션 생성완료해줬다

2 - 2 공격하면 위의 불꽃을 보낼건데, 이를 그냥 따로 스프라이트를 빼서 애니메이션 넣고 collider넣고, 커비의 현재 능력이 마리오일 때 공격버튼을 누르면 instantiate하게, 공격 간격도 설정해주고 약간 포물선으로 뛰게 하고 싶어서

vector3.up + vector3.right 쪽으로 addforce둘다 써줬다. (커비의 spriteRenderer.flipx 가 true이면 왼쪽에 하게 느낌)

추가로 땅과 부딪히면 사라지게 + 땅과 안부딪혔다면 2초후에 사라지게 설정해두었다.

 

3. mario icon + ability

마리오 능력 아이콘과 글씨가 없어서 기존 커비 폰트에서 뜯어서 만들었다.

아이콘으로 모자를 할지, 위의 커비가 쏘는 불꽃을 할지는 아직도 고민중

 

4. 걷는 도중 안삼켜지는 문제 해결

-> 걷는 velocity가 유지된 상태라 반대쪽으로 작용해 잘 안끌려왔음

-> 끌려오는 상태라면 속도 0으로 초기화 식 써주기

 

5. Parallax Scrolling -> 2D 화면 원근감 주기!

기존에는 커비를 따라 움직이는 maincamera 뒤로 배경화면 따라가게 그냥 넣어주기만 했는데, 원근감 주고싶어서 검색하다 아래 내용을 발견해서 응용했다.

나는 포탈을 탈 때 마다 카메라 위치가 바뀌어 카메라 위치가 바뀌는 곳 마다 따로 넣어줬다.

https://hyeokjunjjang.tistory.com/entry/UNITY-C-%EC%9B%90%EA%B7%BC%EA%B0%90%EC%9E%88%EB%8A%94-%EB%B0%B0%EA%B2%BD-%ED%8C%A8%EB%9F%B4%EB%9E%99%EC%8A%A4-%EC%8A%A4%ED%81%AC%EB%A1%A4%EB%A7%81Parallax-Scrolling-%EA%B5%AC%ED%98%84

시간이 없어서 그냥 썼지만, 프로젝트 끝나고 따로 공부하고 싶다.

그냥 카메라를 다른 위치에서 애들이 다 따라다니게 바꿨다

뭐 게임에서만 티 안나면 됐지 뭐,, !

 

6. gamemanager를 이용해 스테이지를 이동해도 현재의 능력치 + hp값 유지

kirby가 처음 awake 되었을 때 이 값을 받아오도록 했다

마지막의 값이 유지되어 이동된다

 

7. enemy가 onground인거 platform에서도 적용

기존의 enemy들은 raycast 범위가 굉장히 커서

플랫폼 위의 적이 커비가 있는 위치까지의 바닥을 인식해 방향전환을 하는 문제점이 생겼다

이 범위를 줄여주고, 플랫폼도 감지하게 만들어줬다

(앞의 벽 감지 + 앞의 바닥 감지 시스템)

 

8. 스테이지의 마지막 큰 문으로 들어갈 시 stage clear

stage clear를 gamemanager의 bool 값을 받아 true로 바꾸고, 이로 인해 다음 스테이지로 가는 맵이 보인다

스테이지 진입 전

해당 문을 통해 들어가면

문에 현재 스테이지의 값이 들어있고, 이를 gamemanager에 clear를 전달하고, 스테이지 선택 씬으로 돌아간다

스테이지 해금 완료! (+ 별 돌아간다)

728x90