예제 #1
0
    Vector3 GetPointToRetreatTo()
    {
        NavMeshHit hit;
        Vector3    pointAwayFromPlayer;

        if (NavMesh.SamplePosition(enemy.transform.position - enemy.GetDirectionTo(enemy.chaseTarget) * enemy.retreatLength, out hit, enemy.navMeshAgent.height * 2, NavMesh.AllAreas))
        {
            return(pointAwayFromPlayer = hit.position);
        }
        else
        {
            return(new Vector3(0, 0, 0));
        }
    }
예제 #2
0
 void Fire()
 {
     if (!enemy.IsPlayerInsideComfortZone())
     {
         Vector3 directionToPlayerWithOffset = enemy.GetDirectionTo(enemy.chaseTarget);
         directionToPlayerWithOffset = new Vector3(directionToPlayerWithOffset.x, directionToPlayerWithOffset.y + 0.10f, directionToPlayerWithOffset.z);
         SpawnProjectile(enemy.transform.position, directionToPlayerWithOffset, enemy.projectileSpeed);
         Debug.Log("lets say i jsut fired");
         enemy.isReloaded = false;
         ToAttackWindUp();
     }
     else
     {
         ToAttackWindUp();
         enemy.currentState = enemy.retreatState;
     }
 }