ウィンドウ(GameObject)が常にどれか一つだけ表示するようにする。ウィンドウの切り替えとEventSystemへの選択オブジェクトの受け渡しを管理する。
- System.Collections.Generic
- UnityEngine
- UnityEngine.EventSystems
- UnityEngine.UI
- UnityEditor
① WindowStateManagementを常に存在するオブジェクトにコンポーネント.
② WindowControlをウィンドウとして扱いたいオブジェクトにコンポーネント.
③ WindowStateManagementのメソッドを呼んで,任意のウィンドウを表示.\
WindowStateManager windowStateManager;
WindowControl[] windowControls;
WindowControl[] popupWindowControls;
// Change windowControls[1]
windowStateManager.ChangeThisWindow(windowControls[1]);
// Change main window
windowStateManager.ChangeMainWindow();
// Change windowControls[3]
int index = windowStateManager.GetThisWindowIndex(windowControls[3]);
windowStateManager.ChangeWindow(index);
// Show popupWindows[0]
windowStateManager.ShowPopupWindow(popupWindows[0]);
popupWindows[0].SetActive(false) // Close popupWindows[0]
// Show all popupWindows
windowStateManager.ShowPopupWindow(popupWindows);
foreach (var w in popupWindows) w.SetActive(false) // Close all popupWindows
WindowControlを管理する. 任意のウィンドウに切り替える.
--
int MainWindowIndex
int CurrentIndex
bool ExistPopupWindows
WindowControl CurrentWindow
void ChangeMainWindow()
void ChangeWindow(int index)
void ChangeThisWindow(WindowControl window)
void ShowPopupWindow(WindowControl popupWindow)
void ShowPopupWindows(params WindowControl[] popupWindows)
int GetThisWindowIndex(WindowControl window)
任意のオブジェクトにWindowとしての機能を与える. 動作させるにはWindowStateManagerをアタッチする必要がある.
--
bool Interactable
void InitSelectables()
void ChangeMainWindow()
void ChangeWindow(int index)
void ChangeThisWindow()
void SetInteractable(bool interactable)
void SelectWindow()
void SelectWindow(EventSystem eventSystem)
int GetThisWindowIndex()
調整中です.
"WindowStateManagement" is under MIT license.