Print Friendly and PDF

유니티/게임 제작

[디펜스 게임 제작] 보호 오브젝트

나는야 개발자 2025. 6. 15. 11:42
반응형

다음 제작할 것은 보호 오브젝트이다.

 

보호 오브젝트란?

- LOL의 넥서스와 같은 형태로 던전지키기와 같은 개념이며, hp가 0이 되면 게임이 종료된다.

 

using TMPro;
using UnityEngine;

public class HpBarController_Text : MonoBehaviour
{
    [SerializeField] TextMeshProUGUI _hptext;
    const string HPTEXT = "{0}/{1}";
    public void Hpbar_Update(int maxhp, int curhp)
    {
        _hptext.text = string.Format(HPTEXT, curhp, maxhp);
    }
}

- 맵을 일단 대충 만들어 준 후 오른쪽 상단에 Text형 Hp를 하나 추가

- Gage가 아니므로 Text형태의 hp를 추가해준다

*참고로 저 까만색이 성벽(보호 오브젝트)이다.

 

using System;
using UnityEngine;

public class ProtectObject : BaseNPC
{
    public static event Action _protectobject_death;
    [SerializeField] HpBarController_Text _hpbarController_text;

    protected override void Start()
    {
        base.Start();
        _hpbarController_text.Hpbar_Update(_so_npc._Hp, _current_hp);
        _hit_event += () => _hpbarController_text.Hpbar_Update(_so_npc._Hp, _current_hp);
    }

    protected override void PlayAnimation(EANIMATION eanimation)
    {

    }

    protected override void PlayAnimation(EANIMATION eanimation, bool isaction)
    {

    }
    protected override void NPC_Die()
    {
        base.NPC_Die();
        _protectobject_death?.Invoke();
    }
}

 - ProtectObject 클래스에 HpBarController_Text를 추가 한 후 Start문에서 이벤트 적용

- _protectobject_death를 static형태로 만들어 성벽 파괴 시 게임이 종료되도록 추가할 예정

 

일단 이렇게 제작한 후 추후 공격과 관련된 내역이 있을때 추가 구현 예정

반응형