Exemplo n.º 1
0
        public override Status Update()
        {
            Memory memory = self.GetComponent <Memory>();

            if (!memory)
            {
                return(Status.Error);
            }

            //BaseAIParameters param = self.GetComponent<BaseAIParameters>();
            //if (!param)
            //    return Status.Error;
            ITarget[] targets = memory.AllTargets();
            if (targets == null)
            {
                return(Status.Failure);
            }

            if (targets.Length == 0)
            {
                return(Status.Failure);
            }

            return(Status.Success);

            //ITarget target = targets[0];



            //IMemorable target = memory.GetLast();

            //return target != null ? Status.Success : Status.Failure;
            //return Status.Failure;
        }
Exemplo n.º 2
0
 ITarget MemoryTarget()
 {
     ITarget[] allTargets = memory.AllTargets();
     if (allTargets.Length > 0)
     {
         return(allTargets[0]);
     }
     return(null);
 }
Exemplo n.º 3
0
        public override Status Update()
        {
            //BaseAIParameters param = self.GetComponent<BaseAIParameters>();
            //if (!param || !param.destinationEnable)
            //{
            //    return Status.Failure;
            //}

            //if (Vector3.Distance(self.transform.position, param.destination) < param.endSeekingDistance)
            //{
            //    return Status.Success;
            //}

            Memory memory = self.GetComponent <Memory>();

            if (!memory)
            {
                return(Status.Failure);
            }


            ITarget[] targets   = memory.AllTargets();
            bool      hasTarget = targets.Length > 0;

            if (hasTarget)
            {
                ITarget        target             = targets[0];
                IMemorable     memorable          = target as IMemorable;
                IMemorableItem memItem            = memory.Find(memorable);
                Vector3        destination        = memItem.lastOccurPosition;
                UnityEngine.AI.NavMeshAgent agent = self.GetComponent <UnityEngine.AI.NavMeshAgent>();
                agent.SetDestination(destination);
                agent.Resume();
                return(Status.Running);
            }
            else
            {
                UnityEngine.AI.NavMeshAgent agent = self.GetComponent <UnityEngine.AI.NavMeshAgent>();
                agent.Stop();
                return(Status.Failure);
            }
        }