OVRInput.Update() et OVRInput.FixedUpdate() une fois par image au début de toutes les méthodes Update et FixedUpdate. Par exemple :public class XRInputManager : MonoBehaviour {
void Update() {
OVRInput.Update();
// Handle input logic here
}
void FixedUpdate() {
OVRInput.FixedUpdate();
// Handle physics-based input here
}
}
InputManager.asset de votre projet.Get() : renvoie l’état actuel d’un bouton, d’un axe ou d’un capteur de toucherGetDown() : indique si le bouton a été enfoncé dans cette imageGetUp() : renvoie 1 si un bouton a été relâché dans cette image, 0 dans le cas contraireif (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, OVRInput.Controller.RTouch)) {
// Trigger pressed on right controller
}
OVRManager.display.RecenterPose() pour réinitialiser les positions de la manette et du casque par rapport à la position actuelle.GetLocalControllerPosition() : renvoie la position dans un Vector3GetLocalControllerRotation() : renvoie l’orientation dans un QuaternionPrimary : manette gaucheSecondary : manette droiteGet() qui permettent d’accéder à différents ensembles de commandes, notamment les suivantes :| Commande | Énumère |
|---|---|
OVRInput.Button | Les boutons classiques présents sur les manettes de jeu, les manettes et le bouton Retour. |
OVRInput.Touch | Surfaces de contrôle sensibles à la capacité de la manette. |
OVRInput.NearTouch | Surfaces de contrôle sensibles à la proximité situées sur la manette. |
OVRInput.Axis1D | Commandes unidimensionnelles comme les gâchettes qui rapportent un état en virgule flottante. |
OVRInput.Axis2D | Commandes à deux dimensions, y compris les sticks analogiques. Établit un rapport sur l’état d’un Vector2. |
| Commande |
|---|
OVRInput.RawButton |
OVRInput.RawTouch |
OVRInput.RawNearTouch |
OVRInput.RawAxis1D |
OVRInput.RawAxis2D |
Touch), ainsi que leur proximité (NearTouch). Cela permet de détecter plusieurs états distincts d’interaction de l’utilisateur·ice avec une surface de contrôle spécifique. Par exemple, si l’index d’un utilisateur ou d’une utilisatrice est complètement retiré d’une surface de contrôle, la valeur NearTouch associée à cette commande sera false (faux). Lorsque le doigt de l’utilisateur·ice s’approche de la commande et entre à proximité immédiate de celui-ci, le NearTouch rapporte la valeur true avant que l’utilisateur·ice n’ait contact avec la commande. Lorsque l’utilisateur·ice établit un contact physique, la valeur Touch de cette commande sera définie sur true (vrai). Lorsque l’utilisateur·ice pousse la gâchette d’index vers le bas, la valeur Button de cette commande sera définie sur true (vrai). Ces états distincts permettent de détecter précisément les interactions de l’utilisateur ou l’utilisatrice avec la manette et d’activer différents schémas de contrôle.// returns true if the primary button (typically “A”) is currently pressed. OVRInput.Get(OVRInput.Button.One); // returns true if the primary button (typically “A”) was pressed this frame. OVRInput.GetDown(OVRInput.Button.One); // returns true if the “X” button was released this frame. OVRInput.GetUp(OVRInput.RawButton.X); // returns a Vector2 of the primary (typically the Left) thumbstick’s current state. // (X/Y range of -1.0f to 1.0f) OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick); // returns true if the primary thumbstick is currently pressed (clicked as a button) OVRInput.Get(OVRInput.Button.PrimaryThumbstick); // returns true if the primary thumbstick has been moved upwards more than halfway. // (Up/Down/Left/Right - Interpret the thumbstick as a D-pad). OVRInput.Get(OVRInput.Button.PrimaryThumbstickUp); // returns a float of the secondary (typically the Right) index finger trigger’s current state. // (range of 0.0f to 1.0f) OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger); // returns a float of the left index finger trigger’s current state. // (range of 0.0f to 1.0f) OVRInput.Get(OVRInput.RawAxis1D.LIndexTrigger); // returns true if the left index finger trigger has been pressed more than halfway. // (Interpret the trigger as a button). OVRInput.Get(OVRInput.RawButton.LIndexTrigger); // returns true if the secondary gamepad button, typically “B”, is currently touched by the user. OVRInput.Get(OVRInput.Touch.Two);
Get() peut inclure un paramètre de commande facultatif. La liste des commandes prises en charge est définie dans la section "Enumeration Controller" de OVRInput.Get(), la valeur par défaut est d’utiliser la commande Active, qui correspond à la manette qui a le plus récemment signalé l’entrée de l’utilisateur·ice. Par exemple, l’utilisateur·ice peut utiliser une paire de manettes, les poser et prendre une manette Xbox. Dans ce cas, la manette active sera définie sur la manette Xbox dès que l’utilisateur·ice l’utilisera. La manette Active actuelle peut être interrogée avec OVRInput.GetActiveController() et un masque de bits de toutes les manettes connectées peut être interrogé avec OVRInput.GetConnectedControllers().// returns a float of the hand trigger's current state on the left controller. OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, OVRInput.Controller.Touch); // returns a float of the hand trigger's current state on the right controller. OVRInput.Get(OVRInput.Axis1D.SecondaryHandTrigger, OVRInput.Controller.Touch);
OVRInput.Controller.Touch), soit individuellement (avec OVRInput.Controller.LTouch et RTouch). Il s’agit d’un élément important car la spécification LTouch ou RTouch utilise un ensemble différent de mappages d’entrée virtuelle qui permettent un développement plus pratique du code d’entrée indépendant de la main.PrimaryHandTrigger avec des manettes individuelles, où Primary correspond toujours à la main spécifiée :// returns a float of the hand trigger's current state on the left controller. OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, OVRInput.Controller.LTouch); // returns a float of the hand trigger's current state on the right controller. OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, OVRInput.Controller.RTouch);
// public variable that can be set to LTouch or RTouch in the Unity Inspector public OVRInput.Controller controller; // returns a float of the hand trigger’s current state on the controller // specified by the controller variable. OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, controller); // returns true if the primary button (“A” or “X”) is pressed on the controller // specified by the controller variable. OVRInput.Get(OVRInput.Button.One, controller);
OVRInput.Controller.Touch, le mappage virtuel correspond étroitement à la disposition d’une manette de jeu typique répartie entre les mains gauche et droite.
OVRInput.Controller.LTouch ou OVRInput.Controller.RTouch, le mappage virtuel change pour permettre des liaisons d’entrée indépendantes des mains. Par exemple, le même script peut demander dynamiquement à la manette gauche ou droite laquelle il est attaché et Button.One est associé en conséquence au bouton A ou X.
