유니티에서 스코어 Score 클래스 만들기
유니티에서 스코어 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 자료형의 변수로 점수를 다루면, 게임의 사양 그대로 점수가 계산된다는 보장이 없습니다. 하지만 계산을 이렇게 클래스화하면 사양을 보장할 수 있습니다. 변수에 제한을 걸어주면 코드의 보수성이 높아져 관리하는 데 좋습니다.
이렇게 변수에 사양이 필요한 경우, 변수를 클래스화 해서 제한을 걸어주면 관리하기에 좋습니다.
내용 끝까지 읽어주셔서 감사합니다.
배너 클릭은 저에게 많은 힘이 됩니다.
감사합니다 🙂
Assert 메소드의 if문 조건
if (_min <= score && ..) 인데 오타가 난건가요?
아 맞네요. 지적 감사합니다 🙂
수정해 놓았습니다.
블로그 방문 감사합니다.