按鈕架構

Picture

Node

※這是一個Inner Class

屬性型別 說明
GameObject 指向場景中該按鈕的GameObject
Node 指向父節點
List<Node> 指向每個兄弟節點
List<Node> 指向每個子節點
方法 說明
Node(string objName, Node father) constructor;objName為GameObject名稱,father為父節點
void rvSelfActive() / rvChildActive() / rvSiblingActive() 改變自己/所有子節點/所有兄弟節點的可視狀態(參考GameObject.SetActive(bool)
void addChild(menuNode child) / void addSibling(menuNode sibling) 把child/sibling加入自己的child/sibling list

Implement

屬性型別 說明
Stack<Node> 儲存被按過的按鈕,用來處理「返回上層」的情況(見方法:void previousClick())
方法 說明
void menuClick(GameObject obj) 傳入被按下的按鈕,將該按鈕、該按鈕的兄弟節點、該按鈕的子節點的可見狀態全部反轉(Ex. Menu 1被按下後,Menu 1、Menu 2消失;Menu 1-1、Menu 1-2出現)並將該按鈕push進stack中
void previousClick() 處理「返回」按鈕被按下的情況:從stack中pop出上一個被按下的按鈕,將其自身、兄弟節點及子節點的可見狀態全部反轉

DEMO

影片比較清楚

results matching ""

    No results matching ""