コード例 #1
0
        private void HandleHMDWearing()
        {
            EDeviceActivityLevel level = OpenVR.System.GetTrackedDeviceActivityLevel(0);

            switch (level)
            {
            case EDeviceActivityLevel.k_EDeviceActivityLevel_Unknown:
            case EDeviceActivityLevel.k_EDeviceActivityLevel_Idle:
            case EDeviceActivityLevel.k_EDeviceActivityLevel_Idle_Timeout:
            case EDeviceActivityLevel.k_EDeviceActivityLevel_Standby:

                if (!isWearingHeadset)
                {
                    break;
                }
                isWearingHeadset = false;
                onHeadsetStateChanged.Invoke(false);
                break;


            case EDeviceActivityLevel.k_EDeviceActivityLevel_UserInteraction:
                if (isWearingHeadset)
                {
                    break;
                }
                isWearingHeadset = true;
                onHeadsetStateChanged.Invoke(true);
                break;
            }
        }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        EDeviceActivityLevel currentActivityLevel = getHeadActivityLevel();

        //Debug.Log("cur actlev: " + currentActivityLevel);
        bool matchingActivityLevels = (oldActLevel == currentActivityLevel);

        if (!matchingActivityLevels && !didDeviceInactivityReset && currentActivityLevel == EDeviceActivityLevel.k_EDeviceActivityLevel_Standby)
        {
            reload();
            didDeviceInactivityReset = true;
            Debug.Log("actlev: " + currentActivityLevel);
            Debug.Log("INACTIVITY RESET");
        }
        else
        {
            didDeviceInactivityReset = false;
        }

        if (!matchingActivityLevels)
        {
            Debug.Log("(!matchingActivityLevels)s");
            oldActLevel = currentActivityLevel;
        }

        KeyCode keyCode = KeyCode.R;

        if (Input.GetKeyDown(keyCode))
        {
            reload();
        }
    }
コード例 #3
0
    EDeviceActivityLevel getHeadActivityLevel()
    {
        CVRSystem            cvrSystem = SteamVR.instance.hmd;
        EDeviceActivityLevel actlev    = cvrSystem.GetTrackedDeviceActivityLevel(OpenVR.k_unTrackedDeviceIndex_Hmd);

        return(actlev);
    }
コード例 #4
0
 // Use this for initialization
 void Start()
 {
     oldActLevel = getHeadActivityLevel();
     Debug.Log("oldActLevel: " + oldActLevel);
     curScene = SceneManager.GetActiveScene();
     fog      = GetComponent <fogAnimator>();
     //EDeviceActivityLevel d = EDeviceActivityLevel;
 }