Page 1 sur 1

C#Attente d'un objectif

Publié : 23 Août 2020 17:07
par kisuno
Bonjour,
Je débute sur unity et je ne sais donc pas comment nommer ce dont je parle en titre.
J'aimerai que mon code attende que mon time.delatime finisse de faire avancer mon personnage comment pourrais-je faire?

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class IA : MonoBehaviour
{
    public bool Touche = false;
    public bool waitt = false;
    void start()
    {
        
    }

        void Update()
        {
            StartCoroutine(iaDeplacement());

                IEnumerator iaDeplacement()
                {
                    Debug.DrawRay(transform.position, transform.forward*(5), Color.red);

                    RaycastHit hit;
                
                    Touche=false;
                    //Detecte si il touche
                    if(Physics.Raycast(transform.position, transform.forward, out hit, 5))
                    {                      
                        //fait Rotate le perso
                        transform.Rotate(Vector3.up*100);  
                        Touche=true;
                        Debug.Log("Touche");        
                        waitt=true;  
                        yield return new WaitForSeconds(1);
                        waitt=false;                       
                    }
                    //Else de if (si touche et waitt sont sur false)
                    else if ((Touche==false&&waitt==false))
                        {
                            //avance si touche et waitt sont sur false
                            while(Touche==false&&waitt==false)
                            {
                                //Fait avancer le personnage
                                transform.Translate(Vector3.forward*5*Time.deltaTime);
                                yield return new WaitForSeconds(5);
                                yield return null;
                            }
                        }
                }
            
        }
}
Merci d'avance.

Re: Attente d'un objectif

Publié : 23 Août 2020 20:54
par Max
Bonsoir,

ton code à travers ton screen est illisible.
Poste le comme prévu dans la charte, c'est plus lisible et en plus on peut plus aisément le tester par le biais de copié/collé.
Merci.

Re: C#Attente d'un objectif

Publié : 23 Août 2020 21:52
par kisuno
Bonsoir,
Ok merci, j'ai tout est mis normalement j'espère.

Re: C#Attente d'un objectif

Publié : 24 Août 2020 08:24
par boubouk50
Une coroutine est une fonction, tu ne peux pas la définir directement dans l'Update ().
https://docs.unity3d.com/ScriptReference/Coroutine.html