Collision pas au top

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Collision pas au top

Message par cortoh » 28 Oct 2015 20:50

Bonjour,
Je suis en train de réaliser un jeu qui fonctionne parfaitement mais il perdure un défaut plus ou moins gênant au niveau des collisions, en effet les collisions entres cubes s'effectues correctement mais ils se rentrent légèrement à l'intérieur entre eux.
J'ai codé pour le déplacement dans l'Update:

Code : Tout sélectionner

function Update () 
	{	
		if (action == true && face_Cube == 0) 
		{ 
			cont_Cube.transform.Translate(Vector3.left * speed * Time.deltaTime);	
		}
	}
Et pour l'arrêt:

Code : Tout sélectionner

function OnTriggerEnter (other : Collider) 
	{
		
		if (other.gameObject.tag == "Bloc_Mur")
		{
			srcAction_L.action = false;
			srcFace_L.face_Cube = 1;
		}

Pourquoi les cubes se rentrent un petit peu les uns dans les autres ?

Merci d'avance pour vos réponses.
Dernière édition par cortoh le 07 Sep 2017 21:14, édité 2 fois.

Ohms
Messages : 19
Inscription : 19 Oct 2015 17:11

Re: Collision pas au top

Message par Ohms » 28 Oct 2015 23:23

La méthode OnTriggerEnter est appellée dès lors qu'une collision a été détectée, et non avant qu'elle soit détectée.
Il est donc normal que tes objets se rentrent un peu dedans puisqu'au final si on reformule la phrase précédente : c'est le fait que tes objets se rentrent dedans qui va déclencher l'appel à la méthode OnTriggerEnter.

Ce que tu peux faire par exemple, c'est stocké à chaque frame la position de ton objet. Ensuite dans ton OnTriggerEnter (donc je rabache, mais dès lors que tes objets se rentrent dedans) ce que tu peux faire, c'est reforcer la position de ton objet, à la position préalablement stockée.

Ce n'est qu'une idée. Apres ca dépends du contexte de ce que tu veux faire (tu pourrais par exemple aussi faire des raycast pour trouver les coordonnées des murs, et donc placer ton objet pile poil contre le mur en y calculant le décalage en fonction)

cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Re: Collision pas au top

Message par cortoh » 29 Oct 2015 08:32

Merci pour ton aide je vais faire des essais.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Collision pas au top

Message par boubouk50 » 29 Oct 2015 10:15

Agrandit légèrement tes capsules de collisions?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Re: Collision pas au top

Message par cortoh » 19 Août 2017 09:38

Bonjour,

Après pas mal de temps d'absence j'ai repris Unity en main il y a peu et j'ai re-sortie mon projet sur lequel j'avais quelques difficultés comme
vous pouvez le lire sur ce post, problème qui est toujours présent et non réglé hélàs et comme mon niveau de compétence en code n'est pas terrible je rame pas mal, j'avais toutefois une idée mais je ne sais pas la coder hélas, je pensais faire avancer le cube d'une case à la fois, le cube ayant un scale de 1 je le ferais avancer d'une unité, une fois le déplacement fait il vérifie si la case suivant est vide ou pas si elle est vide il continue sa course automatiquement ou s'arrêt si c'est occupé par un autre objet, le cube aurait immenquablement une position excate et précise.
Je vous remercie d'avance pour toute l'aide que vous pourrez m'apporter.

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: Collision pas au top

Message par Greg » 20 Août 2017 10:07

Les deux solutions me semblent viables mais celle de boubouk me parait plus simple, efficace et propre... (passer les cubes collider des cubes à +=0.2)
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Re: Collision pas au top

Message par cortoh » 21 Août 2017 05:52

Bonjour Greg,
Désolé mais je n'ai pas saisi ce que tu as écrit entre parenthèse.

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: Collision pas au top

Message par Greg » 21 Août 2017 07:43

Image

:merci:
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

cortoh
Messages : 159
Inscription : 22 Nov 2014 23:05

Re: Collision pas au top

Message par cortoh » 21 Août 2017 18:14

Ok, j'ai saisi, je vais voir ce que ça donne, merci

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: Collision pas au top

Message par E3DStef » 01 Sep 2017 11:59

Tiens j'en profite pour poser une question complémentaire.

Gérer les collisions via trigger ou collider = Ok

Mais si je veux comptabiliser qu'UNE SEULE fois la dite collision ?

Car quelque que soit la méthode (trigger ou collider) j'ai toujours plusieurs "touch" à mon compteur. Il l'a touché OK mais je ne veux le comptabiliser que pour 1 et non x (3,5,7 dépends param comme vitesse et taille des GO)...

Une idée ?

Merci
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

Verrouillé

Revenir vers « (Js) Javascript »