일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유니티
- input system
- OVR
- 앱 배포
- CGV
- 유니티 UI
- 드래곤 플라이트 모작
- Oculus
- 개발
- Photon Fusion
- 모작
- meta xr
- 개발일지
- 드래곤 플라이트
- ChatGPT
- XR
- meta
- 유니티 Json 데이터 연동
- 가상현실
- 오큘러스
- 팀프로젝트
- 오브젝트 풀링
- 멀티플레이
- 연습
- VR
- 길건너 친구들
- 포트폴리오
- 팀 프로젝트
- 유니티 GUI
- HAPTIC
- Today
- Total
EasyCastleUNITY
드래곤 플라이트 모작 개발일지9 (아이템을 먹으면, 그에 맞는 이펙트 생성) 본문
드래곤 플라이트 모작 개발일지9 (아이템을 먹으면, 그에 맞는 이펙트 생성)
EasyCastleT 2023. 9. 18. 13:20제가 모작하려고 하는 부분까지, 아이템은 총 8가지가 나옵니다.
코인 계열 아이템 4개 (골드,루비,에메랄드,다이아몬드)와
특수 효과 아이템 4개(듀얼샷, 하이퍼 플라이트, 자석, 더블 스코어)가 있습니다.
이렇게 계열 별로 나누어, 그에 걸맞는 아이템 획득 이펙트를 만들어 보겠습니다.
코인 아이템 획득 이펙트 만들기
먼저 코인 계열 아이템 입니다.
해당 이펙트 리소스들은 apk 파일을 통해 구한 것을 포토샵으로 재가공하여 사용했습니다.
그리고 이렇게 재가공한 리소스들을 통해, 유니티 내에서 애니메이션을 만들었습니다.
이미지의 알파값을 처음의 0으로 지정하고, 시간이 지남에 따라 선명하게 만들고, 회전을 시키는 방식으로 획득 애니메이션을 만들었습니다.
나머지 애니메이션은 밑에 있는 것과 같습니다.
이렇게 4가지 애니메이션을 게임 메인의 배열로서 assign 하고, 해당 아이템을 먹으면, 나오도록 했습니다.
이 대리자는, 먹은 item의 value, type, 먹은 시점의 아이템 위치, 아이템의 이름을 받아옵니다.
아래는 결과 영상입니다.
특이한 점으로는, 코인 아이템을 먹고 나서 재생되는 이펙트들은 플레이어를 따라가게 되어 있었습니다.
그래서 Instantiate 생성과정에서, 플레이어의 transform을 받아, 플레이어의 자식으로 만들어, 플레이어가 이동하면 같이 이동하도록 하였습니다.
이렇게 코인 계열 아이템 획득 이펙트 구현을 완료했습니다.
다음으로는 효과 있는 아이템 획득 이펙트를 구현해보겠습니다.
효과 아이템 획득 이펙트 만들기
효과 아이템의 획득 이펙트의 가장 큰 특징은, 바로 한글이 들어간다는 점입니다.
그래서 저는, font를 font asset creator를 통해, 한글이 나오도록 만들었습니다.
그리고 또한 글씨가 들어가야 되므로, 이 이펙트는 UI 상에서 만들어져야 합니다.
사용한 리소스는 아래에 사진입니다.
이 이펙트도, 폰트와 위의 이미지를 활용하여, 유니티 내에서 애니메이션을 만들었습니다.
위에가 만든 이펙트입니다. 게임을 실제 플레이 해보며, 살펴본 결과, 나오는 이펙트 글자의 Outline이 들어간 것을 확인하였습니다. 그래서, TextMeshPro의 기능 중 하나인 Outline을 조절하여, Outline을 주었습니다.
그리고 작아진다는 느낌을 주기 위해, 폰트의 사이즈도 조정하여 애니메이션을 생성했습니다.
이렇게 기본적인 이펙트를 만들었습니다.
근데 문제점이 있었습니다.
인 게임 내에서, 이 이펙트는 플레이어가 아이템을 먹은 곳에 그대로 있어야 하는데,
인 게임내의 좌표와 ui 상에서의 좌표는 다르다는 점이었습니다.
플레이어가 먹은 좌표를 통해, 만들어야 하는데, 그렇게 만들면 이상해지는 결과가 나오게 됩니다.
그래서 구글링을 통해, 인게임내 좌표를 UI 상의 좌표로 만들어 받아오는 방법을 찾았습니다.
바로 위의 사진에 밑줄쳐진 부분이 Camera.main.WorldToScreenPoint입니다.
게임 내, World좌표를, ui상의 스크린 좌표로 바꾸어주는 메서드입니다.
이를 통해, 플레이어가 아이템을 먹은 좌표를 받아, ui상의 스크린 좌표로 바꾸고, UI 밑에 존재해야 하기에
Canvas를 찾아, 그 밑에 자식으로서 생성되도록 하였습니다.
또한, 위 사진의 메서드가, 코인 아이템을 먹을 때, 실행되면, 안되기에, 타입을 받아, 효과 아이템 타입일 때만,
실행되도록 만들었습니다.
위의 코드에서, 플레이어가 아이템을 먹으면, 속성을 통해, 먹은 아이템의 type,value,itemName을 받아오고,
먹은 시점의 플레이어의 좌표를 받아 getPos에 저장하고, 대리자를 통해 넘깁니다.
아래는 실행결과 입니다.
이렇게 획득 시 나오는 이펙트 구현을 완료했습니다.
'2D 프로젝트 개발 일지(드래곤 플라이트 모작)' 카테고리의 다른 글
드래곤 플라이트 모작 개발일지11 (보스 드래곤 패턴 구현) (0) | 2023.09.20 |
---|---|
드래곤 플라이트 모작 개발일지10 (아이템 효과 구현),(나중에 수정하기) (0) | 2023.09.18 |
드래곤 플라이트 모작 개발일지 8 (보스 등장, 보스 패턴 생성) (0) | 2023.09.15 |
드래곤 플라이트 모작 개발일지 7(보스 애니메이션 만들기) (0) | 2023.09.15 |
드래곤 플라이트 모작 개발일지6 (드래곤 오브젝트 풀링 및 웨이브 만들기) (0) | 2023.09.14 |