Ejemplo n.º 1
0
    // 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);
        }
    }
Ejemplo n.º 2
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);
    }
Ejemplo n.º 5
0
    private void OnEnable()
    {
        controllerManager = rightHandControl.GetComponent <ControllerManager>();

        developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch);
        airsigManager.onDeveloperDefinedMatch += developerDefined;
        airsigManager.SetDeveloperDefinedTarget(new List <string> {
            "BOTRN", "DOWN"
        });
        airsigManager.SetClassifier("FrostGestureProfile", "");

        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.RIGHT_HAND,
            SteamVR_Controller.ButtonMask.Trigger,
            AirSigManager.PressOrTouch.PRESS);

        trackedObj = GetComponent <SteamVR_TrackedObject>();
    }
Ejemplo n.º 6
0
    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();
        }
    }