[DB-AL]Plusieurs problèmes au niveau du Timer

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Zanaki
Messages : 16
Inscription : 26 Déc 2018 17:30

Re: [DB-AL]Plusieurs problèmes au niveau du Timer

Message par Zanaki » 11 Juin 2019 18:10

Hey salutation ! Merci beaucoup pour ta réponse. Alors oui, c'est se que j'ai fait. ça à l'air de fonctionner. plutôt bien même, je pense laisser comme ça. J'ai eu un autre soucis que je viens tout juste de résoudre. C'était au niveau des premier spawn. Les Gems se lance au démarrage, mais je pense que le problème est résolu.

Voici le codes, que j'ai un tout petit peu modifier. Pourrais-tu s'il te plait y jeter un oeil est me dire se que tu en pense.

Code : Tout sélectionner

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

public class ItemsSpawn : MonoBehaviour
{

    #region Variable
    //Public

    //Private
    [SerializeField] private float minX = 0.0f;
    [SerializeField] private float maxX = 0.0f;
    [SerializeField] private int minItemsToSpawn = 1;
    [SerializeField] private int maxItemsToSpawn = 6;
    [SerializeField] private GameObject[] items; // potential array of hazards
    //[SerializeField] private float timeBetweenSpawns = 0.0f;
    [SerializeField] private float timeRandomMin = 0.0f; // Temps minimum entre chaque Spawn
    [SerializeField] private float timeRandomMax = 0.0f; // Temps maximum entre chaque Spawn
    private bool canSpawn = false;
    private float timeBetweenSpawns = 5.0f; // Temps entre les spawn
    private int qteItemsToSpawn = 0; // QTE => Quantité, Quantité de projectile à apparaitre.
    private int itemToSpawn = 0;
    private int itemSpawnCap = 8;
    #endregion

    #region UnityFunction
    // Start is called before the first frame update
    void Start()
    {
        canSpawn = true;     //Temp start
    }

    // Update is called once per frame
    void Update()
    {
        if (canSpawn == true)
        {
            StartCoroutine("GenerateItems");
        }
    }

    private IEnumerator GenerateItems()
    {
        canSpawn = false;
        timeBetweenSpawns = Random.value * timeRandomMin + timeRandomMax;
        qteItemsToSpawn = Random.Range(minItemsToSpawn, maxItemsToSpawn);            //Testing Values

        yield return new WaitForSeconds(Random.value * timeBetweenSpawns + 2.0f);

        for (int i = 0; i < qteItemsToSpawn; i++)
        {
            Vector3 spawnPos = new Vector3(Random.Range(minX, maxX), Random.Range(8.5f, 12.0f), 0.0f);   // Generate a spawnPosition the Hazard
            Instantiate(items[itemToSpawn], spawnPos, Quaternion.identity);     // Spawn the Hazard
        }
        canSpawn = true;
    }
    #endregion
}
Ah oui et sur ce code

Code : Tout sélectionner

Destroy(Instantiate(projectilesParticlesToon.gameObject, transform.position, projectilesParticlesToon.transform.rotation), projectilesParticlesToon.startLifetime);
, j'ai cette avertissement

Code : Tout sélectionner

Gravité	Code	Description	Projet	Fichier	Ligne	Source	État de la suppression
Avertissement	CS0618	'ParticleSystem.startLifetime' est obsolète : 'startLifetime property is deprecated. Use main.startLifetime or main.startLifetimeMultiplier instead.'	Assembly-CSharp	H:\Interface\Unity 3D\Project\Cube 3D News\Assets\Data\Scripts\ProjectilesCollision.cs	34	IntelliSense	Actif
Je n'arrive pas à utilisé main.starLifetime comme expliquer... Ou alors je ne comprends pas...

Enfin pour finir;
Voici le résultat en video qu'en penses-tu ??
Il faudrait que je fasse la même chose mais pour les projectiles maintenant.
https://www.youtube.com/watch?v=05u6lpv4zcs

Serait-il possible de garder le sujet ouvert en en non résolu s'il vous plait, ça évitera de faire encore des tonnes de sujets qui se rapproche surtout si c'est pour le même projet.

Merci encore et toujours pour ton aide qui est vraiment précieuse !

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7505
Inscription : 30 Juil 2011 13:57

Re: [DB-AL]Plusieurs problèmes au niveau du Timer

Message par Max » 11 Juin 2019 20:27

Bonsoir,

Concernant la nouvelle version de ton code, tu as placé la tempo avant la création des items, ce qui plutôt mieux à mon avis. La vidéo rend bien, tu arrives doucement aux effets recherchés, c'est le but et ça fait toujours plaisir de sentir que l'on progresse.
Zanaki a écrit :
11 Juin 2019 18:10
Ah oui et sur ce code

Code : Tout sélectionner

Destroy(Instantiate(projectilesParticlesToon.gameObject, transform.position, projectilesParticlesToon.transform.rotation), projectilesParticlesToon.startLifetime);
, j'ai cette avertissement

Code : Tout sélectionner

Gravité	Code	Description	Projet	Fichier	Ligne	Source	État de la suppression
Avertissement	CS0618	'ParticleSystem.startLifetime' est obsolète : 'startLifetime property is deprecated. Use main.startLifetime or main.startLifetimeMultiplier instead.'	Assembly-CSharp	H:\Interface\Unity 3D\Project\Cube 3D News\Assets\Data\Scripts\ProjectilesCollision.cs	34	IntelliSense	Actif
Je n'arrive pas à utilisé main.starLifetime comme expliquer... Ou alors je ne comprends pas...
Comme le dit le message d'avertissement, tu utilises une propriété qui est obsolète. Cela devrait fonctionner, mais au sein de l'API désormais il faut passer par ParticleSystem.MainModule.startLifetime
Zanaki a écrit :
11 Juin 2019 18:10
Serait-il possible de garder le sujet ouvert en en non résolu s'il vous plait, ça évitera de faire encore des tonnes de sujets qui se rapproche surtout si c'est pour le même projet.
Tant que l'on reste dans la même thématique, pas de soucis. Ouvre un autre sujet si tu es confronté à un soucis différent.
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

Zanaki
Messages : 16
Inscription : 26 Déc 2018 17:30

Re: [DB-AL]Plusieurs problèmes au niveau du Timer

Message par Zanaki » 11 Juin 2019 22:58

Salut;
Max a écrit :
11 Juin 2019 20:27
Concernant la nouvelle version de ton code, tu as placé la tempo avant la création des items, ce qui plutôt mieux à mon avis. La vidéo rend bien, tu arrives doucement aux effets recherchés, c'est le but et ça fait toujours plaisir de sentir que l'on progresse.
Oui, merci beaucoup pour m'avoir rediriger, pour le moment, je compte laisser comme ça.
Max a écrit :
11 Juin 2019 20:27
Comme le dit le message d'avertissement, tu utilises une propriété qui est obsolète. Cela devrait fonctionner, mais au sein de l'API désormais il faut passer par ParticleSystem.MainModule.startLifetime
Je n'ai pas compris, concrètement, je remplacement le code par quoi ??

J'ai essayer de faire => projectilesParticlesToon.startLifetime
Par => projectilesParticlesToon.MainModule.startLifetime

Normalement les messages d'avertissement ne sont pas dangereux, mais bon... Je dois avouer que ça me gène, c'est juste personnel en soi.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7505
Inscription : 30 Juil 2011 13:57

Re: [DB-AL]Plusieurs problèmes au niveau du Timer

Message par Max » 12 Juin 2019 13:10

Hello,
Zanaki a écrit :
11 Juin 2019 22:58
Je n'ai pas compris, concrètement, je remplacement le code par quoi ??
J'ai essayer de faire => projectilesParticlesToon.startLifetime
Par => projectilesParticlesToon.MainModule.startLifetime
La doc te donne les réponses normalement (il y a même un code en guise d'exemple) ->ParticleSystem.MainModule.startLifetime
Zanaki a écrit :
11 Juin 2019 22:58
Normalement les messages d'avertissement ne sont pas dangereux, mais bon... Je dois avouer que ça me gène, c'est juste personnel en soi.
Dans la mesure du possible, en effet, il est toujours mieux d'en tenir compte.
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

Répondre

Revenir vers « (C#) CSharp »