protected virtual void Awake() { if (controller == null) { controller = GetComponent <VRTK_ControllerEvents>(); } if (controller == null) { Debug.LogError("VRTK_WorldPointer requires a SteamVR Controller that has the VRTK_ControllerEvents script attached to it"); return; } Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Controller); headset = VRTK_DeviceFinder.HeadsetTransform(); playArea = FindObjectOfType <SteamVR_PlayArea>(); playAreaCursorBoundaries = new GameObject[4]; }
private void InitProjectedBeams() { projectedBeamContainer = new GameObject(string.Format("[{0}]WorldPointer_BezierPointer_ProjectedBeamContainer", gameObject.name)); Utilities.SetPlayerObject(projectedBeamContainer, VRTK_PlayerObject.ObjectTypes.Pointer); projectedBeamContainer.transform.parent = transform; projectedBeamContainer.transform.localPosition = Vector3.zero; projectedBeamForward = new GameObject(string.Format("[{0}]WorldPointer_BezierPointer_ProjectedBeamForward", gameObject.name)); Utilities.SetPlayerObject(projectedBeamForward, VRTK_PlayerObject.ObjectTypes.Pointer); projectedBeamForward.transform.parent = projectedBeamContainer.transform; projectedBeamJoint = new GameObject(string.Format("[{0}]WorldPointer_BezierPointer_ProjectedBeamJoint", gameObject.name)); Utilities.SetPlayerObject(projectedBeamJoint, VRTK_PlayerObject.ObjectTypes.Pointer); projectedBeamJoint.transform.parent = projectedBeamContainer.transform; projectedBeamJoint.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f); projectedBeamDown = new GameObject(string.Format("[{0}]WorldPointer_BezierPointer_ProjectedBeamDown", gameObject.name)); Utilities.SetPlayerObject(projectedBeamDown, VRTK_PlayerObject.ObjectTypes.Pointer); }
private void DrawPlayAreaCursorBoundary(int index, float left, float right, float top, float bottom, float thickness, Vector3 localPosition) { var playAreaCursorBoundary = GameObject.CreatePrimitive(PrimitiveType.Cube); playAreaCursorBoundary.name = string.Format("[{0}]WorldPointer_PlayAreaCursorBoundary_" + index, this.gameObject.name); Utilities.SetPlayerObject(playAreaCursorBoundary, VRTK_PlayerObject.ObjectTypes.Pointer); var width = (right - left) / 1.065f; var length = (top - bottom) / 1.08f; var height = thickness; playAreaCursorBoundary.transform.localScale = new Vector3(width, height, length); Destroy(playAreaCursorBoundary.GetComponent <BoxCollider>()); playAreaCursorBoundary.layer = LayerMask.NameToLayer("Ignore Raycast"); playAreaCursorBoundary.transform.parent = playAreaCursor.transform; playAreaCursorBoundary.transform.localPosition = localPosition; playAreaCursorBoundaries[index] = playAreaCursorBoundary; }
protected void Start() { Utilities.AddCameraFade(); if (gameObject.GetComponentInChildren <SteamVR_Fade>() == null) { Debug.LogWarning("This 'VRTK_HeadsetCollisionFade' script needs a SteamVR_Fade script on the camera eye."); } Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Headset); BoxCollider collider = gameObject.AddComponent <BoxCollider>(); collider.isTrigger = true; collider.size = new Vector3(0.1f, 0.1f, 0.1f); Rigidbody rb = gameObject.AddComponent <Rigidbody>(); rb.isKinematic = true; rb.useGravity = false; }
private void Start() { Utilities.AddCameraFade(); if (!VRTK_SDK_Bridge.HasHeadsetFade(gameObject)) { Debug.LogWarning("This 'VRTK_HeadsetCollisionFade' script needs a compatible fade script on the camera eye."); } Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Headset); BoxCollider collider = gameObject.AddComponent <BoxCollider>(); collider.isTrigger = true; collider.size = new Vector3(0.1f, 0.1f, 0.1f); Rigidbody rb = gameObject.AddComponent <Rigidbody>(); rb.isKinematic = true; rb.useGravity = false; }
protected override void InitPointer() { pointerHolder = new GameObject(string.Format("[{0}]WorldPointer_SimplePointer_Holder", gameObject.name)); Utilities.SetPlayerObject(pointerHolder, VRTK_PlayerObject.ObjectTypes.Pointer); pointerHolder.transform.parent = transform; pointerHolder.transform.localPosition = Vector3.zero; pointer = GameObject.CreatePrimitive(PrimitiveType.Cube); pointer.transform.name = string.Format("[{0}]WorldPointer_SimplePointer_Pointer", gameObject.name); Utilities.SetPlayerObject(pointer, VRTK_PlayerObject.ObjectTypes.Pointer); pointer.transform.parent = pointerHolder.transform; pointer.GetComponent <BoxCollider>().isTrigger = true; pointer.AddComponent <Rigidbody>().isKinematic = true; pointer.layer = LayerMask.NameToLayer("Ignore Raycast"); if (customPointerCursor == null) { pointerTip = GameObject.CreatePrimitive(PrimitiveType.Sphere); pointerTip.transform.localScale = pointerTipScale; } else { pointerTip = Instantiate(customPointerCursor); } pointerTip.transform.name = string.Format("[{0}]WorldPointer_SimplePointer_PointerTip", gameObject.name); Utilities.SetPlayerObject(pointerTip, VRTK_PlayerObject.ObjectTypes.Pointer); pointerTip.transform.parent = pointerHolder.transform; pointerTip.GetComponent <Collider>().isTrigger = true; pointerTip.AddComponent <Rigidbody>().isKinematic = true; pointerTip.layer = LayerMask.NameToLayer("Ignore Raycast"); base.InitPointer(); SetPointerTransform(pointerLength, pointerThickness); TogglePointer(false); }
protected virtual void CreateObjectInteractor() { objectInteractor = new GameObject(string.Format("[{0}]WorldPointer_ObjectIneractor_Holder", gameObject.name)); objectInteractor.transform.SetParent(controller.transform); objectInteractor.transform.localPosition = Vector3.zero; objectInteractor.layer = LayerMask.NameToLayer("Ignore Raycast"); Utilities.SetPlayerObject(objectInteractor, VRTK_PlayerObject.ObjectTypes.Pointer); var objectInteractorCollider = new GameObject(string.Format("[{0}]WorldPointer_ObjectIneractor_Collider", gameObject.name)); objectInteractorCollider.transform.SetParent(objectInteractor.transform); objectInteractorCollider.transform.localPosition = Vector3.zero; objectInteractorCollider.layer = LayerMask.NameToLayer("Ignore Raycast"); var tmpCollider = objectInteractorCollider.AddComponent <SphereCollider>(); tmpCollider.isTrigger = true; Utilities.SetPlayerObject(objectInteractorCollider, VRTK_PlayerObject.ObjectTypes.Pointer); var objectInteractorScale = 0.025f; objectInteractor.transform.localScale = new Vector3(objectInteractorScale, objectInteractorScale, objectInteractorScale); objectInteractor.SetActive(false); }
protected virtual void Start() { if (controller == null) { controller = GetComponent <VRTK_ControllerEvents>(); } if (controller == null) { Debug.LogError("VRTK_WorldPointer requires a SteamVR Controller that has the VRTK_ControllerEvents script attached to it"); return; } Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Controller); //Setup controller event listeners controller.AliasPointerOn += new ControllerInteractionEventHandler(EnablePointerBeam); controller.AliasPointerOff += new ControllerInteractionEventHandler(DisablePointerBeam); controller.AliasPointerSet += new ControllerInteractionEventHandler(SetPointerDestination); eventsRegistered = true; headset = DeviceFinder.HeadsetTransform(); playArea = FindObjectOfType <SteamVR_PlayArea>(); playAreaCursorBoundaries = new GameObject[4]; var tmpMaterial = Resources.Load("WorldPointer") as Material; if (pointerMaterial != null) { tmpMaterial = pointerMaterial; } pointerMaterial = new Material(tmpMaterial); pointerMaterial.color = pointerMissColor; }
protected virtual void CreateObjectInteractor() { objectInteractor = new GameObject(string.Format("[{0}]WorldPointer_ObjectInteractor_Holder", gameObject.name)); objectInteractor.transform.SetParent(controller.transform); objectInteractor.transform.localPosition = Vector3.zero; objectInteractor.layer = LayerMask.NameToLayer("Ignore Raycast"); Utilities.SetPlayerObject(objectInteractor, VRTK_PlayerObject.ObjectTypes.Pointer); var objectInteractorCollider = new GameObject(string.Format("[{0}]WorldPointer_ObjectInteractor_Collider", gameObject.name)); objectInteractorCollider.transform.SetParent(objectInteractor.transform); objectInteractorCollider.transform.localPosition = Vector3.zero; objectInteractorCollider.layer = LayerMask.NameToLayer("Ignore Raycast"); var tmpCollider = objectInteractorCollider.AddComponent <SphereCollider>(); tmpCollider.isTrigger = true; Utilities.SetPlayerObject(objectInteractorCollider, VRTK_PlayerObject.ObjectTypes.Pointer); if (grabToPointerTip) { objectInteractorAttachPoint = new GameObject(string.Format("[{0}]WorldPointer_ObjectInteractor_AttachPoint", gameObject.name)); objectInteractorAttachPoint.transform.SetParent(objectInteractor.transform); objectInteractorAttachPoint.transform.localPosition = Vector3.zero; objectInteractorAttachPoint.layer = LayerMask.NameToLayer("Ignore Raycast"); var objectInteratorRigidBody = objectInteractorAttachPoint.AddComponent <Rigidbody>(); objectInteratorRigidBody.isKinematic = true; objectInteratorRigidBody.freezeRotation = true; objectInteratorRigidBody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; Utilities.SetPlayerObject(objectInteractorAttachPoint, VRTK_PlayerObject.ObjectTypes.Pointer); } var objectInteractorScale = 0.025f; objectInteractor.transform.localScale = new Vector3(objectInteractorScale, objectInteractorScale, objectInteractorScale); objectInteractor.SetActive(false); }
protected virtual void Awake() { Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.CameraRig); eyeCamera = Utilities.AddCameraFade(); }
protected virtual void Awake() { Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.CameraRig); eyeCamera = Utilities.AddCameraFade(); controllerManager = FindObjectOfType <SteamVR_ControllerManager>(); }
private void InitPlayAreaCursor() { var btmRightInner = 0; var btmLeftInner = 1; var topLeftInner = 2; var topRightInner = 3; var btmRightOuter = 4; var btmLeftOuter = 5; var topLeftOuter = 6; var topRightOuter = 7; Vector3[] cursorDrawVertices = VRTK_SDK_Bridge.GetPlayAreaVertices(playArea.gameObject); if (playAreaCursorDimensions != Vector2.zero) { var customAreaPadding = VRTK_SDK_Bridge.GetPlayAreaBorderThickness(playArea.gameObject); cursorDrawVertices[btmRightOuter] = new Vector3(playAreaCursorDimensions.x / 2, 0f, (playAreaCursorDimensions.y / 2) * -1); cursorDrawVertices[btmLeftOuter] = new Vector3((playAreaCursorDimensions.x / 2) * -1, 0f, (playAreaCursorDimensions.y / 2) * -1); cursorDrawVertices[topLeftOuter] = new Vector3((playAreaCursorDimensions.x / 2) * -1, 0f, playAreaCursorDimensions.y / 2); cursorDrawVertices[topRightOuter] = new Vector3(playAreaCursorDimensions.x / 2, 0f, playAreaCursorDimensions.y / 2); cursorDrawVertices[btmRightInner] = cursorDrawVertices[btmRightOuter] + new Vector3(-customAreaPadding, 0f, customAreaPadding); cursorDrawVertices[btmLeftInner] = cursorDrawVertices[btmLeftOuter] + new Vector3(customAreaPadding, 0f, customAreaPadding); cursorDrawVertices[topLeftInner] = cursorDrawVertices[topLeftOuter] + new Vector3(customAreaPadding, 0f, -customAreaPadding); cursorDrawVertices[topRightInner] = cursorDrawVertices[topRightOuter] + new Vector3(-customAreaPadding, 0f, -customAreaPadding); } var width = cursorDrawVertices[btmRightOuter].x - cursorDrawVertices[topLeftOuter].x; var length = cursorDrawVertices[topLeftOuter].z - cursorDrawVertices[btmRightOuter].z; var height = 0.01f; playAreaCursor = GameObject.CreatePrimitive(PrimitiveType.Cube); playAreaCursor.name = string.Format("[{0}]WorldPointer_PlayAreaCursor", gameObject.name); Utilities.SetPlayerObject(playAreaCursor, VRTK_PlayerObject.ObjectTypes.Pointer); playAreaCursor.transform.parent = null; playAreaCursor.transform.localScale = new Vector3(width, height, length); playAreaCursor.SetActive(false); playAreaCursor.GetComponent <Renderer>().enabled = false; CreateCursorCollider(playAreaCursor); playAreaCursor.AddComponent <Rigidbody>().isKinematic = true; var playAreaCursorScript = playAreaCursor.AddComponent <VRTK_PlayAreaCollider>(); playAreaCursorScript.SetParent(gameObject); playAreaCursorScript.SetIgnoreTarget(ignoreTargetWithTagOrClass, targetTagOrScriptListPolicy); playAreaCursor.layer = LayerMask.NameToLayer("Ignore Raycast"); var playAreaBoundaryX = playArea.transform.localScale.x / 2; var playAreaBoundaryZ = playArea.transform.localScale.z / 2; var heightOffset = 0f; DrawPlayAreaCursorBoundary(0, cursorDrawVertices[btmLeftOuter].x, cursorDrawVertices[btmRightOuter].x, cursorDrawVertices[btmRightInner].z, cursorDrawVertices[btmRightOuter].z, height, new Vector3(0f, heightOffset, playAreaBoundaryZ)); DrawPlayAreaCursorBoundary(1, cursorDrawVertices[btmLeftOuter].x, cursorDrawVertices[btmLeftInner].x, cursorDrawVertices[topLeftOuter].z, cursorDrawVertices[btmLeftOuter].z, height, new Vector3(playAreaBoundaryX, heightOffset, 0f)); DrawPlayAreaCursorBoundary(2, cursorDrawVertices[btmLeftOuter].x, cursorDrawVertices[btmRightOuter].x, cursorDrawVertices[btmRightInner].z, cursorDrawVertices[btmRightOuter].z, height, new Vector3(0f, heightOffset, -playAreaBoundaryZ)); DrawPlayAreaCursorBoundary(3, cursorDrawVertices[btmLeftOuter].x, cursorDrawVertices[btmLeftInner].x, cursorDrawVertices[topLeftOuter].z, cursorDrawVertices[btmLeftOuter].z, height, new Vector3(-playAreaBoundaryX, heightOffset, 0f)); }
private void Awake() { Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.CameraRig); customRigidBody = false; customCollider = false; }
private void Start() { Utilities.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.CameraRig); SetControllerListeners(controllerLeftHand); SetControllerListeners(controllerRightHand); }