본문 바로가기

Unity

Slider와 HPBar

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