private ITicker _LootStrategy()
        {
            var th = new TurnHandler(this);


            var  traceStrategy = new TraceStrategy(this);
            Guid target        = Guid.Empty;
            var  builder       = new Regulus.BehaviourTree.Builder();
            var  distance      = 1f;
            var  node          = builder
                                 .Sequence()
                                 .Action(_NotEnemy)
                                 .Action((delta) => _FindLootTarget(out target))
                                 .Action((delta) => traceStrategy.Reset(target, distance))
                                 .Action((delta) => traceStrategy.Tick(delta))
                                 .Action((delta) => _Loot(target))
                                 .End()
                                 .Build();

            return(node);
        }
        private ITicker _DistanceWayfindingStrategy()
        {
            var builder = new Regulus.BehaviourTree.Builder();

            var th = new TurnHandler(this);
            var od = new ObstacleDetector();

            od.OutputEvent += th.Input;
            return(builder
                   .Sequence()
                   // 是否碰到障礙物
                   .Action((delta) => _DetectObstacle(delta, _Entiry.GetViewLength() / 2, _GetOffsetDirection(10.31f * 2)))

                   // 停止移動
                   //.Action(_StopMove)

                   // 檢查周遭障礙物
                   .Action((delta) => od.Detect(delta, _DecisionTime, _Entiry, this, _Entiry.GetViewLength(), 180))

                   // 旋轉至出口
                   .Action((delta) => th.Run(delta))
                   .End().Build());
        }