problème avec Destroy(GameObject)

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
Avatar de l’utilisateur
jmhoubre
Messages : 856
Inscription : 05 Oct 2019 22:05

Re: problème avec Destroy(GameObject)

Message par jmhoubre » 14 Nov 2021 00:19

Tu as mis un Debug.Log à l'intérieur de la condition ? Il affiche son texte ?

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

Re: problème avec Destroy(GameObject)

Message par boubouk50 » 15 Nov 2021 09:28

Kaloverian a écrit :
13 Nov 2021 20:36
Pourquoi,d'après ce cript,l'objet kaka n'est-il pas détruit grâce à la condition?

Code : Tout sélectionner

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

public class essai1 : MonoBehaviour
{
    public GameObject koko,kaka;

    public float moveSpeed,A;

    float dist;

    
    
    // Start is called before the first frame update
    void Start()
    {
        dist=Vector3.Distance(koko.transform.position,kaka.transform.position);
    }

    // Update is called once per frame
    void Update()
    {
        if(dist>A)
         {
            Destroy(kaka);
         }

         koko.transform.Translate (Vector3.up* moveSpeed * Time.deltaTime);
    }
}

Tout simplement parce que la condition n'est pas remplie.
Tu calcules la distance une seule fois au Start(), donc sa valeur est fixe. Si A est fixe aussi, et que dist <= A au départ, alors la condition ne sera jamais remplie.
"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

Avatar de l’utilisateur
Kaloverian
Messages : 342
Inscription : 10 Août 2016 03:03

Re: problème avec Destroy(GameObject)

Message par Kaloverian » 15 Nov 2021 16:12

code corrigé:

Code : Tout sélectionner

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

public class essai1 : MonoBehaviour
{
    public GameObject koko,kaka,emptyO,emptyA;
    

    public float moveSpeed,A;
    float dist;

    
    // Start is called before the first frame update
    void Start()
    {  emptyO.transform.position=koko.transform.position;
       emptyA.transform.position=kaka.transform.position;

       koko.transform.parent=emptyO.transform;
       kaka.transform.parent=emptyA.transform;
    }

    // Update is called once per frame
    void Update()
    {
        dist=Vector3.Distance(emptyO.transform.position,emptyA.transform.position);
       
        if(dist>A)
         {
           Destroy(kaka);
         }

         

         emptyO.transform.Translate (Vector3.up* moveSpeed * Time.deltaTime);
    }
}

CEci étant,bien que j'ai mis en place les 3 scripts proposés par jmhoubre,le rebondissement aléatoire à l'intérieur d'une sphère virtuelle ne fonctionne pas chez moi.
A noter que je n'utilise pas Vector3.Reflect pour éviter que l'angle de rebond soit égal à l'angle incident

Répondre

Revenir vers « (C#) CSharp »