Mon rigidboby n'arrête pas de bugger

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
BasisEssence779
Messages : 25
Inscription : 26 Jan 2020 12:03
Localisation : Territoire de Belfort (90)

Mon rigidboby n'arrête pas de bugger

Message par BasisEssence779 » 31 Jan 2020 09:21

Bonjour, j'ai un gros problème. J'ai créé un joueur composé (tête, corp, yeux, nez, caméra...) mais la rigidboby ne marche mas correctement. Quand je commence le jeu, le personnage se tortille dans tout les sens comme une balle rebonndissante et quand je freeze toutes les rotation, Le personnage se met à monter dans les air sans s'arrêter. Merci d'avance !
Bonjour, je suis un débutant et je me suis inscrit au forum car j'ai souvent besoin d'aide. Je créé des jeu de plateformes sur unity.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5229
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: Mon rigidboby n'arrête pas de bugger

Message par boubouk50 » 31 Jan 2020 09:37

Encore une fois, fais un effort sur les informations. Le rigidbody fonctionne bien, tu en fais donc une mauvaise utilisation. Sans nous expliquer ce que tu as fait, ce que tu as mis en place, comment tu l'as fait, on ne peut pas te répondre correctement. C'est trop vague, on est à la limite du "ça marche pas".
"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

BasisEssence779
Messages : 25
Inscription : 26 Jan 2020 12:03
Localisation : Territoire de Belfort (90)

Re: Mon rigidboby n'arrête pas de bugger

Message par BasisEssence779 » 31 Jan 2020 09:44

J'ai utiliser deux codes avec mon rigidboby. Un qui permet de déplacer le personnage...

Code : Tout sélectionner

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

public class PlayerMovements : MonoBehaviour
{
    // Public variables
    public float Speed;
    // Private variables
    private float X;
    private float Z;
    private Transform PlayerBody;
    private Vector3 Movements;

    // Start is called before the first frame update
    void Start()
    {
        PlayerBody = this.transform;
    }

    // Update is called once per frame
    void Update()
    {
        X = Input.GetAxis("Horizontal");
        Z = Input.GetAxis("Vertical");
        Movements = new Vector3(X, 0, Z);

        if(X != 0.0f || Z != 0.0f)
        {
            PlayerBody.Translate(Movements * Speed * Time.deltaTime);
        }
    }
}
...et un autre qui permet de faire tourner le personnage.

Code : Tout sélectionner

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

public class MouseLook : MonoBehaviour
{
    // Public variables
    public float MouseSensivity;
    public bool RotateX;
    public bool RotateY;
    // Private variables
    private Transform PlayerBody;
    private float MouseX;
    private float MouseY;

    // Start is called before the first frame update
    void Start()
    {
        PlayerBody = this.transform;
    }

    // Update is called once per frame
    void Update()
    {
        if(RotateX == true)
        {
            MouseX = Input.GetAxis("Mouse X") * Time.deltaTime;
            PlayerBody.Rotate(Vector3.up * MouseSensivity * MouseX);
        }

        if(RotateY == true)
        {
            MouseY = Input.GetAxis("Mouse Y") * Time.deltaTime;
            PlayerBody.Rotate(Vector3.left * MouseSensivity * MouseY);
        }

        // transform.eulerAngles = new Vector3(Mathf.Clamp(transform.eulerAngles.x, -90f, 90f), transform.eulerAngles.y, transform.eulerAngles.z);
    }
}
Bonjour, je suis un débutant et je me suis inscrit au forum car j'ai souvent besoin d'aide. Je créé des jeu de plateformes sur unity.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7647
Inscription : 30 Juil 2011 13:57

Re: Mon rigidboby n'arrête pas de bugger

Message par Max » 31 Jan 2020 14:52

Bonjour,

Première chose, tu pars sur un "Controller" basé sur un RigidBody, donc ton code devrais être basé la dessus.
Là tu ne travailles que sur le Transform, ce qui n'est pas vraiment la bonne approche dans ce cas.
En suite dans ta partie MouseLook tu codes une rotation sur deux axes. Normalement ton Player ne devrait pouvoir tourner que sur l'axe des Y.

Tu devrais regarder du coté des StandardAssets où il y un exemple de RigidBodyFPSController, et t'en inspirer, cela te fournirait de bonnes pistes à suivre.
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

Répondre

Revenir vers « (C#) CSharp »