// 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"); } } }
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; }
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); } }
//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); } }
// Use this for initialization void Start() { //récupération de la référence enemyVision = gameObject.GetComponent <EnemyFieldOfView>(); }