void Seacher(NodeLinkTaskChecker Checker, int x) { Checker += "firstNodeAct_Subscribe [" + Checker.ID + "]"; Checker.Branch++; // 最初に枝カウンタを1にしておく(規定値が0なので+でいいはず) gameNodeScripts[1][x].NodeCheckAction(Checker, _eLinkDir.NONE); // 下から順にチェックスタート。来た方向はNONEにしておいて根っこを識別。 }
public static NodeLinkTaskChecker GetChecker() { foreach(var it in heap) { if (!it.Use) { //Debug.Log("<color=green>HitHeap</color>"); it.Init(); return it; } } //Debug.Log("<color=orange>Heap Grow</color>"); var ret = new NodeLinkTaskChecker(); heap.Add(ret); ret.Init(); return ret; }
void Catcher(NodeLinkTaskChecker Checker, bool Unlinkmode) { if (Debug.isDebugBuild && bNodeLinkDebugLog) Debug.Log("CheckedCallback_Subscribe [" + Checker.ID + "]" + Checker.SumNode.ToString() + "/" + (Checker.NotFin ? "" : "Fin") + "\n" + Checker.ToString()); // ノード数1以上、非完成フラグが立ってないなら if (Checker.SumNode >= 1 && Checker.NotFin == false) { if (Unlinkmode) { UnlinkNodeTree(Checker.NodeList); Observable .NextFrame() //.ThrottleFrame(3) .Subscribe(x => CheckLink(true, true)).AddTo(this); } else { ReplaceNodeTree(Checker.NodeList); // 消去処理 } } Checker.Dispose(); // チェッカは役目を終えたので消す }