C# Détection Collisions [RESOLU]

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

C# Détection Collisions [RESOLU]

Message par Paullux » 01 Mai 2018 17:34

Bonjour,

Je suis entrain de m'arracher les cheveux, j'ai besoin de détecter les collisions.

L'avatar du joueur et les ennemis/gentils ont un rigibody et un capsule collider, j'ai du commettre une erreur mais ça fait trois jours que je ne la vois pas. (Pour info, les ennemis/gentils sont des GameObjects avec des "rigidbody" et des "capsule collider" qui ont en enfants un gentil et un ennemi qui évoluent aux cours du jeu.)

J'ai écrit ce code attacher aux ennemis :

Code : Tout sélectionner

    void OnCollisionStay(Collision other)
    {
        Debug.text = "Name = " + other.gameObject.name + "\n" + "Tag = " + other.gameObject.tag;
        if (other.gameObject.name == "Soldier" || other.gameObject.tag == "ZombieOrHumain")
        {
            if(other.transform.GetChild(0).gameObject.activeSelf && other.gameObject != transform.gameObject)
            {
                if (!zombiesAttack)
                {
                    StartCoroutine("ZombieAttack");
                    other.gameObject.GetComponent<PointDeVie>().setHP(other.gameObject.GetComponent<PointDeVie>().getHP() - 4);
                }
            }
        }
        rb.angularVelocity = Vector3.zero;
        rb.velocity = Vector3.zero;
    }
    void OnCollisionExit(Collision other)
    {
        if (other.gameObject.name == "Soldier" || other.gameObject.tag == "ZombieOrHumain")
        {
            if (other.transform.GetChild(0).gameObject.activeSelf && other.gameObject != transform.gameObject)
            {
                StopCoroutine("ZombieAttack");
                zombiesAttack = false;
            }
        }
    }
les capsules colliders et les rigidbody ont ces réglages :
Image


Et les collisions ne sont pas détecté et on entre jamais dans OnCollisionStay, je ne comprends pas pourquoi...

Pour info, je travaille sur ce jeu :
https://www.youtube.com/watch?v=hyvCoUvXVo4
Dernière édition par Paullux le 04 Mai 2018 21:56, édité 1 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: C# Détection Collisions

Message par Max » 01 Mai 2018 17:50

Bonjour,

A priori cela semble pourtant bon. Par contre, c'est quoi ton Debug.text ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: C# Détection Collisions

Message par Paullux » 01 Mai 2018 17:59

Je fais un jeu grâce à ARcore, le SDK de Google pour la réalité augmentée sur Android.

Hors avec ARcore, on doit connecter un smartphone compatible et en mode debug usb.

Et quand on veut tester le jeu, on doit le faire sur le smartphone directement, hors il n'y a pas la console pour lire les Debug.Log sur le téléphone, du coup j'ai créer un UI text qui s'appelle Debug pour tester les différentes variables et fonctions utilisé dans mon jeu.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: C# Détection Collisions

Message par Max » 01 Mai 2018 18:12

A ok, je ne connaissais pas. Je ne suis pas du tout connaisseur en RA et en plateforme mobile.

Pour ton soucis, à priori rien ne semble clocher. Les callback sont les bons, tu as le couple rigidbody/collider, donc tu devrais bien rentrer dans OnCollisionStay et avoir ton Debug.text qui te sort le nom du gameobject 'collidé'.
Après, le reste étant lié aux multiples conditions, ça je ne sais pas ce qu'il en est.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: C# Détection Collisions

Message par Paullux » 01 Mai 2018 18:19

Le text "Debug" ne change pas donc je n'entre jamais dans le "OnCollisionStay()". Et le joueur faisant un "RaycastHit" sur les ennemis, le rigibody/capsule collider fonctionne correctement donc.

Là je sèche, si ça se trouve c'est un bug d'ARcore, je vais poster une "issue" sur le GitHub du projet.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: C# Détection Collisions

Message par Max » 01 Mai 2018 18:23

Demain il devait y avoir des personne plus callées en RA et qui devraient mieux être en mesure de te répondre, si c'est effectivement lié à un soucis plus spécifique à ce type de dev.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: C# Détection Collisions

Message par Paullux » 01 Mai 2018 18:31

Pour ceux que ça pourrait intéresser, j'ai posté une issue sur le GitHub du projet : https://github.com/google-ar/arcore-uni ... issues/190
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: C# Détection Collisions

Message par Moi 1971 » 02 Mai 2018 08:55

Bonjour,

Peux-tu préciser de quelles collisions tu parles? Sur la vidéo, on voit que les perso ne se traversent pas.

Sinon, il peut y avoir plusieurs causes. Je peux donner deux idées comme ça, à toi de voir ce que tu as déjà vérifier.

Côté Debug : Avant d'être dans le Stay, il faut passer par le Enter et, si jamais on rentre dans le Stay on doit passer par le Exit. As-tu mis Des Debug dans les 3 pour voir? Avec un Time précis pour voir le delta en temps dans chaque.

Côté Objet : La "Collision Detection"sur "Discrète" est peut-être pas asses sensible?

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: C# Détection Collisions [RESOLU]

Message par Paullux » 04 Mai 2018 21:29

C'est moi qui avait fait une erreur, j'utilise un prefab que je fais apparaître dans la scène de réalité augmentée.

J'ai édité le prefab, dans une scène et j'ai compilé une autre scène qui était testé sur le téléphone.

comme il y a un prefab une partie des modifications étaient appliquées mais pas toutes, d'où l'erreur.

J'ai modifié les "build settings" en choisissant la bonne scène et tout est rentré dans l'ordre.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Répondre

Revenir vers « Scripting »