// Update is called once per frame void Update() { if (!IsAlive()) { return; } switch (HumanState) { // On commence avec le tutoriel case Etape.Tuto: // On écrit les consignes dans le texte tutoText.text = "OK... Des ennemis vont arriver. " + Environment.NewLine + Environment.NewLine + "Les <b>touches fléchées gauche et droite</b> permettent de verrouiller la visée sur un ennemi, et la <b>touche espace</b> permet de tirer. " + Environment.NewLine + Environment.NewLine + "C'est parti !"; if (haveWaitedXSec) { SwitchState(Etape.Moving); tutoDone = true; gameObject.GetComponent <NavMeshAgent>().speed = 6; tutoImage.SetActive(false); } break; // Si le joueur arrive à destination, on passe dans l'étape "Arrived" case Etape.Moving: if (!tutoDone) { gameObject.GetComponent <NavMeshAgent>().speed = 2; X = 7.5f; StartCoroutine("WaitXSecond"); SwitchState(Etape.Tuto); } else { // Lorsque le joueur arrive, on enlève sa position dans la list et on passe dans l'étape arrivée if (HasArrived()) { if (destination.Count > 0) { actualPosition = destination[0]; destination.RemoveAt(0); } SwitchState(Etape.Arrived); } } break; // Si le joueur est arrivé, on fait spawn les ennemis et on passe dans l'étape "Covered" case Etape.Arrived: if (!EnemiesFind) { FindEnemies(); } SwitchState(Etape.GoCovered); // Se déplace vers le check point this.SetDestination(actualPosition.transform); MoveToThisPoint(false); //switch cam position CamMngr.SwitchPosCam("TPS"); break; //Se déplace vers le point pour se mettre à couvert case Etape.GoCovered: if (HasArrived()) { this.transform.rotation = GetDestination().rotation; if (haveWaited2Sec) { SwitchState(Etape.Covered); StartCoroutine("WaitCovered"); } else { StartCoroutine("Wait2Second"); } } break; // Si le joueur est à couvert, un appuie sur le bouton haut nous fait passer dans l'étape "Uncovered" case Etape.Covered: transform.rotation = Quaternion.Slerp(transform.rotation, GetDestination().rotation, 10 * Time.deltaTime); break; // si appuie sur touche "haut", déplacement vers le point de découvert case Etape.GoUncovered: if (HasArrived()) { transform.rotation = GetDestination().rotation; SwitchState(Etape.Uncovered); //target = ChooseTarget(1); } break; // Lorsque que le joueur arrive au point de destination, il est à découvert et peut tirer case Etape.Uncovered: //Look enemy and shoot if (target) { LookToTarget(); if (Input.GetKeyDown(btnTir)) { Fire(); } } //Choose Enemy if (Input.GetKeyDown(btnLeft)) { target = ChooseTarget(-1); } if (Input.GetKeyDown(btnRight)) { target = ChooseTarget(1); } // Si on peut se mettre à couvert et qu'il nous reste des possibilitées de se cacher on y va if (Input.GetKeyDown(btnDown) && actualPosition.ptDecouvert != null && getCoveredTokens > 0) { getCoveredTokens--; col.enabled = false; SwitchState(Etape.GoCovered); // Se déplace vers le point à couvert this.SetDestination(actualPosition.transform); MoveToThisPoint(false); } break; } }
// Update is called once per frame void Update() { if (!IsAlive()) { return; } switch (HumanState) { // Si le joueur arrive à destination, on passe dans l'étape "Arrived" case Etape.Moving: // Lorsque le joueur arrive, on enlève sa position dans la list et on passe dans l'étape arrivée if (HasArrived()) { actualPosition = destination[0]; destination.RemoveAt(0); SwitchState(Etape.Arrived); } break; // Si le joueur est arrivé, on fait spawn les ennemis et on passe dans l'étape "Covered" case Etape.Arrived: if (!EnemiesFind) { FindEnemies(); } SwitchState(Etape.GoCovered); break; case Etape.GoCovered: transform.rotation = Quaternion.Slerp(transform.rotation, GetDestination().rotation, 10 * Time.deltaTime); if (Mathf.Approximately(transform.rotation.y, GetDestination().rotation.y)) { SwitchState(Etape.Covered); } //switch cam position CamMngr.SwitchPosCam("TPS"); // Se déplace vers le check point SetDestination(actualPosition.transform); MoveToThisPoint(); break; // Si le joueur est à couvert, un appuie sur le bouton haut nous fait passer dans l'étape "Uncovered" case Etape.Covered: //Go to Undercovered State if (Input.GetKeyDown(KeyCode.UpArrow)) { SwitchState(Etape.GoUncovered); //switch cam position CamMngr.SwitchPosCam("FPS"); // Se déplace vers le point de découverte this.SetDestination(actualPosition.ptDecouvert.transform); MoveToThisPoint(); } break; // si appuie sur touche "haut", déplacement vers le point de découvert case Etape.GoUncovered: if (!CamMngr.IsMoving()) { SwitchState(Etape.Uncovered); } break; // Lorsque que le joueur arrive au point de destination, il est à découvert et peut tirer case Etape.Uncovered: //Look enemy and shoot if (target) { LookToTarget(); if (Input.GetKeyDown(btnTir)) { Fire(); } } //Choose Enemy if (Input.GetKeyDown(KeyCode.LeftArrow)) { target = ChooseTarget(-1); } if (Input.GetKeyDown(KeyCode.RightArrow)) { target = ChooseTarget(1); } //Go to Covered State if (Input.GetKeyDown(KeyCode.DownArrow)) { col.enabled = false; SwitchState(Etape.Covered); } break; } }