Comment détecter que l'utilisateur a appuyé sur la gâchette ?

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous !

D’après la documentation de Unity, je devrais utiliser Axis1D.SecondaryIndexTrigger pour pouvoir détecter si l’utilisateur appuie sur le déclencheur du joystick identifié par le chiffre 7 (sur l’image du HTC Vive et dans le tableau décrivant les entrées, les deux sont affichés dans le lien ci-dessus).

Cependant, quand je tape if(Input.GetAxis(Axis1D.SecondaryIndexTrigger)), le compilateur dit:

error CS0103: The name `Axis1D’ does not exist in the current context

Axis1D semble être nécessairement importé ou autre pour être utilisable. Comment pourrais-je faire ça s’il vous plaît ?

Merci d’avance !

+0 -0

Ça fait un moment que j’ai plus touché à Unity et j’ai pas trop le temps de regarder la doc sur mon téléphone, mais normalement tu dois avoir le plugin SteamVR et avant toute chose, il faut voir s’il détecte déjà les joysticks (tu as normalement une fonction du genre GetJoystick qqch).

Ensuite, peux-tu fournir le bout de code qui va avec ? Parce qu’on peut pas deviner s’il y a une erreur dans ton code. :P

+0 -0

Yo Arius !

En fait je suis censé pouvoir me passer de l’asset SteamVR et même celui de l’Oculus (ou autre), car d’après la doc Unity fournit une interface entre le dev et le matos permettant de faire abstraction du matos.

Et l’une des fonctionnalités serait justement la propriété Axis1D.Secondary[…] tout comme le Input.Get[…].

Non, non. Tu as normalement besoin de SteamVR (et du plugin, accessoirement mais faut le prendre) pour utiliser OpenVR puisque c’est lui l’interface qui permet de détecter et utiliser les différents contrôleurs (Vive, etc.).

VROverview + OpenVR

+0 -0

Bonjour !

Désolé du retard (partiels et projet à finir !).

Effectivement, j’ai dû passer par SteamVR et ainsi utiliser la méthode GetHairTrigger() de la classe Device (paquetage SteamVR_Controller) pour savoir si oui ou non l’appui de la gâchette vient d’avoir lieu (cette fc° retourne un booléen).

Pour savoir si l’utilisateur a appuyé à gauche ou à droite du touchpad (non-demandé dans mon OP) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Avec `device` l'instance de la classe `Device` 
if (device.GetPress(SteamVR_Controller.ButtonMask.Touchpad))...
...
Vector2 touchpad = (device.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0));
        print("Pressing Touchpad");

        if (touchpad.y > 0.7f)
        {
            print("Moving Up");
        }

        else if (touchpad.y < -0.7f)
        {
            print("Moving Down");
        }

        if (touchpad.x > 0.7f)
        {
            print("Moving Right");

        }

        else if (touchpad.x < -0.7f)
        {
            print("Moving left");
        }
...
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte