유니티에서 스코어 Score 클래스 만들기

유니티에서 스코어 Score 클래스 만들기

whats your score

 


유니티에서 스코어 Score 클래스 만들기

유니티에서 사용할 수 있는 게임 스코어를 관리하는 작은 클래스를 만들어 보겠습니다. 스코어 계산은 게임 사양에 따라 다를 수 있습니다. 예제에서는 한 번에 추가하는 스코어가 0  ~ 10000점이고, 스코어에 상한 값은 9,999,999 점인 것으로 정하겠습니다. 이러한 사양을 기반으로 클래스를 만들어 보겠습니다.


public class Score
{
    private int _score = 0;
    private int _min = 0;
    private int _max = 10000;
    private int _scoreMax = 9999999;

    // 점수 더하기.
    public void Add(int score)
    {
        Assert(score);
        _score += score;
        Clamp();
    }

    // 스코어 초기화.
    public void Clear()
    {
        _score = 0;
    }

    // 점수의 상한 보정.
    private void Clamp()
    {
        _score = Mathf.Min(_score,_scoreMax);
    }
    
    // 추가 스코어 데이터 유효성 검사.
    private bool Assert(int score)
    {
        if (_min <= score && score <= _max)
            return true;
        else
        {
            Debug.LogWarning("추가 스코어 데이터가 잘못되었습니다.");
            return false;
        }
    }
}

int 자료형의 변수로 점수를 다루면, 게임의 사양 그대로 점수가 계산된다는 보장이 없습니다. 하지만 계산을 이렇게 클래스화하면 사양을 보장할 수 있습니다. 변수에 제한을 걸어주면 코드의 보수성이 높아져 관리하는 데 좋습니다.

이렇게 변수에 사양이 필요한 경우, 변수를 클래스화 해서 제한을 걸어주면 관리하기에 좋습니다.

 

내용 끝까지 읽어주셔서 감사합니다.
배너 클릭은 저에게 많은 힘이 됩니다.
감사합니다 🙂

RonnieJ

프리랜서 IT강사로 활동하고 있습니다. 게임 개발, C++/C#, 1인 기업에 관심이 많습니다.

2 Responses

  1. 지나가던행인 댓글:

    Assert 메소드의 if문 조건
    if (_min <= score && ..) 인데 오타가 난건가요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Please turn AdBlock off

Notice for AdBlock users

Please turn AdBlock off