public void PhaseCloseCheck() { var children = GameObjectUtil.GetChildren(gameObject); var doable = children .Select((e) => { return(e.GetComponent <BehaviorNode>()); }) .SelectMany((e) => { return(e.EnableChildren()); }); var converted = doable as BehaviorNode; if (converted == null) { mState = ProcessState.CLOSE; } }
/// <summary> /// list up enable and living children. /// </summary> /// <returns></returns> public List <BehaviorNode> EnableChildren() { var objects = GameObjectUtil.GetChildren(gameObject); var activeObjects = objects .Where((elm) => { return(elm.activeSelf); }); var activenodes = activeObjects .Select((elm) => { return(elm.GetComponent <BehaviorNode>()); }) .Where((elm) => { return(elm != null); }) .Where((elm) => { return(elm.enabled); }); var activeAll = activenodes .SelectMany((elm) => { var ret = elm.EnableChildren(); ret.Add(elm); return(ret); }); return(activeAll as List <BehaviorNode>); }