[Unity] 레벨 시스템 구현

gunggme·2023년 7월 22일

유니티(unity)

목록 보기
1/9

안녕하세요 이번에는 Class로 구현하고 간단한 게임에서 사용할 수 있는 레벨 시스템 구현을 해볼겁니다!

1. 레벨 클래스

	// Class for defining a level range and the corresponding experience cap increase for that range
    [System.Serializable]
    public class LevelRange
    {
        // 레벨 범위
        //시작 레벨
        public int startLevel;
        // 끝레벨
        public int endLevel;
        // 경험치량
        public int experienceCapIncrease;
    }

먼저 이것은 레벨의 범위를 지정 해주는것으로 만약 본인이 1~3 레벨은 경험치 량은 100으로 하고 싶다! 하고 싶다면,
startLevel엔 1을, endLevel엔 3을, experienceCapincrease엔 100을 넣으면 된다!

2. 레벨링 시스템

저 클래스를 만들고 나서는 같은 C# 스크립트 MonoBehaviour가 종속된 클레스엔 이것을 적으면 된다..


	[Header("Experience/Level")] 
    public int experience = 0;
    public int level = 1;
    public int experienceCap;
    
	// 헤젷 전뤼 리스트
    public List<LevelRange> levelRanges;
    
    void Start()
    {
        // 리스트 0번째의 경험치량 불러오기
        experienceCap = levelRanges[0].experienceCapIncrease;
    }

    public void IncreaseExperience(int amount)
    {
    	// 들어오는 경험치 더하기
        experience += amount;
        
        // 레벨업 하는지 확인
        LevelUpChecker();
    }

    void LevelUpChecker()
    {
    	// 만약 경험치가 꽌찬다면?
        if (experience >= experienceCap)
        {
        	// 레벨 업
            level++;
            // 경험치 줄여주기
            experience -= experienceCap;

            int experienceCapIncrease = 0;
            foreach (LevelRange range in levelRanges)
            {
                /*
                 * 만약 현재 레벨이 리스트안에 있는 startLevel보다 크고 endLevel보다 적으면 실행하고 빠져나오기
                 * 간단하게 0범 리스트에 조건이 맞으면 나오고 초기화
                 */
                if (level >= range.startLevel && level <= range.endLevel)
                {
                    experienceCapIncrease = range.experienceCapIncrease;
                    break;
                }
            }

            experienceCap += experienceCapIncrease;
        }
    }
    

이런식으로 작성해주면 된다! 이러면 이제 public으로 지정된 IncreaseExperience를 끌고 가져가 적이 죽을때 주는 경험치량을 주면 레벨업이 되는지 확인하고 자동으로 레벨업을 시키면서 다음 레벨 조건을 확인해 적용 시켜준다!

Inspector 창에서 이런식으로 보이면 완성이다! 이것을 사용해서 rpg게임을 만들 수도 있다!

profile
안녕하세요!

2개의 댓글

comment-user-thumbnail
2024년 9월 24일

링크해갑니다~

1개의 답글