Page 2 sur 2

Re: problème avec Destroy(GameObject)

Publié : 14 Nov 2021 00:19
par jmhoubre
Tu as mis un Debug.Log à l'intérieur de la condition ? Il affiche son texte ?

Re: problème avec Destroy(GameObject)

Publié : 15 Nov 2021 09:28
par boubouk50
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.

Re: problème avec Destroy(GameObject)

Publié : 15 Nov 2021 16:12
par Kaloverian
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