Ejemplo n.º 1
0
        protected override IEnumerator <BHiveState> Update()
        {
            Food targetFood = null;

            while (true)
            {
                if (retard > 3)
                {
                    targetFood = FoodController.Instance.GetFoodNear(Target.transform.position);
                    retard     = 0;
                }
                retard++;
                if (targetFood == null)
                {
                    break;
                }
                if (targetFood.foodValue < 0)
                {
                    break;
                }
                if (Distance(targetFood.position) <= GetFloat("foodDistance"))
                {
                    break;
                }

                character.WalkTo(targetFood.position, false);


                yield return(BHiveState.Running);
            }
            character.StopWalking();
            yield return(BHiveState.Done);
        }
Ejemplo n.º 2
0
        protected override IEnumerator <BHiveState> Update()
        {
            float elapsedTime = 0;

            while (elapsedTime < GetFloat("duration"))
            {
                if (enemy == null)
                {
                    break;
                }

                Vector3 targetDirection = -(enemy.gameObject.transform.position - Target.transform.position);
                character.WalkTo(Target.transform.position + targetDirection.normalized, true);

                elapsedTime += Time.deltaTime;

                yield return(BHiveState.Running);
            }
            character.StopWalking();

            yield return(BHiveState.Done);
        }