void AddGesture() { m_currentGestureID++; m_allGestureIDs.Add(m_currentGestureID); m_airsigManager.SetMode(AirSigManager.Mode.AddPlayerGesture); m_airsigManager.SetTarget(new List <int> { m_currentGestureID }); }
// Use this for initialization void Start() { airsigManager = GameObject.Find("AirSigManager").GetComponent <AirSigManager> (); Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); // Configure AirSig by specifying target airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined); airsigManager.SetClassifier("AtDefThrow", ""); airsigManager.SetDeveloperDefinedTarget(new List <string> { "C", "AttackPunchSimple", "DefenseShieldCross" }); // Just in case the order here matters, list them in the order they were added to the pack on the AirSig website. developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch); airsigManager.onDeveloperDefinedMatch += developerDefined; checkDbExist(); // Set each controller as an AirSig gesture trigger, and which button activates the recording airsigManager.SetTriggerStartKeys( AirSigManager.Controller.RIGHT_HAND, SteamVR_Controller.ButtonMask.Trigger, AirSigManager.PressOrTouch.PRESS); airsigManager.SetTriggerStartKeys( AirSigManager.Controller.LEFT_HAND, SteamVR_Controller.ButtonMask.Trigger, // NOTE: Potential gesture bar fix by putting this line in with case 2 below vvvvvv AirSigManager.PressOrTouch.PRESS); // NOTE: May also break AirSig, who knows? if (SceneManager.GetActiveScene().name == "VRPUNScene") { UnlockNext(0); } }
void OnEnable() { if (!rightGrab) { rightGrab = GameObject.Find("Controller (right)").GetComponent <ViveController>(); } //if (!airsigManager) // { airsigManager = GameObject.Find("AirSigManager").GetComponent <AirSigManager>(); // } airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined); //airsigManager.SetDeveloperDefinedTarget(List<string> "Pickaxe"); airsigManager.SetClassifier( "Pickaxe", ""); airsigManager.SetTriggerStartKeys( AirSigManager.Controller.RIGHT_HAND, SteamVR_Controller.ButtonMask.Trigger, AirSigManager.PressOrTouch.PRESS); airsigManager.SetDeveloperDefinedTarget( new List <string> { "Pickaxe", "DOWN" } ); developerGesture = new AirSigManager.OnDeveloperDefinedMatch( HandleOnDeveloperDefinedMatch); airsigManager.onDeveloperDefinedMatch += developerGesture; }
void Awake() { // Get PAD Manager padManager = GetComponent <PADManager>(); // 1. Use SetMode to configure AirSig function airsigManager.SetMode( AirSigManager.Mode.DeveloperDefined); // 2. Set classifier and sub classifier airsigManager.SetClassifier( "Project_Gestures", ""); // 3. Use SetDeveloperDefinedTarget to configure // targets for identification function airsigManager.SetDeveloperDefinedTarget( new List <string> { "WAVE", "Thrust", "Shake", "Spooky" } ); // 4. Register callback for identification // result developerGesture = new AirSigManager.OnDeveloperDefinedMatch( HandleOnDeveloperDefinedMatch); airsigManager.onDeveloperDefinedMatch += developerGesture; }
// Use this for initialization void Awake() { Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); spellEngine = gameObject.GetComponent <SpellEngine>(); airsigManager = gameObject.GetComponent <AirSigManager>(); masterGameManager = GameObject.FindWithTag("GameController").GetComponent <MasterGameManager>(); // Update the display text //textMode.text = string.Format("Mode: {0}", AirSigManager.Mode.DeveloperDefined.ToString()); //textResult.text = defaultResultText = "Pressing trigger and write symbol in the air\nReleasing trigger when finish"; //textResult.alignment = TextAnchor.UpperCenter; //instruction.SetActive(false); //ToggleGestureImage("All"); // Configure AirSig by specifying target developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch); airsigManager.onDeveloperDefinedMatch += developerDefined; airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined); List <string> temp = new List <string>(); temp.Add("Dot"); temp.Add("Line"); temp.Add("Circle"); //temp.Add("Square"); temp.Add("Triangle"); airsigManager.SetDeveloperDefinedTarget(temp); airsigManager.SetClassifier("FinalGestureProfile", ""); //airsigManager.SetDeveloperDefinedTarget(spellEngine.getCompleteSpellPartsNameList()); //airsigManager.SetClassifier("GestureProfile1", ""); //airsigManager.SetClassifier("SpellCoresV1", ""); /*developerDefinedCore = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatchCore); * airsigManager.onDeveloperDefinedMatch += developerDefinedCore; * airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined); * airsigManager.SetDeveloperDefinedTarget(spellEngine.getCompleteSpellPartsNameList()); * airsigManager.SetClassifier("GestureProfile1", "");*/ //checkDbExist(); airsigManager.SetTriggerStartKeys( AirSigManager.Controller.RIGHT_HAND, SteamVR_Controller.ButtonMask.Trigger, AirSigManager.PressOrTouch.PRESS); airsigManager.SetTriggerStartKeys( AirSigManager.Controller.LEFT_HAND, SteamVR_Controller.ButtonMask.Touchpad, AirSigManager.PressOrTouch.PRESS); }
void Start() { airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined); trackedObj = GetComponent <SteamVR_TrackedObject>(); casting = false; // the user does not cast upon spawn }
void NextMode() { if (null != uiFeedback) { StopCoroutine(uiFeedback); } AirSigManager.Mode prevMode = availableMode[currentModeIndex]; // Cycle through available gesture mode currentModeIndex++; if (currentModeIndex >= availableMode.Length) { currentModeIndex = 0; } airsigManager.SetMode(availableMode [currentModeIndex]); // Before actually change mode, set collected gesture as custom gesture if previous mode is AddPlayerGesture if (AirSigManager.Mode.AddPlayerGesture == prevMode) { airsigManager.SetPlayerGesture(new List <int> { PLAYER_GESTURE_ONE, PLAYER_GESTURE_TWO }, true); } else if (AirSigManager.Mode.SmartTrainDeveloperDefined == prevMode) { StartCoroutine(airsigManager.UpdateDeveloperDefinedGestureStat(true)); } // Update the display text textMode.text = string.Format("Mode: {0}", availableMode [currentModeIndex].ToString()); textResult.text = defaultResultText = DEFAULT_INSTRUCTION_TEXT; textResult.alignment = TextAnchor.UpperCenter; instruction.SetActive(false); ToggleGestureImage(""); if (AirSigManager.Mode.DeveloperDefined == availableMode[currentModeIndex]) { airsigManager.SetDeveloperDefinedTarget(new List <string> { "HEART", "C", "DOWN" }); airsigManager.SetClassifier("SampleGestureProfile", ""); } else if (AirSigManager.Mode.TrainPlayerSignature == availableMode [currentModeIndex] || AirSigManager.Mode.IdentifyPlayerSignature == availableMode [currentModeIndex]) { // Set target index to a pre-defined gesture index. The same index must be used for both train and identify airsigManager.SetTarget(new List <int> { PLAYER_SIGNATURE_INDEX }); } else if (AirSigManager.Mode.SmartTrainDeveloperDefined == availableMode[currentModeIndex]) { textResult.text = defaultResultText = "Please write 'HEART' gesture 5 times\nPress trigger to start\nRelease trigger when finish"; smartTrainCount = 0; airsigManager.SetClassifier("SampleGestureProfile", ""); airsigManager.SetDeveloperDefinedTarget(new List <string> { "HEART" }); ResetSmartTrainDeveloperDefinedStep(); } else if (AirSigManager.Mode.SmartIdentifyDeveloperDefined == availableMode[currentModeIndex]) { textResult.text = defaultResultText = "Try write 'Heart', 'C' and 'Down' gesture"; airsigManager.SetClassifier("SampleGestureProfile", ""); airsigManager.SetDeveloperDefinedTarget(new List <string> { "HEART", "C", "DOWN" }); } else if (AirSigManager.Mode.AddPlayerGesture == availableMode [currentModeIndex]) { // Set target index to one of pre-define gesture index The same index must be used for both add and identify. // Notice that adding custom gesture only adds to the engine's cache and must call SetCustomGesture with index // in order to train this gesture before it can be used to identify. textResult.text = defaultResultText = "Think of a gesture\nWrite it 5 times~\n<color=#FF00FF>GESTURE #1</color>"; airsigManager.SetTarget(new List <int> { PLAYER_GESTURE_ONE }); ResetPlayerGestureStep(); } else if (AirSigManager.Mode.IdentifyPlayerGesture == availableMode[currentModeIndex]) { textResult.text = defaultResultText = "Write gestures you just trained\nin AddPlayerGesture"; airsigManager.SetTarget(new List <int> { PLAYER_GESTURE_ONE, PLAYER_GESTURE_TWO }); } else if (AirSigManager.Mode.None == availableMode[currentModeIndex]) { setModeNone(); } }