From 829bacdba80a72f75a529aeee78f862eb548eb63 Mon Sep 17 00:00:00 2001 From: Emiliana <38952746+emilianavt@users.noreply.github.com> Date: Mon, 29 Jun 2020 20:02:55 +0200 Subject: [PATCH] Added an option to disable hotkeys in `OpenSeeVRMDriver` --- Examples/OpenSeeVRMDriver.cs | 48 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/Examples/OpenSeeVRMDriver.cs b/Examples/OpenSeeVRMDriver.cs index 9259778..bd7c5b3 100644 --- a/Examples/OpenSeeVRMDriver.cs +++ b/Examples/OpenSeeVRMDriver.cs @@ -69,6 +69,8 @@ public class OpenSeeVRMDriver : MonoBehaviour { public Vector2 gazeCenter = Vector2.zero; [Tooltip("This component lets you customize the automatic eye blinking.")] public OpenSeeEyeBlink eyeBlinker = new OpenSeeEyeBlink(); + [Tooltip("When enabled, expressions will respond to global hotkeys.")] + public bool hotkeys = true; [Tooltip("This component lets configure your VRM expressions.")] public OpenSeeVRMExpression[] expressions = new OpenSeeVRMExpression[]{ new OpenSeeVRMExpression("neutral", BlendShapePreset.Neutral, 1f, 1f, 1f, true, true, 0x70, true, true, false, true, 50f, 120f), @@ -687,32 +689,34 @@ public class OpenSeeVRMDriver : MonoBehaviour { return; } - bool shiftKey = (GetAsyncKeyState(0x10) & 0x8000U) != 0; - bool ctrlKey = (GetAsyncKeyState(0x11) & 0x8000U) != 0; - bool altKey = (GetAsyncKeyState(0x12) & 0x8000U) != 0; - bool trigger = false; if (overridden) currentExpression = toggledExpression; - foreach (var expression in expressionMap.Values) { - if (expression.hotkey >= 0 && expression.hotkey < 256 && (GetAsyncKeyState(expression.hotkey) & 0x8000) != 0 && shiftKey == expression.shiftKey && ctrlKey == expression.ctrlKey && altKey == expression.altKey) { - if (!continuedPress.Contains(expression) && overridden && toggledExpression == expression) { - overridden = false; - toggledExpression = null; - if (currentExpression == expression) - currentExpression = null; - continuedPress.Add(expression); - } - if (!continuedPress.Contains(expression)) { - if (expression.toggle) { - overridden = true; - toggledExpression = expression; + bool trigger = false; + if (hotkeys) { + bool shiftKey = (GetAsyncKeyState(0x10) & 0x8000U) != 0; + bool ctrlKey = (GetAsyncKeyState(0x11) & 0x8000U) != 0; + bool altKey = (GetAsyncKeyState(0x12) & 0x8000U) != 0; + foreach (var expression in expressionMap.Values) { + if (expression.hotkey >= 0 && expression.hotkey < 256 && (GetAsyncKeyState(expression.hotkey) & 0x8000) != 0 && shiftKey == expression.shiftKey && ctrlKey == expression.ctrlKey && altKey == expression.altKey) { + if (!continuedPress.Contains(expression) && overridden && toggledExpression == expression) { + overridden = false; + toggledExpression = null; + if (currentExpression == expression) + currentExpression = null; continuedPress.Add(expression); - } else - trigger = true; - currentExpression = expression; + } + if (!continuedPress.Contains(expression)) { + if (expression.toggle) { + overridden = true; + toggledExpression = expression; + continuedPress.Add(expression); + } else + trigger = true; + currentExpression = expression; + } + } else { + continuedPress.Remove(expression); } - } else { - continuedPress.Remove(expression); } }