[RESOLU][DB-AL] Changer l'adhérence des pneus

Pour les scripts écrits en C#
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
Dpg
Messages : 13
Inscription : 17 Fév 2017 12:07

[RESOLU][DB-AL] Changer l'adhérence des pneus

Message par Dpg » 17 Fév 2017 12:50

Bonjour, je souhaite changer l'adhérence des pneus sur ma voiture par rapport au sol.

Par exemple le bitume/gravier/sable/herbe Etc.. aura un impacte sur l'adhérence du pneus.

Mon problème est de récupérer le "tag" du sol en question. J'utilise des "WheelCollider" pour avancer/tourner le véhicule.

J'ai testé plein de manière différentes pour récupérer les "tag", pour un "Player" j'ai pas de problème, mais dans un véhicules....

Je n'arrive pas à utiliser le "GetGroundHit" pour modifier le "WheelFrictionCurve".

Bref c'est surtout que je ne trouve pas de tutoriel approprié à mon problème.

Il y à surement d'autre solutions pour récupérer un "Tag" dans un véhicule mais je n'en connais pas d'autre.

Avez vous des astuces ou des liens à me proposer ?
Dernière édition par Dpg le 24 Fév 2017 15:39, édité 1 fois.

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

Re: [DB-AL] Changer l'adhérence des pneus

Message par boubouk50 » 17 Fév 2017 13:00

Tu pourrais le récupérer à l'aide d'un RayCast depuis ta roue vers le sol. Comme n'importe quel test de collision.
"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

Avatar de l’utilisateur
Pitou
Messages : 95
Inscription : 28 Juil 2015 20:08
Contact :

Re: [DB-AL] Changer l'adhérence des pneus

Message par Pitou » 18 Fév 2017 12:40

Salut,

La réponse de boubouk est bien, mais elle peut laisser penser qu'il faut tirer un autre raycast et ça n'est pas la peine.

Le WheelCollider tire déjà un raycast pour se placer par rapport au sol. Il suffit de le récupérer avec GetGroundHit(). Tu étais sur la bonne voie.
Cette fonction te renvoie un "WheelHit" avec lequel tu peux accéder au collider que la roue touche : WheelHit.collider.
Bingo, ce collider possède l'élément "tag" !

Pour tester, en C# :

Code : Tout sélectionner

private WheelCollider wheel;
	
void Start() {
	wheel = GetComponent<WheelCollider>();
}

void FixedUpdate() {
	WheelHit hit;
	
	if(wheel.GetGroundHit(hit)) {
		Debug.Log(hit.collider.tag);
	}
}
En fonction du tag, tu pourras jouer avec les paramètres de ta roue.
Bonne chance !
On dit LE WiFi ! Y'en a marre !

Dpg
Messages : 13
Inscription : 17 Fév 2017 12:07

Re: [DB-AL] Changer l'adhérence des pneus

Message par Dpg » 18 Fév 2017 21:23

oui je voulais récupérer le ray déjà existant.

Enfaite mes test était pas loin de la solution mais c'était juste mal écrit. merci pour la réponse.

La je galère à faire tourner un sprite UI a partir d'un scipt de la voiture.. je m'amuse tellement que je vais finir par demander conseil :-D

Merci pour vos réponses.

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

Re: [DB-AL] Changer l'adhérence des pneus

Message par boubouk50 » 20 Fév 2017 10:24

Si le problème est résolu, merci d'éditer le titre du premier post en ajoutant [RESOLU] au début de celui-ci.
"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

Dpg
Messages : 13
Inscription : 17 Fév 2017 12:07

Re: [DB-AL] Changer l'adhérence des pneus

Message par Dpg » 21 Fév 2017 17:17

oui pas de problème je mettrai [résolu] quand j'aurai fini un autre script.

Actuellement je n'ai pas encore testé la fonction des pneus.

Je vous tiendrai au courant.

Dpg
Messages : 13
Inscription : 17 Fév 2017 12:07

Re: [DB-AL] Changer l'adhérence des pneus

Message par Dpg » 24 Fév 2017 07:27

Bonjour,

donc la méthode fonction bien, mais attention il manqué "out" avant le (hit).

Vue que le GetGroundHit ne renvois que vrai ou faux, il sera simple je pense de changer les valeurs de friction des roues.
Merci pour vos aides.

Je réecris le script.

Code : Tout sélectionner

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

public class WheelFriction : MonoBehaviour {

	private WheelCollider wheel;

	void Start()
	{
		wheel = GetComponent<WheelCollider> ();
	}

	void FixedUpdate(){
		WheelHit hit;

		if (wheel.GetGroundHit(out hit)) {
			Debug.Log (hit.collider.tag);
		}
	}



}

Répondre

Revenir vers « (C#) CSharp »