IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Probleme Physics2D/Rigidbody2D entre plusieurs prefabs instanciés [Unity 5]


Sujet :

Unity

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Probleme Physics2D/Rigidbody2D entre plusieurs prefabs instanciés
    Bonjour à tous, j'ouvre ce topic car après y avoir passé plusieurs heures, je n'arrive pas à résoudre un problème sur mon projet 2D unity5.

    En gros, j'ai plusieurs et différents préfabs (instanciés) qui ont des utilités différentes, en plus du "player", et qui possèdent tous rigidbody2D (avec AddForce) et collider2D pour les faire bouger et pour les faire interagir entre eux.
    -> Jusqu'ici tout vas bien.

    Problème : De temps en temps, un prefab 2 touche un prefab 1, et change ça trajectoire (à prefab 1).
    Alors que je souhaiterai que mon prefab 1, ai une trajectoire qui ne bouge pas, et si prefab 2 le touche, cela detruise prefab 2, sans altérer la trajectoire de prefab 1.

    Est-ce que cela est possible car je n'ai pour l'instant pas trouvé de solution ?
    Pour le moment, je detecte la collision sur prefab 1 avec un script qui contient void OnCollision2DEnter.. if (col.gameobject.tag == "prefab2") Destroy (col.gameobject.tag == "prefab2")
    Sauf que déjà je ne suis pas sur que ça détruise correctement le prefab 2 qui a touché le prefab 1, mais en plus et surtout ça modifie quand même la trajectoire de prefab 1, ce que je ne souhaite pas.

    Merci d'avance pour toutes aides apportées.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous avez la possibilité de mettre "isTrigger" le prefab qui ne doit pas bouger. Il y a une explication de cela ici : http://unity.developpez.com/videos/m...-collectibles/
    Sinon, vous pouvez freeze la position sur certains axe, comme on peut le voir pour le tank ici : http://unity.developpez.com/videos/t...tion-controle/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour LittleWhite.

    J'ai bien suivi tes liens, fort intéressant d'ailleurs.
    Il s’avère que j'ai trouvé une solution après mainte réflexions, par moi même.

    Utilisant des rigidbody2D, j'ai simplement augmenter la masse par 100 du prefab1 que je voulais avec une trajectoire non modifiable, pour que mes
    prefabs2 (masse = 1) ne puisse plus impacter dessus si ils le touchaient, ce qui fait que je peux laissez la détection de collision sur ces deux objets, et détruire les prefabs2 correctement,
    s'ils touchent prefab1. Et comme je souhaite qu'il aille a la même vitesse, et que l'augmentation de la masse augmente la vitesse, j'ai divisé celle du prefab1 par 100. Et voilà, problème réglé.

    Et pour être sûr, j'ai freeze la rotation avec moveRotation(0); Comme ça le prefab1 ne change plus de position et de rotation après impact avec prefab2.
    Sujet Résolu.

    Cordialement.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Je ne sais pas si c'est absolument la meilleure solution. Une autre solution est d'agrandir la BoundingBox (en isTrigger) afin que la collision soit détectée avant contact réel avec le RigidBody. Toutefois, je ne suis pas non plus persuadé d'une telle solution.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    C'est aussi une idée a essayer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de selection entre plusieurs listbox
    Par scheme dans le forum Tkinter
    Réponses: 1
    Dernier message: 09/10/2009, 10h49
  2. Réponses: 1
    Dernier message: 22/11/2007, 17h15
  3. Problème de cloisonnement entre plusieurs instances
    Par nostub dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2006, 18h00
  4. Communiquer entre plusieurs instances d'applications
    Par bourinator dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/09/2003, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo