유로 Assets DamageNumbersPro 리뷰
- 목차
먼저 DamageNumbersPro는 https://assetstore.unity.com/packages/2d/gui/damage-numbers-pro-186447
Damage Numbers Pro | 2D GUI | Unity Asset Store
Elevate your workflow with the Damage Numbers Pro asset from Ekincan Tas. Find this & more GUI on the Unity Asset Store.
assetstore.unity.com
데미지 표시를 쉽게 해주는 에셋이다.
(그나저나 내가 살때는 비쌋던거 같은데.. 왜 가격이 내려간거같지..?)
당연히 DEMO를 통해 직접 해볼수도 있고 예제도 당연히 제공되고 있다.
https://ekincantas.com/damage-numbers-pro/
Damage Numbers Pro – Unity Assets
Add number and text popups to your game. – Easy to Use – Supports 2D, 3D and GUI – Works in Every Render Pipeline Feel free to ask for support. Discord ➞ https://discord.gg/nWbRkN8ZxrEmail ➞ ekincantascontact@gmail.com Store Link: Demo: Tutorial:
ekincantas.com
해당 링크에서 어캐 해야하는지 설명이 잘 나와있기도 하다.
하지만 예제는 너무 간단한 예제만 설명되어 있어서 직접 써보면서 어캐해야하는지에 대해 정리해보고자 한다.
먼저 내가 지금 하고 있는 프로젝트를 기준으로 정리해보았고 실제로 적용해 보았다.
게임 오브젝트를 만들때 Damage Numbers Pro라고 하는 오브젝트가 보이고
Damage Numver Mesh랑 Damage Number GUI가 보일것이다.
여기서 Mesh는 2D랑 3D의 World Camera기준이고 GUI는 Canvas기준으로 생성하는 오브젝트라고 생각하면 될거같다.
물론 나는 몬스터의 머리위쪽에 뜨게 할 것이니까 3D World Camera인 Damage Number Mesh를 선택해주면 된다.
선택해주면 해당 오브젝트가 만들어 지고 Inspecter쪽에 설정할 수 있는 UI가 등장하게 된다.
Presets은 폰트 스타일과 폰트가 등장할 스타일 ,사라질 스타일을 지정할 수 있다.
그리고 난 지금 3D쪽 프로젝트를 하고 있기 때문에 위쪽에 3D Game쪽을 클릭해주면 된다.
나머지는 딱히 안건드려도 된다. 알아서 다 설정이 되어 있기 때문이다.
그 다음 만든 것을 프리팹으로 만들어주고 기존껀 지워도 된다. 짜피 뒤에 코드를 이용해서 스폰시킬것이기 때문이다.
나는 몬스터가 데미지를 받을때 나오게 할거여서 데미지관련 폰트를 지정하고 프리팹 이름도 DamagePrefab으로 변경해주었다.
그리고 코드를 작성해 주었다.
using UnityEngine;
using DamageNumbersPro;
public enum EnemyType
{
Boss,
Monster,
RedSpider,
GreenSpider
}
public class EnemyHealth : MonoBehaviour
{
public DamageNumber damageNumbersPrefab;
public Transform hudPos;
public void TakeDamage(float damage,Vector3 position)
{
if (enemyType == EnemyType.Monster || enemyType == EnemyType.GreenSpider || enemyType == EnemyType.RedSpider)
{
currentHealth -= damage;
enemyHealthBar.UpdateHealth();
DamageNumber damageNumber = damageNumbersPrefab.Spawn(hudPos.transform.position, damage);
}
else if(enemyType == EnemyType.Boss)
{
currentHealth -= damage;
enemyHealthBar.UpdateBossHealth();
DamageNumber damageNumber = damageNumbersPrefab.Spawn(hudPos.transform.position, damage);
}
if (currentHealth <= 0 )
{
Die();
if (enemyType == EnemyType.Boss)
{
StartCoroutine(BossKill());
}
}
}
}
전체적인 코드가 아닌 예시가 활용된 코드만 올렸다.
내가 생성하고자 하는 데미지 프리팹을 스폰하는데 말 그대로 hudPos라고 하는 위치기준으로 스폰시키는 것이다.
인스펙터에서 내가 만든 데미지 프리팹과 그걸 스폰시킬 위치를 지정해주면 된다.
실행시켜본 결과
매우 잘 출력됨을 확인할 수 있다!
'유니티,Unity,C#' 카테고리의 다른 글
유니티 UniTask 정리 (0) | 2024.01.31 |
---|---|
유니티 빌드본(PC) 강제 종료 막기(Application.wantsToQuit) (1) | 2023.12.05 |
오브젝트 풀링(원하는 스폰지역을 직접 만들어서 넣어주고 랜덤으로 소환) (0) | 2023.06.04 |
유니티 json데이터 암호화하는법(AES암호화방식) (1) | 2023.05.20 |
몬스터를 소환하고 정해진 루트로 이동하게 하는 스크립트 (0) | 2023.04.24 |