728x90
**메모장에 구현할 것들 정리
한 페이지에 표시가능 UIStgae 수 : 18개
총 UIStage : 28
1페이지: 18개 1~18
2페이지: 10개 19~28
<한 페이지에 처음과 끝페이지 번호 알아내기>
처음: 끝페이지 번호 - (표시가능 UIStage수(18) -1)
끝: 페이지 번호 * 표시가능 UIStage수(18)
(단! 마지막 페이지에서는 총 페이지 수 나타내기)
EX)
1페이지
처음: 1 끝: 18
2페이지
처음: 19 끝: 36
3페이지
처음: 37 끝: 54
.
.
.
이전 페이지 버튼, 다음 페이지 버튼
뒤로가기 버튼 누르면 "뒤로 가기" 출력
닫기 버튼(팝업)
뒤로가기 버튼(페이지)
현재 페이지를 저장해야함
이전페이지 클릭 -> 현재페이지 -1
다음페이지 클릭 -> 현재페이지 +1
현재페이지가 1페이지면?
이전페이지 버튼 없음,,
====출력할 내용===
prev을 누르면 첫 페이지 입니다.
총 스테이지 : 28
현재 페이지 : 1
최대 페이지 : 2
스테이지 : 1 ~ 18
next버튼을 누르면 마지막 페이지 입니다
총 스테이지 : 28
현재 페이지 : 2
최대 페이지 : 2
스테이지 : 19 ~ 28
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test04UIMain : MonoBehaviour
{
[SerializeField]
private Button prevBtn;
[SerializeField]
private Button nextBtn;
//총 페이지 수
private int totalStage = 28;
//한 페이지에 나타낼 수 있는 최대 페이지 수
private int Max_Stage_Num = 18;
//현재 페이지
private int CurrnetPageNum = 1;
//최대 페이지
private int MaxPageNum;
//시작 번호
private int StartNum;
//끝 번호
private int EndNum;
void Start()
{
this.prevBtn.onClick.AddListener(() =>
{
Debug.Log("이전 페이지로 가기");
this.Display_prev();
});
this.nextBtn.onClick.AddListener(() =>
{
Debug.Log("다음 페이지로 가기");
this.Display_next();
});
}
void Display_prev()
{
//최대 페이지 수
this.MaxPageNum = Mathf.CeilToInt((float)totalStage / Max_Stage_Num);
//끝 번호 구하기
this.EndNum = this.CurrnetPageNum * this.Max_Stage_Num;
//시작 번호 구하기
this.StartNum = this.EndNum - (this.Max_Stage_Num - 1);
Debug.LogFormat("총 스테이지 : {0}", this.totalStage);
Debug.LogFormat("현재 페이지 : {0}",this.CurrnetPageNum);
Debug.LogFormat("최대 페이지: {0}",this.MaxPageNum);
Debug.LogFormat("스테이지 : {0} ~ {1}",this.StartNum,this.EndNum);
}
void Display_next()
{
this.CurrnetPageNum++;
//최대 페이지 수
this.MaxPageNum = Mathf.CeilToInt((float)totalStage / Max_Stage_Num);
//끝 번호 구하기
this.EndNum = this.CurrnetPageNum * this.Max_Stage_Num;
//시작 번호 구하기
this.StartNum = this.EndNum - (this.Max_Stage_Num - 1);
Debug.LogFormat("총 스테이지 : {0}", this.totalStage);
Debug.LogFormat("현재 페이지 : {0}", this.CurrnetPageNum);
Debug.LogFormat("최대 페이지: {0}", this.MaxPageNum);
//마지막 페이지일 경우
if(this.CurrnetPageNum >= this.MaxPageNum)
{
Debug.LogFormat("스테이지 : {0} ~ {1}", this.StartNum,this.totalStage);
Debug.Log("마지막 페이지입니다.");
}
else
{
Debug.LogFormat("스테이지 : {0} ~ {1}", this.StartNum, this.EndNum);
}
}
}
'KDT > 유니티 심화' 카테고리의 다른 글
23/09/07 LearnUGUI (구조잡고 정적 스크롤뷰 관리 하는 스크립트 만들기) (0) | 2023.09.07 |
---|---|
23/09/06 LearnUGUI (Stage 2) (0) | 2023.09.06 |
23/09/05 LearnUGUI (UIStage) (0) | 2023.09.05 |
23/09/05 LearnUGUI (InputField) (0) | 2023.09.05 |
23/09/04 LearnUGUI 종합(Button,On/Off,Tab,Slider) (0) | 2023.09.04 |