반응형
위와 같은 구조로 먼저 UI를 구성을 해준다.
UIStageItem(complete, doing, lock이 들어가 있는)를 만들어서 프리팹을 해주고, 배치를 해준다.
----
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIStageItem : MonoBehaviour
{
public enum eStageItemType {
COMPLETE, DOING, LOCK
}
public GameObject completeGo;
public GameObject doingGo;
public GameObject lockGo;
public GameObject[] arrStars;
public Text txtStageNo;
private eStageItemType type;
public void Init(eStageItemType type)
{
this.type = type;
switch (this.type) {
case eStageItemType.COMPLETE:
{
this.completeGo.SetActive(true);
this.doingGo.SetActive(false);
this.lockGo.SetActive(false);
}
break;
case eStageItemType.DOING:
{
this.completeGo.SetActive(false);
this.doingGo.SetActive(true);
this.lockGo.SetActive(false);
}
break;
case eStageItemType.LOCK:
{
this.completeGo.SetActive(false);
this.doingGo.SetActive(false);
this.lockGo.SetActive(true);
}
break;
}
}
}
UIStageItem 스크립터를 만들어줘서 위와같이
필요한 게임오브젝트를 받아주고, 그리고 init 초기화를 만들어줘서
이넘타입에 따라, 오브젝트의 상태를 껏다 켜주기를한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIStage : MonoBehaviour
{
public UIStageItem[] arrUIStageItems;
private int maxStage = 36;
// Start is called before the first frame update
void Start()
{
for (int i = 0; i < this.arrUIStageItems.Length; i++) {
var uiStageItem = this.arrUIStageItems[i];
uiStageItem.txtStageNo.text = (i + 1).ToString();
if (i < 5)
{
uiStageItem.Init(UIStageItem.eStageItemType.DOING);
}
else {
uiStageItem.Init(UIStageItem.eStageItemType.LOCK);
}
}
}
// Update is called once per frame
void Update()
{
}
}
for를 돌려서 배열에 들어간 UIStageItems를 순회한다.
var uiStageItem = this.arrUIStageItems[i];
uiStageItem 에 인덱스 별로 값을 받는다.
uiStageItem.txtStageNo.text = (i + 1).ToString();
if (i < 5)
{
uiStageItem.Init(UIStageItem.eStageItemType.DOING);
}
else {
uiStageItem.Init(UIStageItem.eStageItemType.LOCK);
}
StageNo.Text 에 숫자를 증가 시킨다.
if(i < 5)로 스테이지 5개를 연다 .
반응형
'Unity > UIUX프로그래밍' 카테고리의 다른 글
0421_ UIStage 페이지 넘기기 (1) | 2021.04.21 |
---|---|
0421_유니티 데이터 저장하는 것 (0) | 2021.04.21 |
0420_아이템 먹기 + 인벤토리 연동 (0) | 2021.04.20 |
0420_아이템 데이터 // 데이터매니저 싱글턴 사용하기 (0) | 2021.04.20 |
0420 _ 인벤토리 만들기 (2) | 2021.04.20 |