Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unity - Enum

Sujet résolu
    14 décembre 2017 à 17:59:11

    Bonjour, 

    Je dois faire different mode, pour ca j'ai utilsé les enum, 

    lorsque j'appuie sur le grip, le mode doit changer pour cela j'ai fais une fonction : 

        public enum Skills
        {
            NAVIGATION,
            FOUILLE
        }
       Skills skill; 
    void start()
    {
      skill = Skills.NAVIGATION;
    }
    //changement de mode 
    Skills  ReverseSkill( Skills skill)
        {
            if(skill == Skills.FOUILLE)
            {
                skill = Skills.NAVIGATION;
                Debug.Log(skill);
            }
            else if ( skill == Skills.NAVIGATION)
             {
                skill = Skills.FOUILLE;
                Debug.Log(skill);
            }
    
            return skill; 
        }
    void Update()
    {
    if (Controller.GetPressUp(SteamVR_Controller.ButtonMask.Grip))
            {
                ReverseSkill(skill); 
            }
    }

    mais il me change une fois de mode, lorsque je reclick sur le grip, il reste dans le meme mode et je ne comprends pas pourquoi 

    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2017 à 19:58:25

      Bonjour.

      Je déplace ce topic dans la section Mapping & Modding qui est plus appropriée aux sujets sur les moteurs de jeu.

      • Partager sur Facebook
      • Partager sur Twitter

      Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script

        9 février 2018 à 14:41:57

        Salut!

        Plusieurs explications en fonction de ce que tu veux faire:

        C'est normal, enfaite le nom de ton paramètre correspond au nom de ta propriété (skill), donc par défaut c'est le paramètre qui est modifié.

        Il faut donc faire:

        Skills  ReverseSkill( Skills skill)
            {
                if(this.skill == Skills.FOUILLE)
                {
                    this.skill = Skills.NAVIGATION;
                    Debug.Log(this.skill);
                }
                else if ( this.skill == Skills.NAVIGATION)
                 {
                    this.skill = Skills.FOUILLE;
                    Debug.Log(this.skill);
                }
         
                return this.skill;
            }

        Sinon:

        void Update()
        {
        if (Controller.GetPressUp(SteamVR_Controller.ButtonMask.Grip))
                {
                    this.skill = ReverseSkill(skill);
                }
        }

        A+!

        • Partager sur Facebook
        • Partager sur Twitter

        Unity - Enum

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown