배경이 너무 휑하여
적당한 애셋을 찾아
타일맵을 추가 하였다,
몬스터 데미지 이펙트 추가
TextProMesh를 이용해서 만들었다
기본 UI Text를 쓰면 아무래도 canvas를 따로 만들어야 해서 ProMesh를 사용하였다.
그리고 추가로 애니메이션을 만들어
이펙트를 주었다.
그리고 이펙트를 오브젝트 풀링을 하기위한 간단하게 만들었다.
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameMgr : MonoBehaviour
{
static public GameMgr Inst;
[Header("ObjPool")]
public GameObject damageTxt_Prefab;
public Transform damageTxtTr;
//DamageTxt
public Stack<DamageTxt> DamageTxt_Pool = new Stack<DamageTxt>();
private void Awake()
{
Inst = this;
}
private void Start()
{
Create_ObjPool();
}
void Create_ObjPool()
{
for (int i = 0; i < 20; i++)
{
DamageTxt_Pool.Push(Instantiate(damageTxt_Prefab, damageTxtTr).GetComponent<DamageTxt>());
}
}
public void Pop_DamageTxt(int value, Vector3 pos)
{
DamageTxt obj;
if (DamageTxt_Pool.Count <= 0)
obj = Instantiate(damageTxt_Prefab, damageTxtTr).GetComponent<DamageTxt>();
else
obj = DamageTxt_Pool.Pop();
obj.SetDamageTxt(value, pos);
}
public void PushBack_DamageTxt(DamageTxt obj)
{
DamageTxt_Pool.Push(obj);
}
}
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class DamageTxt : MonoBehaviour
{
public TextMeshPro textMeshPro;
private void OnEnable()
{
textMeshPro.fontSize = 1;
}
private void Update()
{
if (textMeshPro.fontSize.Equals(0))
OffDamageTxt();
}
public void SetDamageTxt(int value, Vector3 pos)
{
transform.position = pos;
textMeshPro.text = value.ToString();
gameObject.SetActive(true);
}
void OffDamageTxt()
{
gameObject.SetActive(false);
GameMgr.Inst.DamageTxt_Stack.ReturnObj(this);
}
}
데미지 텍스트 이펙트에도 새로운 스크립을 만들어
다시 푸쉬해주겠끔 하였다.
'유니티 2D 게임 만들어보기' 카테고리의 다른 글
몬스터 공격 추가하기, 캐릭터 체력바 추가 + 이동방식 변경 (0) | 2022.07.14 |
---|---|
오브젝트 풀링 용 스크립 만들어보기 (0) | 2022.07.13 |
몬스터 만들기 - 1 (0) | 2022.07.11 |
캐릭터 조이스틱 이동 구현 (0) | 2022.07.08 |
2D 게임 만들기위해 리소스 구해보기 (0) | 2022.07.07 |