Collider "isTrigger" ne suit pas en Runtime mais dans l'editor oui

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Ariku
Messages : 7
Inscription : 20 Jan 2020 13:35
Localisation : Pau

Collider "isTrigger" ne suit pas en Runtime mais dans l'editor oui

Message par Ariku » 10 Mars 2020 23:18

Bonjour,

J'utilise des Collider "isTrigger" sur mon personnage pour déplacer celui ci, mais lorsque je le déplace en runtime le collider qui génère l'événement ne se déplace pas et reste à sa position d'origine. Alors que dans l’éditeur le Collider à bien suivi le gameobject auquel il est assigné. J'ai chercher à désactiver puis réactiver le collider lors du "lâché" mais cela ne change rien. je ne peux reprendre que de la position initiale du collider alors que le gameobject est déplacé

J'ai vu en cherchant sur Google que d'autre ont déjà eu le soucis je suis en version 2019.3.4f1 , et j'ai essayé de changer de version en 2019.3.1f1 / 2019.2.17f1 / 2018.4.18f1 ( a chaque fois en créant un nouveau projet avec le strict nécessaire pour le test. Mais toujours le même problème.)

je sais que mon code n'est pas très joli et certainement perfectible :) je débute tout juste en C#.

Merci beaucoup ;)

Code : Tout sélectionner

using UnityEngine;
using Valve.VR;



public class OnCollisionEnterTargetIK : MonoBehaviour
{
    public SteamVR_Action_Boolean GrabGrip;
    


    [SerializeField]
    
    public GameObject Target01;
    public GameObject Targetbody01;
    
    private void Start()
    {
        if (Targetbody01 == null)
        {
             _ = Targetbody01 == GameObject.FindWithTag("BodyTarget");
        }
    }
    private void OnTriggerStay(Collider other)
    {
        
        if (GameObject.Find("LeftHand"))
        {
            
            if (GrabGrip.GetStateDown(SteamVR_Input_Sources.LeftHand))
            {
                
                Target01.transform.parent = GameObject.Find("LeftHand").transform;
            }                       
        }
        
        if (GameObject.Find("RightHand"))
        {            
            if (GrabGrip.GetStateDown(SteamVR_Input_Sources.RightHand))
            {
                 
                Target01.transform.parent = GameObject.Find("RightHand").transform;
            }
        }

    }
   
    private void Update()

    {
        
        
        
        if (GrabGrip.GetStateUp(SteamVR_Input_Sources.LeftHand) && (Target01.transform.parent == GameObject.Find("LeftHand").transform))
        {
            Target01.transform.parent = Targetbody01.transform.parent;           
        }
        
        if (GrabGrip.GetStateUp(SteamVR_Input_Sources.RightHand) && (Target01.transform.parent == GameObject.Find("RightHand").transform))
        {
            Target01.transform.parent = Targetbody01.transform.parent;
        }
    }
    
}

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: Collider "isTrigger" ne suit pas en Runtime mais dans l'editor oui

Message par djulio74 » 11 Mars 2020 07:57

Salut,
Une idée qui me viens, comment est hiérarchisé ton personnage? Je veux dire par là il doit surement être constitué d'un parent et plusieurs enfants pour chaque collider, non? dans ce cas là n'y aurait-il pas des rigidbody sur les enfant avec les collider? Si c'est le cas cela peut expliquer le soucis et si tu n'as pas besoin de rigidbody, supprime les.

Sinon, regarde si cette hiérarchie est la même en runtime qu'en éditeur. Vu que tu joue sur l'assignation des parents, peut être qu'au lancement de ta scène un script rende tes objets avec collider sans parent, et de ce fait ne se déplacent plus avec leur supposé parent, le player.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

Revenir vers « Scripting »