73 lines
1.5 KiB
C#
73 lines
1.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class PageSpot : MonoBehaviour
|
|
{
|
|
[SerializeField] GameObject mTplSpot;
|
|
|
|
private Transform mCtn;
|
|
private List<GameObject> mLightSpots;
|
|
private List<GameObject> mSpotList;
|
|
|
|
private int mSpotCount;
|
|
|
|
private void Awake()
|
|
{
|
|
mCtn = transform;
|
|
}
|
|
|
|
public void Init(int pTotalCount)
|
|
{
|
|
mSpotCount = pTotalCount;
|
|
mLightSpots = new List<GameObject>();
|
|
|
|
for (int i = 0; i < pTotalCount; i++)
|
|
{
|
|
GameObject tSpot = GetSpot(i);
|
|
mLightSpots.Add(tSpot.transform.GetChild(0).gameObject);
|
|
}
|
|
|
|
HideUnused();
|
|
}
|
|
|
|
public void SetPageIndex(int pCurrentIndex)
|
|
{
|
|
for(int i = 0; i < mLightSpots.Count; i++)
|
|
{
|
|
mLightSpots[i].SetActive(pCurrentIndex == i);
|
|
}
|
|
}
|
|
|
|
private GameObject GetSpot(int pSpotIndex)
|
|
{
|
|
if (mSpotList == null)
|
|
{
|
|
mSpotList = new List<GameObject>();
|
|
}
|
|
|
|
GameObject tCell = null;
|
|
if (pSpotIndex < mSpotList.Count)
|
|
{
|
|
tCell = mSpotList[pSpotIndex];
|
|
}
|
|
else
|
|
{
|
|
tCell = Instantiate(mTplSpot, mCtn);
|
|
tCell.transform.localScale = Vector3.one;
|
|
mSpotList.Add(tCell);
|
|
}
|
|
|
|
tCell.SetActive(true);
|
|
|
|
return tCell;
|
|
}
|
|
|
|
private void HideUnused()
|
|
{
|
|
for (int i = mSpotCount; i < mSpotList.Count; i++)
|
|
{
|
|
mSpotList[i].SetActive(false);
|
|
}
|
|
}
|
|
} |