Inheritance: BaseInputModule
Esempio n. 1
0
    protected override void Start()
    {
        base.Start();

        if (Initialized == false)
        {
            Instance = this;

            ControllerCamera               = new GameObject("Controller UI Camera").AddComponent <Camera>();
            ControllerCamera.clearFlags    = CameraClearFlags.Nothing; //CameraClearFlags.Depth;
            ControllerCamera.cullingMask   = 0;                        // 1 << LayerMask.NameToLayer("UI");
            ControllerCamera.nearClipPlane = 0.01f;                    // Set near clipping plane
            ControllerCamera.fieldOfView   = 1;                        //Set Field of View
            ControllerManager              = GameObject.FindObjectOfType <SteamVR_ControllerManager>();
            Controllers       = new SteamVR_TrackedObject[] { ControllerManager.left.GetComponent <SteamVR_TrackedObject>(), ControllerManager.right.GetComponent <SteamVR_TrackedObject>() };
            ControllerDevices = new SteamVR_Controller.Device[Controllers.Length];
            Cursors           = new RectTransform[Controllers.Length];

            for (int index = 0; index < Cursors.Length; index++)
            {
                GameObject cursor = new GameObject("Cursor " + index);
                Canvas     canvas = cursor.AddComponent <Canvas>();
                cursor.AddComponent <CanvasRenderer>();
                cursor.AddComponent <CanvasScaler>();
                cursor.AddComponent <UIIgnoreRaycast>();
                cursor.AddComponent <GraphicRaycaster>();

                canvas.renderMode   = RenderMode.WorldSpace;
                canvas.sortingOrder = 1000; //set to be on top of everything

                Image image = cursor.AddComponent <Image>();
                image.sprite   = CursorSprite;
                image.material = CursorMaterial;


                if (CursorSprite == null)
                {
                    Debug.LogError("Set CursorSprite on " + this.gameObject.name + " to the sprite you want to use as your cursor.", this.gameObject);
                }

                Cursors[index] = cursor.GetComponent <RectTransform>();
            }

            CurrentPoint    = new GameObject[Cursors.Length];
            CurrentPressed  = new GameObject[Cursors.Length];
            CurrentDragging = new GameObject[Cursors.Length];
            PointEvents     = new PointerEventData[Cursors.Length];

            Canvas[] canvases = GameObject.FindObjectsOfType <Canvas>();
            foreach (Canvas canvas in canvases)
            {
                canvas.worldCamera = ControllerCamera;
            }

            Initialized = true;
        }
    }
Esempio n. 2
0
    static public bool GetInput(VirtualViveController _virtualCtrl, ViveControllerInput _input)
    {
        switch (_input)
        {
        case VirtualViveController.ViveControllerInput.TouchPadKeyDown:
            return(_virtualCtrl.GetTouchPadDown());

        case VirtualViveController.ViveControllerInput.TouchPadKey:
            return(_virtualCtrl.GetTouchPad());

        case VirtualViveController.ViveControllerInput.TouchPadKeyUp:
            return(_virtualCtrl.GetTouchPadUp());

        case VirtualViveController.ViveControllerInput.HairTriggerKeyDown:
            return(_virtualCtrl.GetHairTriggerDown());

        case VirtualViveController.ViveControllerInput.HairTriggerKey:
            return(_virtualCtrl.GetHairTrigger());

        case VirtualViveController.ViveControllerInput.HairTriggerKeyUp:
            return(_virtualCtrl.GetHairTriggerUp());

        case VirtualViveController.ViveControllerInput.GripKeyKeyDown:
            return(_virtualCtrl.GetGripDown());

        case VirtualViveController.ViveControllerInput.GripKeyKey:
            return(_virtualCtrl.GetGrip());

        case VirtualViveController.ViveControllerInput.GripKeyKeyUp:
            return(_virtualCtrl.GetGripUp());

        case VirtualViveController.ViveControllerInput.SystemKeyKeyDown:
            return(_virtualCtrl.GetSystemDown());

        case VirtualViveController.ViveControllerInput.SystemKeyKey:
            return(_virtualCtrl.GetSystem());

        case VirtualViveController.ViveControllerInput.SystemKeyKeyUp:
            return(_virtualCtrl.GetSystemUp());
        }
        return(false);
    }
    protected override void Start()
    {
        base.Start();

        if (Initialized == false)
        {
            Instance = this;

            ControllerCamera = new GameObject("Controller UI Camera").AddComponent<Camera>();
            ControllerCamera.clearFlags = CameraClearFlags.Nothing; //CameraClearFlags.Depth;
            ControllerCamera.cullingMask = 0; // 1 << LayerMask.NameToLayer("UI");

            Cursors = new RectTransform[VRPlayer.instance.hands.Length];

            for (int index = 0; index < Cursors.Length; index++)
            {
                GameObject cursor = new GameObject("Cursor " + index);
                Canvas canvas = cursor.AddComponent<Canvas>();
                cursor.AddComponent<CanvasRenderer>();
                cursor.AddComponent<CanvasScaler>();
                cursor.AddComponent<UIIgnoreRaycast>();
                cursor.AddComponent<GraphicRaycaster>();

                canvas.renderMode = RenderMode.WorldSpace;
                canvas.sortingOrder = 1000; //set to be on top of everything

                Image image = cursor.AddComponent<Image>();
                image.sprite = CursorSprite;
                image.material = CursorMaterial;

                if (CursorSprite == null)
                    Debug.LogError("Set CursorSprite on " + this.gameObject.name + " to the sprite you want to use as your cursor.", this.gameObject);

                Cursors[index] = cursor.GetComponent<RectTransform>();
            }

            CurrentPoint = new GameObject[Cursors.Length];
            CurrentPressed = new GameObject[Cursors.Length];
            CurrentDragging = new GameObject[Cursors.Length];
            PointEvents = new PointerEventData[Cursors.Length];

            Canvas[] canvases = GameObject.FindObjectsOfType<Canvas>();
            foreach (Canvas canvas in canvases)
            {
                canvas.worldCamera = ControllerCamera;
            }

            Initialized = true;
        }
    }
Esempio n. 4
0
    public void MenuToggle()
    {
        state = !state;

        quit.SetActive(true);
        reallyQuit.SetActive(false);

        lobby.SetActive(true);
        reallyLobby.SetActive(false);

        menu.SetActive(state);
        Cursor.visible   = state;
        Cursor.lockState = CursorLockMode.None;

        if (anaglyphMenu.gameObject.activeSelf && !state)
        {
            anaglyphMenu.SaveSettings();
            anaglyphMenu.gameObject.SetActive(state);
        }

        if (graphicsMenu.activeSelf && !state)
        {
            graphicsMenu.SetActive(state);
        }

        if (state)
        {
            if (!BoltNetwork.IsRunning)
            {
                Time.timeScale = 0;
            }

            if (myFpsController == null)
            {
                myFpsController = FindObjectOfType <FPSController>();
            }

            if (fpsController == null)
            {
                fpsController = FindObjectOfType <FirstPersonController>();
            }

            if (viveController == null)
            {
                viveController = FindObjectOfType <ViveControllerInput>();
            }

            if (viveController != null)
            {
                viveController.enabled = false;
            }

            if (fpsController != null)
            {
                fpsController.enabled = false;
            }

            if (myFpsController != null)
            {
                myFpsController.enabled = false;
            }
        }
        else
        {
            if (!BoltNetwork.IsRunning)
            {
                Time.timeScale = 1;
            }

            if (myFpsController == null)
            {
                myFpsController = FindObjectOfType <FPSController>();
            }

            if (fpsController == null)
            {
                fpsController = FindObjectOfType <FirstPersonController>();
            }

            if (viveController == null)
            {
                viveController = FindObjectOfType <ViveControllerInput>();
            }

            if (viveController != null)
            {
                viveController.enabled = true;
            }

            if (fpsController != null)
            {
                fpsController.enabled = true;
            }

            if (myFpsController != null)
            {
                myFpsController.enabled = true;
            }
        }
    }