예제 #1
0
 public void GoTo(NavTarget target)
 {
     if (fixTimer == 0)
     {
         agent.SetDestination(target.transform.position);
     }
 }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        navTargets = new NavTarget[targets.Length];
        for (int i = 0; i < targets.Length; i++)
        {
            navTargets[i] = new NavTarget(targets[i]);
        }

        navCharacters = new NavCharacter[characterControllers.Length];
        for (int i = 0; i < characterControllers.Length; i++)
        {
            var target = SampleAvailableTarget();
            target.reserved  = true;
            navCharacters[i] = new NavCharacter(characterControllers[i], target);
        }

        lastUpdate = Time.time;
    }
예제 #3
0
    private void UpdateControllers()
    {
        for (int i = 0; i < navCharacters.Length; i++)
        {
            if (Time.time > navCharacters[i].nextChangeTime)
            {
                NavTarget nextTarget = SampleAvailableTarget();
                navCharacters[i].aiCharacterControl.SetTarget(nextTarget.transform);

                navCharacters[i].currentTarget.reserved = false;
                nextTarget.reserved            = true;
                navCharacters[i].currentTarget = nextTarget;

                navCharacters[i].nextChangeTime = Time.time + Random.Range(
                    positionUpdateIntervalRangeMin,
                    positionUpdateIntervalRangeMax);
            }
            else if (navCharacters[i].aiCharacterControl.agent.remainingDistance < distanceThreshold)
            {
                navCharacters[i].aiCharacterControl.SetTarget(null);
                navCharacters[i].aiCharacterControl.transform.rotation = Quaternion.LookRotation(facingDirection);
            }
        }
    }
예제 #4
0
 public NavCharacter(AICharacterControl aiCharacterControl, NavTarget currentTarget)
 {
     this.aiCharacterControl = aiCharacterControl;
     this.nextChangeTime     = 0.0f;
     this.currentTarget      = currentTarget;
 }
예제 #5
0
 public void AddNavTarget(NavTarget argNavTarget)
 {
     myNavTargets.Add(argNavTarget);
 }