Problème codage C#

Simon - 15 mars 2024 à 11:50
Whismeril Messages postés 19045 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 21 mai 2024 - 15 mars 2024 à 21:41

Bonjour,

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

public class WaveSpawn : MonoBehaviour {

    public GameObject[] easyWaves;
    public GameObject[] mediumWaves;
    public GameObject[] hardWaves;
    public GameObject Player;
    // Use this for initialization
    void Start () {
        SpawnWave();
    }

    // Update is called once per frame
    void Update()
    {

    }

    public void SpawnWave(){


        float CharacSpeed = Player.GetComponent<CharacBehavior>().vitesse;

        if (CharacSpeed < 10)
        {
            Instantiate(easyWaves[Random.Range(0, easyWaves.Length)], new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0), Quaternion.identity);
        }
        else if (CharacSpeed >= 10 && CharacSpeed < 12)
        {
            Instantiate(mediumWaves[Random.Range(0, mediumWaves.Length)], new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0), Quaternion.identity);
        }
        else if (CharacSpeed >= 12)
        {
            Instantiate(hardWaves[Random.Range(0, hardWaves.Length)], new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0), Quaternion.identity);
        }
    }


}

voici mon code j'ai un problème au moment de la génération de mes waves a chaque fois la wave suivante se superpose sur sur celle d avant comment puis-je régler le problème en sachant que mon personnage accélère au fur et a mesure du temp .la première chose qui met venu a l'esprit c'est de rajouter un décallage sur toutes les waves mais a cause de la vitesse du personnage qui change ca ne marche pas bien (ce code fait partie d'un jeu runners 2D)

Si vous pensez avoir la solution merci de me répondre via mon adresse mail

merci d'avance pour vos réponses  


Windows / Chrome 122.0.0.0

1 réponse

Whismeril Messages postés 19045 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 21 mai 2024 912
15 mars 2024 à 21:41

Bonsoir

Tout d'abord, pour tes prochains messages, il faudra faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code pour poster ton code.

Je ne connais pas Unity, mais C# oui.

a chaque fois la wave suivante se superpose sur sur celle d avant 

Avec ce que tu montres, à priori y'en a qu'une seule. Il manque donc un morceau de code, or tu initialises "ta" wave comme ceci

Instantiate(easyWaves[Random.Range(0, easyWaves.Length)], new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0), Quaternion.identity);

 et selon la documentation https://docs.unity3d.com/ScriptReference/Object.Instantiate.html (qui confirme ce que je présentais en lisant) le vecteur définit la position de départ.

Vecteur que tu instancies à partir des coordonnées de l'objet gameObject.transform.

Donc soit, il faut modifier les coordonnées de cet objet dans le code que tu n'as pas montré, soit il faut instancies tes vecteurs à partir d'autres coordonnées qui changent à chaque fois.

la première chose qui met venu a l'esprit c'est de rajouter un décallage sur toutes les waves

Y'a de l'idée, mais qu'as-tu tenté ?  

mais a cause de la vitesse du personnage qui change ca ne marche pas bien

Si tu le dis...


0