테스트를 위해 Knight에게 임의로 UI_HPBar를 달아주었다.
private void Update()
{
Transform parent = transform.parent;
transform.position = parent.position + Vector3.up * (parent.GetComponent<Collider>().bounds.size.y + 0.4f);
// 여러 각도에서 일정하게 보이도록 회전을 같이 수정해준다.
transform.rotation = Camera.main.transform.rotation;
//매 업데이트마다 hp ui를 set해준다.
float ratio = _stat.Hp / (float)_stat.MaxHp;
SetHp(ratio);
}
// 오브젝트를 들고와서 슬라이더의 값을 ration로 수정
public void SetHp(float ratio)
{
GetObject((int)GameObjects.HP_Bar).GetComponent<Slider>().value = ratio;
}
HP의 비율을 설정하기 위해 매 업데이트마다 SetHp 함수를 실행하도록 하였다.
void OnHitEvent()
{
if (_lockTarget != null)
{
Stat targetStat = _lockTarget.GetComponent<Stat>();
PlayerStat mystat = transform.GetComponent<PlayerStat>();
int damage = Mathf.Max(0, mystat.Attack - targetStat.Defense);
Debug.Log(damage);
targetStat.Hp -= damage;
}
if (_stopSkill)
State = PlayerState.Idle;
else
State = PlayerState.SKill;
}
OnHitEvent에서 스탯의 hp를 수정하기 위한 코드를 작성하였다.
hp가 잘 감소함을 확인하였다.