개요
아래와 같이 포물선이 떨어지는 위치에 이펙트, 텍스트 등이 보이도록 추가 작업을 해서 아이템을 획득한 것처럼 보이게 연출하고자 한다.

일전에 미리 포물선 이동하는 오브젝트를 구현하였으니 참고.
유니티 방치형 프로젝트 - 아이템 획득 (포물선) #1
커밋 : 46abea94dc2a9d687badd7433e5bebed7c132341using System.Collections;using System.Collections.Generic;using UnityEngine;public class Item_Obj : MonoBehaviour{ [SerializeField] float firingAngle = 45.0f; // 발사 각도 (기본값 45도) [SerializeFie
cherry22.tistory.com
추가 작업 전 기존 로직 설명
포물선 형태로 뻗어가는 노란 오브젝트는 플레이어가 몬스터를 처치 했을 때 Monster 스크립트에서 GetDamage 메서드에서 아래의 for문이 실행되면서 시작되는데.
보면 Pooling_Obj를 통해 value를 가져온 것을 볼 수 있는데 이건 큐에서 가져온 것이며 이 value에 포물선 이동 로직이 담겨있는 것이라고 볼 수 있다 그래서 Init 메서드를 살펴 보면

포물선 이동 코루틴 실행
몬스터의 위치 값 pos를 Init에서 받아서 transform,position으로 몬스터가 죽은 위치에서 SimulatorProjectile 코루틴이 실행되도록 하며 TargetPos는 몬스터가 죽은 위치로 부터 랜덤한 방향에 대한 Vector3이다. 이 코루틴은 포물선을 그리며 아이템이 떨어지는 듯한 효과 구현이 되어있습니다.

포물선 운동 종료 후 추가 행동 (텍스트, 이펙트 연출)
아래 코루틴 코드는 포물선 운동이며 while문 종료 후 raritycheck 함수를 호출하여 추가적인 이펙트와 텍스트가 나타나도
록 하였습니다. (포물선 운동 코드 분석은 다른 글에서 이미 하였으니 참고)

RarityCheck() 메서드 분석
이 함수 부터는 추가적으로 작성한 코드에 대한 설명 입니다.
포물선이 떨어진 위치에 아이템 등급에 따른 파티클 오브젝트와 텍스트가 보이게 할 것입니다.

가장 먼저 회전값을 초기화 합니다.
RarityCheck에서 transform의 회전을 0 0 0으로 으로 세팅하지 않으면 이전 코루틴에서 회전해 버린 값이 그대로 이써서 아래와 같이 item_Rect 오브젝트에 회전이 적용 되는 문제가 있다

raritysArr는 위 gif를 보면 포물선이 떨어지는 위치에 빛나는 이펙이 색깔별로 보일 것이다 그것들이 raritysArr에 들어가 있다 우선 등급별 확률을 아직 적용한 것이 아니기에 그냥 랜덤으로 나타나게 하였고 아래 코드는 그냥 활성화 하는 코드이다.
raritysArr[(int)rarity].SetActive(true);

아래 코드는 텍스트 오브젝트의 부모를 캔버스 부모로 설젇하는 것이다
당연하다 텍스트 컴포넌트는 캔버스 자식일 때 화면에 보이기 떄문이다 (나중에 원래 부모로 돌아오는 코드 있음)
itemTextRect.gameObject.SetActive(true);
itemTextRect.parent = Base_Canvas.instance.HolderLayer(2);

랜덤으로 선택한 rare 값을 switch문에 넘겨서 일치하는 color값을 반환 받는다.

마지막으로 LootItem 코루틴이 실행되면 등급 이펙트가 SetActive false 처리 되고
캔버스로 옮겨놨던 텍스트를 원래 부모로 설정하고 아이템 획득처럼 보이게하는 lootParticle을 실행한다 .
참고로 파티클 오브젝트를 비활성화 해놓고 아래처럼 따로 켜야 ParticleStstem을 참조하는 변수가 있을 때 에러가 나지 않는다.

'유니티 > 구현내용정리' 카테고리의 다른 글
| 유니티 방치형 프로젝트 - 모바일 버튼 터치, 연속터치 판별 로직 작성 ( + 두트윈 사용하기) (0) | 2025.03.20 |
|---|---|
| 유니티 - 모바일에서 특정 해상도 UI 깨지는 문제 해결 (0) | 2025.03.19 |
| 유니티 방치형 프로젝트 - 아이템 획득 (포물선) #1 (1) | 2025.03.18 |
| 유니티 방치형 프로젝트 - 코인 획득 (1) | 2025.03.16 |
| 유니티 방치형 프로젝트 - 타겟을 향해 날아가는 스킬 구현하기 #2 (0) | 2025.03.12 |
