예제 #1
0
        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;
            }
        }
예제 #2
0
        /// <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>);
        }