Пример #1
0
        public BattleState(ref TargetFinder.Target target)
        {
            var decisionOn = target.isDecision ? 4 : 0;        //.GetHashCode() << 2;
            var existsOn   = target.isExists ? 2 : 0;          //.GetHashCode() << 1;
            var battleOn   = target.isRelease ? 0 : 1;         //(!target.isRelease).GetHashCode();

            state = (EnMode)(decisionOn | existsOn | battleOn);
        }
Пример #2
0
        float                   limitTime; // どうしてもたどり着けない場合のための時間制限など



        // 移動先計算 ---------------------

        public bool routine(_Action3Enemy self, ref TargetFinder.Target target)
        {
            if (!isGoalOrLimit(ref self.figure, self.rb.position))
            {
                return(false);
            }

            if (target.isExists)
            {
                setTargetPoint(self, ref target);
            }
            else
            {
                setTargetPoint(self);
            }

            return(true);
        }
Пример #3
0
        public void setTargetPoint(_Action3Enemy self, ref TargetFinder.Target target)
        {
            targetPoint = target.imaginaryPosition;            //self.rb.position + ( target.imaginaryPosition - self.rb.position ) * 0.5f;

            setTimer(Random.Range(0.5f, 3.0f));
        }