Unity_개발일지_46

홍신영·2024년 12월 24일
0

Unity

목록 보기
48/62

오늘은 해당 별자리에 맞는 스테이지를 불러오는 작업을 진행했다.

먼저 12별자리를 중 하나를 선택하면 그 별자리에 맞는 스테이지 1-1, 1-2 등을 생성해주는 부분이다.

각 12별자리 버튼에 달아 줄 함수를 작성해보자.

    public void LoadStageUI(string stageName)
    {
        //var dungeonData = DataManager.Instance.DungeonDB;
        for(int i = 0; i < stageButtons.Length; i++)
        {
            //stageName = stageButtons[i].name;
            if(stageButtons[i].name == stageName)
            {
                GameObject obj = ResourceManager.Instance.LoadAsset<GameObject>(stageName, eAssetType.UI, eCategoryType.Stage);
                Instantiate(obj,transform); // 스테이지 버튼들 생성해주었고,
            }
        }
    }

각 버튼을 스크립트에 연결해준 뒤, for문을 돌며 버튼의 갯수만큼 돌아준다.
매개변수로 불러올 스테이지 ui의 이름을 받아와주고 버튼의 이름과 같다면 로드해주는 방식으로 구현하였다.

이렇게 되면 선택한 버튼에 맞는 스테이지가 별 자리 선택 ui 자식으로 불러와 진다.

이 다음으로는 스테이지 선택 버튼에 매개변수로 불러올 스테이지 id를 받아 던전 매니저를 생성해주면 해당 맵과 몬스터가 생성되도록 구현하였다.

이제 추가적으로 구현하고 있는 부분은 첫 스테이지를 제외한 모든 스테이지는 잠금 상태가 되고, 클리어한 스테이지의 배열의 다음 스테이지를 언락 상태로 만들어주는 작업이다.

간단히 순차적으로 스테이지를 클리어 할 수 있도록 유저에게 가이드를 주는 것이다.

이 방법을 적용하기 위해 먼저 SaveData라는 클래스를 만들었고, bool배열을 만들어 주었다.

초기화 작업으로

for(int i = 1; i < stageCleared.Length; i++)
{
	stageCleared[i] = false;
}

첫 스테이지를 제외한 모든 스테이지는 잠금 상태로 만들어 주었다.

이제 SaveData에 있는 클리어 정보를 가져와 false면 이미지 알파값을 반정도 줄여 희미하게 만들고, 버튼 클릭이 안되도록 버튼의 interactable을 false로 해주는 작업을 해보자.

하던 중 savedata가 안불러와져서 내일 마저 작업해야겠다.

profile
게임 클라이언트 개발자

0개의 댓글