C#Attente d'un objectif

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
kisuno
Messages : 6
Inscription : 22 Août 2020 17:15

C#Attente d'un objectif

Message par kisuno » 23 Août 2020 17:07

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.
Dernière édition par kisuno le 23 Août 2020 21:51, édité 1 fois.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Attente d'un objectif

Message par Max » 23 Août 2020 20:54

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.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

kisuno
Messages : 6
Inscription : 22 Août 2020 17:15

Re: C#Attente d'un objectif

Message par kisuno » 23 Août 2020 21:52

Bonsoir,
Ok merci, j'ai tout est mis normalement j'espère.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: C#Attente d'un objectif

Message par boubouk50 » 24 Août 2020 08:24

Une coroutine est une fonction, tu ne peux pas la définir directement dans l'Update ().
https://docs.unity3d.com/ScriptReference/Coroutine.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Scripting »