using UnityEngine; using UnityEngine.Events; using P09.Modular.Humanoid.Data; namespace P09.Modular.Humanoid { public abstract class EditPage : MonoBehaviour { [SerializeField] private GameObject _root; [SerializeField] private ModelRotateButton _modelRotateButton; protected bool _isActive; protected UnityAction _onChangePart; protected UnityAction _onChangePage; protected UnityAction _onChangeFaceEmotion; public virtual void Init() { Hide(); } public void SetEventHandlers( UnityAction onChangePage, UnityAction onChangePart, UnityAction onRotateModel, UnityAction onChangeFaceEmotion) { _onChangePage = onChangePage; _onChangePart = onChangePart; _onChangeFaceEmotion = onChangeFaceEmotion; _modelRotateButton.Init(onRotateModel); } public void Show() { _isActive = true; _root.SetActive(true); } public void Hide() { _isActive = false; _root.SetActive(false); } public abstract void UpdateView(bool isReset = false); } }