HP바 구현이라고 하면 체력에 따라 슬라이더가 가감되는 기능이 핵심이라고 할 수 있다. 하지만 항상 제작할 때 기본 슬라이더 옵션을 사용하면 Slder Handle의 스프라이트만큼 Fill 영역이 채워지지 않아 곤란한 경험이 있었을텐데... 생각해보니 아주 쉬운 해결 방법이 있었던 것이다.
Fill 영역의 Image Type을 Filled로 바꿔준다.
또한 개체의 체력 관리 시 프로퍼티를 잘못 선언하면 매 참조할 때마다 풀피가 되어버리는 현상이 일어날 수 있다...
[SerializeField] private int playerCurrHP = 600;
[SerializeField] private int playerMaxHP = 600;
public int PlayerCurrHP
{
set => playerCurrHP = 600;
get => playerCurrHP;
}
public int PlayerMaxHP
{
set => playerMaxHP = 600;
get => playerMaxHP;
}
이렇게 하면 외부에서 매번 PlayerCurrHP를 수정할 때 PlayerCurrHP가 600으로 초기화된다.
public int PlayerCurrHP
{
set
{
playerCurrHP = Mathf.Min(value, playerMaxHP);
}
get => playerCurrHP;
}
public int PlayerMaxHP
{
set => playerMaxHP = 600;
get => playerMaxHP;
}
외부에서 들어오는 값을 value에 저장하여 사용하도록 하자!
'Unity' 카테고리의 다른 글
Sorting Group (0) | 2024.09.19 |
---|---|
Particle System 좌우반전 (0) | 2024.09.05 |
애니메이션에서 TextMeshPro 컬러가 바뀌지 않는 문제 (0) | 2024.08.15 |
[UI] 키보드 입력만 받는 버튼 (0) | 2024.08.01 |
FSM (0) | 2024.04.26 |