Accueil Forums J’ai besoin d’aide Unity3D Problème de collision

Ce sujet a 7 réponses, 2 participants et a été mis à jour par  KiziLom, il y a 2 mois et 3 semaines.

8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #1077

    KiziLom
    Participant

    Bonjour, je rencontre actuellement un problème que je n’arrive pas à résoudre par moi-même.
    Quand je tire sur un obstacle ayant un collider + rigidbody, cela arrive que ma balle les transperce tout de même, mais cela arrive également qu’elle joue très bien son rôle, cela dépend de son humeur.
    J’ai lus des topics ou des personne ayant rencontré le même problème que le mien avait réussi à le résoudre en mettant la collision détection sur “continuous”, mais pour moi, aucun changement même sur ” Continuous Dynamic” :/
    Merci pour votre aide 🙂

    #1078

    KiziLom
    Participant

    J’en profite pour poser une autre question (la première est toujours d’actualité; je n’ai toujours pas trouvé de réponse pour le moment :))

    Je bloque sur un scrpit qui me semble pourtant correct, en fait je voulais faire un systeme pour changer d’animation en fonction de l’arme utilisé.
    Du coup pour faire un test j’ai fais ca:

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

    public class SwitcherArme : MonoBehaviour
    {

    //DeclarationVariables

    public GameObject Principale;
    public GameObject Secondaire;

    private CharacterController Joueur;
    private Animator Animation;

    void Start()
    {

    Principale.SetActive(true);
    Secondaire.SetActive(false);

    Joueur = GetComponent<CharacterController>();
    Animation = GetComponent<Animator>();
    }

    void Update()
    {

    //SwitchArmes

    if (Input.GetKeyDown(KeyCode.X))
    {
    Principale.SetActive(true);
    Secondaire.SetActive(false);
    }

    if (Input.GetKeyDown(KeyCode.X))
    {
    Principale.SetActive(false);
    Secondaire.SetActive(true);
    }

    //Animations

    if (Input.GetKey(KeyCode.H) & Principale & !Secondaire)
    {
    Animation.SetBool(“Walk”, true);
    }

    if (Input.GetKey(KeyCode.H) & !Principale & !Secondaire)
    {
    Animation.SetBool(“Walk”, false);
    }

    if (Input.GetKey(KeyCode.H) & Secondaire & !Principale)
    {
    Animation.SetBool(“Courir”, true);
    }

    if (Input.GetKey(KeyCode.H) & !Secondaire & !Principale)
    {
    Animation.SetBool(“Courir”, false);
    }
    }
    }

    //Le code marche à moitié, le problème c’est qu’ il me prend les deux armes en compte et je ne comprend pas du tout pourquoi, par exemple si je fais:

    if (Input.GetKey(KeyCode.H) & Principale)
    {
    Animation.SetBool(“Courir”, true);
    }else
    {
    Animation.SetBool(“Courir”, false);
    }
    Quand je vais appuyer sur la touche H equpié de mon arme principale, il va se mettre a marcher, et quand je vais la lâcher, il va arrêter de la jouer.
    Mais si j’équipe mon arme secondaire il va la jouer aussi, en gros pour lui l’arme Principale et Secondaire son la même chose, alors que sa ne devrai pas, ce sont bien deux GameObject différent :/
    Je dois surement oublier un truc mais je ne vois pas lequel..
    Merci pour votre aide 🙂

    #1079

    Stan13160
    Participant

    Salut moi je me suis servie de se tuto pour mon FPS : https://youtu.be/cZlWL2sUZ98 et je n’ ai jamais eu de problème impact ton problème se fait sur un cube ou objet que tu a ajouter ? Pour le changement d arme tu a un tuto avec un système de tableau ou tu peut gérer t arme tien :https://youtu.be/pPGXu96tLXs
    Essai de faire un (Input.GetKeyDown(KeyCode.H)
    J essai de t aidé mai je suis un débutant 👍

    #1080

    Stan13160
    Participant

    Oublie cette ligne :
    Essai de faire un (Input.GetKeyDown(KeyCode.H)
    j’avait mal lue

    • Cette réponse a été modifiée le il y a 2 mois et 3 semaines par  Stan13160.
    #1084

    KiziLom
    Participant

    Merci pour ton aide Stan13160 🙂
    J’ai aussi regardé ce tutoriel et plein d’autres parlant du tir à l’arme, ayant des petit soucis avec la trajectoire de la balle j’en ai utilisé un autre avec lequel j’utile un empty pour l’éjection, mais avec les deux méthodes j’ai ce problème de collision.
    Le problème survient surtout en fonction de la vitesse de la balle, met ta force de tir à 600 et peu être que toi aussi tu aura ce petit problème, la balle allant très vite l’objet ne la détecte pas tout le temps, par contre avec une vitesse de 50 je n’ai aucun problème avec la détection donc la collision ce passe très bien.
    Apres peu être qu’il n’y a tout simplement aucune solution, donc si je veux intégrer un sniper en gardant le bullet drop il va me falloir trouver un autre code.
    Pour le GetKetDown je pense avoir déjà fait l’essai, mais le problème ne vient pas de là, l’animation se fait très bien quand j’appuie sur mes touches, le problème vient du fait que le code ne fait pas la différence entre les deux gameobject, si je n’ai pas d’arme équipé il ne va pas la lancer(très bien), par contre si je m’équipe d’une arme il ne fait pas attention à celle que j’ai dans les mains malgrès les conditions, c’est vraiment chelou pourtant j’ai bien rentrer mes armes dans le gameobjetc etc.
    Merci pour ton aide en tout cas sa me fait plaisir, j’ai pas regardé de A a Z le lien de la deuxième vidéo, je vais le faire, mais je ne pense pas que cette méthode me convienne, a mon avis dans cette vidéo ça doit être genre quand j appui sur 1 faire cette animation, 2 faire cette animation, moi je voudrai vraiment que l’animation soit aléatoire, par exemple que j’appuis sur 1 pour faire défiler toute les armes, et selon l’arme qu’il aura il joura tel animation, je ne sais pas si c’est très clair mais bon x)
    Merci encore 🙂
    Bon courage pour ton projet j’espère que sa avance de ton coté a+

    #1088

    Stan13160
    Participant

    Salut comme tu m’a dit j ai monter mon shoot rate a 600 puis a 2 sa me fait bien le même problème que toi on dirait que comme c super rapide sa fait bug unity il prend plus les impacts j’espère tu trouveras une solution je peut pas plus t aidé pour ma par pas assez bon encore bonne continuation

    #1089

    KiziLom
    Participant

    Salut j’ai trouvé une solution pour réglé ce problème là, pour ceux que ça intéresse il suffit d’aller dans Edit > Project settings > Time et mettre le Fixed Timesetep sur 0.01, et normalement la collision devrait ce faire parfaitement sans avoir besoin de mettre la collision détection sur “continuous”.

    #1090

    KiziLom
    Participant

    En fait nan, finalement cela peu bugger le mieux est de mettre la collision detection qui ce trouve dans le rigidbody sur “continuous dynamic” pour que tout fonctionne correctement voila 🙂
    Chez moi sa marche

8 sujets de 1 à 8 (sur un total de 8)

Vous devez être connecté pour répondre à ce sujet.