Chapter 11-4. 포션 제조 : 페이지 시스템
카테고리: Unity Lesson 3
태그: Unity Game Engine
인프런에 있는 케이디님의 [유니티 3D] 실전! 생존게임 만들기 - Advanced 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click
포션 제조 : 페이지 시스템
🚀 페이지 버튼 UI
위 아래 페이지 이동 이미지에 버튼 컴포넌트 추가
📜ArchemyTable
private int page = 1; // 현재 페이지
[SerializeField] private int theNumberOfSlot; // 한 페이지당 슬롯의 최대 개수(4개)
[SerializeField] private Image[] image_ArchemyItems; // 페이지에 따른 포션 이미지들(4개 사용)
[SerializeField] private Text[] text_ArchemyItems; // 페이지에 따른 포션 텍스트들(4개 사용)
[SerializeField] private Button[] btn_ArchemyItems; // 페이지에 따른 포션 버튼들(4개 사용)
void Start()
{
ClearSlot();
PageSetting();
}
public void Buttonclick(int _buttonNum)
{
if (archemyItemQueue.Count < 3)
{
int archemyItemArrayNumber = _buttonNum + (page - 1) * theNumberOfSlot;
archemyItemQueue.Enqueue(archemyItems[archemyItemArrayNumber]);
image_CraftingItems[archemyItemQueue.Count].gameObject.SetActive(true);
image_CraftingItems[archemyItemQueue.Count].sprite = archemyItems[archemyItemArrayNumber].itemImage;
}
}
public void UpButton()
{
if (page != 1)
page--;
else
page = 1 + archemyItems.Length / theNumberOfSlot; // 최대 페이지
ClearSlot();
PageSetting();
}
public void DownButton()
{
if (page < 1 + archemyItems.Length / theNumberOfSlot)
page++;
else
page = 1;
ClearSlot();
PageSetting();
}
private void ClearSlot()
{
for (int i = 0; i < theNumberOfSlot; i++)
{
image_ArchemyItems[i].sprite = null;
image_ArchemyItems[i].gameObject.SetActive(false);
btn_ArchemyItems[i].gameObject.SetActive(false);
text_ArchemyItems[i].text = "";
}
}
private void PageSetting()
{
int pageArrayStartNumber = (page - 1) * theNumberOfSlot; // 4의 배수
for (int i = pageArrayStartNumber; i < archemyItems.Length; i++)
{
if (i == page * theNumberOfSlot)
break;
image_ArchemyItems[i - pageArrayStartNumber].sprite = archemyItems[i].itemImage;
image_ArchemyItems[i - pageArrayStartNumber].gameObject.SetActive(true);
btn_ArchemyItems[i - pageArrayStartNumber].gameObject.SetActive(true);
text_ArchemyItems[i - pageArrayStartNumber].text = archemyItems[i].itemName + "\n" + archemyItems[i].itemDescription;
}
}
과정이 9.3 건축 : 페이지 시스템 포스트와 매우 비슷하기 때문에 설명 생략.
위 페이지로 가는 버튼 이벤트에 UpButton() 함수 호출하도록 등록.
아래 페이지로 가는 버튼 이벤트에 DownButton() 함수 호출하도록 등록.
이미지 4 개, 텍스트 4개, 버튼 4 개 이렇게 12 개 UI 오브젝트들로 페이지 바뀔 때마다 새롭게 세팅해서 재활용 해 쓸 것이다. 이들을 할당해준다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기