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; } }
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; } }
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; } } }