유니티에서 스코어 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 && ..) 인데 오타가 난건가요?
아 맞네요. 지적 감사합니다 🙂
수정해 놓았습니다.
블로그 방문 감사합니다.