Player et Rigidbody

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Player et Rigidbody

Message par Rhadamenthis » 01 Sep 2014 15:40

Bonjour à tous,

j'aimerais appliqué une force à mon joueur (le "First Person Controller") quand il touche un "bumper". Le problème est qu'il faut faudrait un rigidbody à mon player, de sorte que :

Code : Tout sélectionner

public class AjoutForce : MonoBehaviour {

	public int force;
	private Vector3 sensforce;

	// Use this for initialization
	void Start () {
		sensforce = new Vector3(20, 50, 0);
		force = 500 ;	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
	void OnTriggerEnter (Collider other)
	{
		if (other.gameObject.tag == "Player" )
		{
			other.rigidbody.AddForce(sensforce * force);
		}
	}
}

sauf que le "First Person Controller" n'a pas l'air très fan. Sans rien changer, le perso s'envole quand on test la scène. Qu'à cela ne tienne, j'inverse dans les propriétés physiques, la gravité. Apparemment, c'est bon...ah ben non, car des qu'il arrive sur le bumper, il n'est pas propulse mais teleporté, en hauteur reste en haut et même monte un petit peu a la fois...bref il ne retombe pas.
Une idée peut être ?
Merci d'avance.

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: Player et Rigidbody

Message par Pico57 » 01 Sep 2014 15:54

Le Character Controller est effectivement un peu particulier à manipuler. Et il me semble qu'il n'a pas besoin de rigidbody tout simplement et le character controller sert lui même de rigidbody en quelques sorte. Tu devrais essayer de supprimer le rigidbody et de travailler directement sur le character controller. Par contre je ne sais pas si c'est les même fonctions pour applique les forces, etc.. car je ne suis pas totalement familier avec cela, j'utilise juste le 1st person controller de base.

Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Re: Player et Rigidbody

Message par Rhadamenthis » 01 Sep 2014 18:10

J'ai bien regarde les différents composants (scripts) du First Person Controller et je ne vois pas quoi modifier, je débute en scripts...même si j'ai suivi le cours OpenClassrooms. Très complet à mon sens... si on ne parle pas des scripts...Bref, je galère pas mal...

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: Player et Rigidbody

Message par LudlowFx » 01 Sep 2014 20:27

Rhadamenthis a écrit :J'ai bien regarde les différents composants (scripts) du First Person Controller et je ne vois pas quoi modifier, je débute en scripts...même si j'ai suivi le cours OpenClassrooms. Très complet à mon sens... si on ne parle pas des scripts...Bref, je galère pas mal...
Alors comme le dit Pico57, il n'en a pas besoin donc il va falloir que tu choisisses entre utiliser un Rigidbody ou un CharacterController. Tout va dépendre de son utilisation. Chacun à son avantage sur l'autre, CharacterController est souvent plus tentant au début car ça mise en place prend deux secondes et ses options de bases sont attrayantes (stepOffset et compagnie).

Mais utiliser les deux sur le même GameObject ne te posera que des soucis et parfois vraiment étrange ! Je n'ai pas trop exploré le CC, car j'utilise en général le RB, mais tu peux lire ceci-ci : http://forum.unity3d.com/threads/add-fo ... ler.95927/
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Player et Rigidbody

Message par ZJP » 01 Sep 2014 21:18

Comme dit précédemment, le Character Controller n'est pas simple (ni souple) a exploiter. Le mieux est le nouveau FPS Controller inclus dans le...nouveau pack d'Unity. Il est conçu autour d'un "Capsule Collider". On y trouve une bonne gestion audio du "FootStep" et du "Camera Bobbing".

Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Re: Player et Rigidbody

Message par Rhadamenthis » 02 Sep 2014 10:39

Merci pour toutes vos réponses.
Je n'avais pas envisagé cela de la sorte... :?:
Cela dit, vos éléments de réponse me donnent des idées. Il est que le FPS controler est une "capsule améliorée" et, pourquoi pas la faire soi-même ?
J'ai trouvé en plus, sur le forum, un tuto pour paramétré les déplacements et tout et tout...
Je vais essayer et voir ce que ca peut donner. Je vous tiens au courant ;)

edit1 : j'ai donc créé ma capsule avec un rigidbody (c'est quand même le but ;) ), grâce au Input.GetAxis("Horizontal") et Input.GetAxis("Vertital"), il se déplace et j'ai coché les 3 freeze rotation pour qu'il ne pivote pas et reste droit. Sauf que, impossible de le faire sauter, j’appuie que la barre d'espace et rien ne se produit...les Input.GetAxis ne récupèrent que 2 axes sur 3...le problème ne serait pas de ce côté là ?

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: Player et Rigidbody

Message par LudlowFx » 02 Sep 2014 12:13

Rhadamenthis a écrit :Merci pour toutes vos réponses.
Je n'avais pas envisagé cela de la sorte... :?:
Cela dit, vos éléments de réponse me donnent des idées. Il est que le FPS controler est une "capsule améliorée" et, pourquoi pas la faire soi-même ?
J'ai trouvé en plus, sur le forum, un tuto pour paramétré les déplacements et tout et tout...
Je vais essayer et voir ce que ca peut donner. Je vous tiens au courant ;)

edit1 : j'ai donc créé ma capsule avec un rigidbody (c'est quand même le but ;) ), grâce au Input.GetAxis("Horizontal") et Input.GetAxis("Vertital"), il se déplace et j'ai coché les 3 freeze rotation pour qu'il ne pivote pas et reste droit. Sauf que, impossible de le faire sauter, j’appuie que la barre d'espace et rien ne se produit...les Input.GetAxis ne récupèrent que 2 axes sur 3...le problème ne serait pas de ce côté là ?
Je n'ai pas Unity sous les yeux mais l'input de Jump n'est pas un Axis mais un type Button.

Pourquoi freeze la rotation Y ? Juste X/Z suffit pour éviter les problèmes.
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Répondre

Revenir vers « Scripting »