PageSelectorBase¶
- public abstract class PageSelectorBase : MonoBehaviour¶
Подключенные библиотеки:¶
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
Описание¶
Базовый класс для селекторов с переключением страниц.
Внимание
Этот класс используется только для наследования от него, и дальнейшей реализации.
Приватные сериализуемые поля¶
Примечание
Все сериализуемые значения изменяются в инспекторе.
Объекты¶
- protected Transform slotsParent¶
Ссылка на Transform компонент объекта, который является родителем для
слотов
.
- protected GameObject slotPrefab¶
Ссылка на префаб слота.
- protected Button nextPageBtn¶
Ссылка на UI Button, который служит кнопкой переключения страницы вперёд.
- protected Button prevPageBtn¶
Ссылка на UI Button, который служит кнопкой переключения страницы назад.
Свойства и поля¶
- protected abstract int SlotsCount { get; } ¶
Общее количество слотов, которое надо отобразить в селекторе.
Важно
Это свойство нужно реализовать дочернему объекту.
Публичные методы¶
Примечание
virtual
- возможно переопределение метода в дочерних объектах.
- public virtual void Load()¶
Инициализировать слоты и открыть первую страницу.
- public virtual void Clear()¶
Очистить пул слотов.
- public virtual void ChangePage(int dir)¶
Сменить страницу в зависимости от направления.
-1
- прошлая страница.1
- следующая страница.
dir:Направление смены страницы.
- public virtual void GoToPage(int page)¶
Сменить текущую страницу на указанную, если она существует.
page:Индекс страницы.
- protected abstract void InitializeSlot(int index, int id, GameObject slot)¶
Этот метод вызывается при генерации страницы, чтобы обработать слот.
Важно
Этот метод нужно реализовать дочернему объекту.
index:Порядковый индекс слота.id:Идентификатор слота относительно общего кол-ва слотов.slot:Объект слота.
Пример обработки слота¶
protected override void InitializeSlot(int index, int id, GameObject slot)
{
// Берём кейс по общему идентификатору слота.
Case @case = GameManager.GetConfig().GetCase(id);
// У слота в компоненте CaseViewer вызываем инициализацию.
slot.GetComponent<CaseViewer>().Initialize(@case);
}
Метод взят из класса CaseSelector
.