protected override void Awake() { EditorApplication.playModeStateChanged -= playModeStateChanged; EditorApplication.playModeStateChanged += playModeStateChanged; wdata = scriptable.Load <NodeCanvasData>(); generateWindowData(wdata); }
protected void generateWindowData(NodeCanvasData windowData) { windowList = new List <BaseWindow>(); fixedWindow = new FixedWindow(windowData.shareData); foreach (var item in windowData.nodelist) { windowList.Add(new NodeWindow(item, windowList)); } foreach (var item in windowData.routerlist) { windowList.Add(new RouterWindow(item, windowList)); } //set next Node foreach (var item in windowList) { DataBase itemdata = windowData.Get(item.Id); if (itemdata.type == NodeType.Node) { NodeData edata = itemdata as NodeData; if (edata.next >= 0) { BaseWindow next = FindWindow(edata.next); (item as NodeWindow).SetNext(next); } } else { RouterData edata = itemdata as RouterData; RouterWindow win = item as RouterWindow; //set default if (edata.defaultEntity >= 0) { NodeWindow def = FindWindow <NodeWindow>(edata.defaultEntity); win.SetDefault(def); } //set conditions List <RouterWindowCondition> conditions = new List <RouterWindowCondition>(); foreach (var con in edata.conditions) { RouterWindowCondition rcon = new RouterWindowCondition(); rcon.className = con.className; rcon.entity = FindWindow <NodeWindow>(con.entity); conditions.Add(rcon); } win.SetConditions(conditions); } } }