Unity_캐릭터(2D)_HPbar
안녕하세요
오늘은 요즘 학원 프로젝트에서 UI부분은 맞고 있는데 UI부분 중 HPbar에 대한 포스팅을 하고자 합니다.
우선 2D로 진행되며, 2D캐릭터 밑에 HPbar가 있으며, 화면상에서는 보이지 않지만
Space bar 를 누르면 HP가 줄어들도록 구성하였습니다.
우측 하단에 보시면 Space Bar를 입력하고 작동이 되고 있는 걸 확인할 수 있는 Debug를 보실 수 있고
가운데 2D캐릭터의 HPbar가 줄어드는 걸 볼 수 있습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HP : MonoBehaviour
{
[SerializeField]
private Slider hpbar;
private float maxHp = 100;
private float curHp = 100;
void Start()
{
hpbar.value = (float)curHp / (float)maxHp;
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
Debug.Log($"GetKeyDown:{KeyCode.Space}");
curHp -= 10;
}
Handle();
}
private void Handle()
{
hpbar.value = (float)curHp / (float)maxHp;
}
}
유니티에서 UI - Slider 를 이용해서 만들었으며
위 사진과같이 하위 메뉴에서 Handle을 꺼주고 작업을 하였습니다.
HP 스크립트의 경우 Canvas에 적용을 시켜주었고, HPbar에 Slider_HP를 적용해주었습니다.
Slider의 경우 value의 값 즉 HP전체가 0~1 사이의 값으로 적용이 되기 때문에
hpbar.value = (float) curHp / (float) maxHp; 현재 HP / 전체 HP
로 적용을 해줘서
private float maxHp = 100;
private float curHp = 100;
전체 HP에 100을 적용시켜 주었고
if(Input.GetKeyDown(KeyCode.Space))
{
Debug.Log($"GetKeyDown:{KeyCode.Space}");
curHp -= 10;
}
를 통해서 Space 바를 눌렀을 때 curHp 현재 HP가 -10이 되도록 해주었습니다.