示例#1
0
    // Use this for initialization
    void Start()
    {
        health = maxHealth;
        //reference au champ de vision de l'ennemi pour acceder au tableau qui contient les joueurs visibles.
        enemyVision = gameObject.GetComponent <EnemyFieldOfView>();

        //reference au navMesh du GO.
        _navMesh = this.GetComponent <NavMeshAgent>();

        if (_navMesh == null)
        {
            Debug.Log("Aucun navMesh attaché à l'objet : " + gameObject.name);
        }
        else
        {
            if (destinations != null && destinations.Count >= 2)
            {
                SetDestination();
            }
            else
            {
                Debug.Log("Pas asser de points de patrouille");
            }
        }
    }
示例#2
0
 private void Start()
 {
     currentHp    = maxHp;
     animator     = this.GetComponent <Animator>();
     isShootingId = Animator.StringToHash("isShooting");
     animator.SetBool(isShootingId, isShooting);
     audioSource      = this.GetComponent <AudioSource>();
     enemyFieldOfView = this.GetComponent <EnemyFieldOfView>();
 }
 // Start is called before the first frame update
 void Start()
 {
     if (Exclamation != null)
     {
         Exclamation.SetActive(false);
     }
     EnemyFieldOfView = GetComponent <EnemyFieldOfView>();
     EnemyFieldOfView.OnPlayerEnter += OnPlayerEnter;
     EnemyFieldOfView.OnPlayerExit  += OnPlayerExit;
 }
    void OnSceneGUI()
    {
        EnemyFieldOfView fow = (EnemyFieldOfView)target;

        Handles.color = Color.white;
        Handles.DrawWireArc(fow.transform.position, Vector3.forward, Vector3.up, 360, fow.viewRadius);

        Vector3 viewAngleA = fow.DirFromAngle(-fow.viewAngle / 2f);
        Vector3 viewAngleB = fow.DirFromAngle(fow.viewAngle / 2f);

        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleA * fow.viewRadius);
        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleB * fow.viewRadius);
    }
 void Start()
 {
     currentHealth             = health;
     lightEffector             = GetComponent <LightEffector>();
     path                      = GetComponent <AIPath>();
     destinationSetter         = GetComponent <AIDestinationSetter>();
     mainPlayerHealthHandler   = GameObject.Find("Player").GetComponent <PlayerHealthHandler>();
     mainPlayerPosition        = GameObject.Find("Player").GetComponent <Transform>();
     currentRechargeAttackTime = attackRate;
     currentPosition           = GetComponent <Transform>();
     fov = GetComponent <EnemyFieldOfView>();
     currentTeleportTime = timeBetweenTeleports;
 }
示例#6
0
    void OnSceneGUI()
    {
        EnemyFieldOfView fov = (EnemyFieldOfView)target;

        Handles.color = Color.white;

        Handles.DrawWireArc(fov.transform.position, Vector3.forward, Vector3.right, 360, fov.viewRadius);


        Vector3 viewAngleA = fov.DirFromAngle(-fov.viewAngle + 180 / 2, false);
        Vector3 viewAngleB = fov.DirFromAngle(fov.viewAngle + 180 / 2, false);

        Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleA * fov.viewRadius);
        Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleB * fov.viewRadius);

        if (fov.canSeeTarget)
        {
            Handles.color = Color.red;
            Handles.DrawLine(fov.transform.position, fov.seekedObject.position);
        }
    }
示例#7
0
    //pour la visualisation de la vision de l'ennemi
    void OnSceneGUI()
    {
        //reference au Composant qui gere la vision de l'ennemi
        EnemyFieldOfView fieldOfView = (EnemyFieldOfView)target;

        //couleur du tracage
        Handles.color = Color.white;
        //trace le cercle qui représente la distance max du champ de vision de l'ennemi
        Handles.DrawWireArc(fieldOfView.transform.position, Vector3.up, Vector3.forward, 360, fieldOfView.viewRadius);
        //extrémité gauche de l'angle de vue
        Vector3 viewAngleA = fieldOfView.DirectionFromAngle(-fieldOfView.viewAngle / 2, false);
        //éxtrémité droite de l'angle de vue
        Vector3 viewAngleB = fieldOfView.DirectionFromAngle(fieldOfView.viewAngle / 2, false);

        Handles.DrawLine(fieldOfView.transform.position, fieldOfView.transform.position + viewAngleA * fieldOfView.viewRadius);
        Handles.DrawLine(fieldOfView.transform.position, fieldOfView.transform.position + viewAngleB * fieldOfView.viewRadius);

        //trace le raycast vers les joueurs visible par l'ennemi en rouge
        Handles.color = Color.red;
        foreach (Transform visibleTarget in fieldOfView.visibleTargets)
        {
            Handles.DrawLine(fieldOfView.transform.position, visibleTarget.position);
        }
    }
示例#8
0
 // Use this for initialization
 void Start()
 {
     //récupération de la référence
     enemyVision = gameObject.GetComponent <EnemyFieldOfView>();
 }