Пример #1
0
        public void Reinitialize()
        {
            //TODO: Change to runner extension
            Runner = BehaviorTreeFile.LoadFromJSON(this);

            if (spliceNewIntoTree)
            {
                SpliceIntoRunner();
            }

            TreeElementUtility.TreeToList(Runner, treeList);

            var treeQuery = treeList.AsEnumerable();

            TreeSubject = new Subject <BehaviorTreeElement>();
            TreeSubject.Subscribe(xr =>
            {
                var logEntry = new BehaviorLogEntry(
                    loggerName: BehaviorLogger.Name,
                    logType: LogType.Log,
                    timestamp: DateTime.Now,
                    message: "Ticked!",
                    behaviorID: xr.ID,
                    newState: xr.CurrentState,
                    ticknum: xr.NumberOfTicksReceived.Value,
                    context: this,
                    state: xr);
                BehaviorLogger.Raw(logEntry);
                Debug.Log("xr debug initialize");
            }).AddTo(this);

            initialized = true;
        }
Пример #2
0
        public void Initialize()
        {
            ChildrenDrawers = new Dictionary <int, BehaviorLogDrawer>();
            LogStream       = ObservableBehaviorLogger.Listener
                              .Where(x =>
                                     x.BehaviorID == BehaviorID &&
                                     x.LoggerName == ManagerName)
                              .Do(x =>
            {
                Entry = x;
                if (Entry.State.HasChildren)
                {
                    foreach (var child in Entry.State.Children)
                    {
                        if (!ChildrenDrawers.ContainsKey(child.ID))
                        {
                            float y = (child.Depth + 1) * (BoxSize.y + Style.margin.top);
                            ChildrenDrawers.Add(child.ID, new BehaviorLogDrawer(ManagerName, child.ID, BoxSize, Style)
                            {
                                Parent   = this,
                                DrawHere = new Rect(Style.margin.left, y, BoxSize.x, BoxSize.y)
                            });
                        }
                    }
                }
            });

            Initialized = true;
        }
        public void Reinitialize()
        {
            //TODO: Change to runner extension
            Runner = BehaviorTreeFile.LoadFromJSON(this);

            if (spliceNewIntoTree)
            {
                SpliceIntoRunner();
            }

            List <BehaviorTreeElement> treeList = new List <BehaviorTreeElement>();

            TreeElementUtility.TreeToList(Runner, treeList);

            var treeQuery = from el in treeList
                            select el;

            TreeStream =
                treeQuery
                .ToObservable()
                .Do(xr =>
            {
                xr.ObserveEveryValueChanged(x => x.NumberOfTicksReceived)
                .Do(x =>
                {
                    var logEntry = new BehaviorLogEntry(
                        loggerName: BehaviorLogger.Name,
                        logType: LogType.Log,
                        timestamp: DateTime.Now,
                        message: "Ticked!",
                        behaviorID: xr.ID,
                        newState: xr.CurrentState,
                        ticknum: xr.NumberOfTicksReceived.Value,
                        context: this,
                        state: xr);
                    BehaviorLogger.Raw(logEntry);
                })

                .Subscribe()
                .AddTo(this);
            });

            TreeStream.Subscribe().AddTo(this);

            initialized = true;
        }