impossible de freezer positions ET rotations d'un rigidbody

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
Avatar de l’utilisateur
Kaloverian
Messages : 336
Inscription : 10 Août 2016 03:03

impossible de freezer positions ET rotations d'un rigidbody

Message par Kaloverian » 01 Jan 2022 21:11

bonjour,

J'ai découvert ce léger problème:

Avec ce script,je rajouter un Rigidbody à un objet dont les positions sont freezées:

Code : Tout sélectionner

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

public class add_rigidbody : MonoBehaviour
{
    public GameObject obj;

    Rigidbody rigid;
    

    // Start is called before the first frame update
    void Start()
    {
        rigid = obj.AddComponent<Rigidbody>();
        
       rigid.constraints = RigidbodyConstraints.FreezePosition;
        
    rigid.useGravity=false;

       
    }

   
}

Avec ce script,je rajouter un Rigidbody à un objet dont les rotations sont freezées:

Code : Tout sélectionner

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

public class add_rigidbody : MonoBehaviour
{
    public GameObject obj;

    Rigidbody rigid;
   

    // Start is called before the first frame update
    void Start()
    {
       rigid = obj.AddComponent<Rigidbody>();
      
      rigid.constraints = RigidbodyConstraints.FreezeRotation;
    
      rigid.useGravity=false;

       
    }

   
}

Par contre,ce script ne permet d'ajouter un Rigibody dont positions et rottations sont freezées:

Code : Tout sélectionner

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

public class add_rigidbody : MonoBehaviour
{
    public GameObject obj;

    Rigidbody rigid;
   

    // Start is called before the first frame update
    void Start()
    {
        rigid = obj.AddComponent<Rigidbody>();
      
        rigid.constraints = RigidbodyConstraints.FreezePosition;
        rigid.constraints = RigidbodyConstraints.FreezeRotation;
    
        rigid.useGravity=false;

       
   }

   
}

Pourquoi?

Que faut-il corriger pour ajouter à un objet un Rigidbody dont les positions ET rotations sont freezées?


merci de votre aide

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

Re: impossible de freezer positions ET rotations d'un rigidbody

Message par Max » 02 Jan 2022 11:56

Bonjour,
Kaloverian a écrit :
01 Jan 2022 21:11
Que faut-il corriger pour ajouter à un objet un Rigidbody dont les positions ET rotations sont freezées?
Il s'agit de flags, donc soumis à opétration logique.
Si tu souhaites avoir la totalité, il faut donc écrire:

Code : Tout sélectionner

rb.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePosition;
Encore une fois, consultez la documentation, elle a son intérêt.
Et tu aurais vu que tu peux dans ton cas simplement écrire:

Code : Tout sélectionner

rb.constraints = RigidbodyConstraints.FreezeAll;
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

Répondre

Revenir vers « (C#) CSharp »