protected virtual void CreateObjectInteractor() { objectInteractor = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BasePointerRenderer_ObjectInteractor_Container")); objectInteractor.transform.SetParent(controllingPointer.controllerEvents.transform); objectInteractor.transform.localPosition = Vector3.zero; objectInteractor.layer = LayerMask.NameToLayer("Ignore Raycast"); VRTK_PlayerObject.SetPlayerObject(objectInteractor, VRTK_PlayerObject.ObjectTypes.Pointer); GameObject objectInteractorCollider = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BasePointerRenderer_ObjectInteractor_Collider")); objectInteractorCollider.transform.SetParent(objectInteractor.transform); objectInteractorCollider.transform.localPosition = Vector3.zero; objectInteractorCollider.layer = LayerMask.NameToLayer("Ignore Raycast"); SphereCollider tmpCollider = objectInteractorCollider.AddComponent <SphereCollider>(); tmpCollider.isTrigger = true; VRTK_PlayerObject.SetPlayerObject(objectInteractorCollider, VRTK_PlayerObject.ObjectTypes.Pointer); if (controllingPointer.grabToPointerTip) { objectInteractorAttachPoint = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BasePointerRenderer_ObjectInteractor_AttachPoint")); objectInteractorAttachPoint.transform.SetParent(objectInteractor.transform); objectInteractorAttachPoint.transform.localPosition = Vector3.zero; objectInteractorAttachPoint.layer = LayerMask.NameToLayer("Ignore Raycast"); Rigidbody objectInteratorRigidBody = objectInteractorAttachPoint.AddComponent <Rigidbody>(); objectInteratorRigidBody.isKinematic = true; objectInteratorRigidBody.freezeRotation = true; objectInteratorRigidBody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative; VRTK_PlayerObject.SetPlayerObject(objectInteractorAttachPoint, VRTK_PlayerObject.ObjectTypes.Pointer); } ScaleObjectInteractor(Vector3.one); objectInteractor.SetActive(false); }
protected virtual void CreatePointerOriginTransformFollow() { pointerOriginTransformFollowGameObject = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BasePointerRenderer_Origin_Smoothed")); pointerOriginTransformFollow = pointerOriginTransformFollowGameObject.AddComponent <VRTK_TransformFollow>(); pointerOriginTransformFollow.enabled = false; pointerOriginTransformFollow.followsScale = false; }
protected virtual void CreateTouchCollider() { if (customColliderContainer == null) { if (!defaultColliderPrefab) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.SDK_OBJECT_NOT_FOUND, "default collider prefab", "Controller SDK")); return; } controllerCollisionDetector = Instantiate(defaultColliderPrefab, transform.position, transform.rotation) as GameObject; controllerCollisionDetector.transform.SetParent(transform); controllerCollisionDetector.transform.localScale = transform.localScale; controllerCollisionDetector.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Controller", "CollidersContainer"); destroyColliderOnDisable = true; } else { if (CustomRigidBodyIsChild()) { controllerCollisionDetector = customColliderContainer; destroyColliderOnDisable = false; } else { controllerCollisionDetector = Instantiate(customColliderContainer, transform.position, transform.rotation) as GameObject; controllerCollisionDetector.transform.SetParent(transform); controllerCollisionDetector.transform.localScale = transform.localScale; destroyColliderOnDisable = true; } } controllerCollisionDetector.AddComponent <VRTK_PlayerObject>().objectType = VRTK_PlayerObject.ObjectTypes.Collider; }
// Token: 0x06001723 RID: 5923 RVA: 0x0007C15C File Offset: 0x0007A35C public static void CreateIfNotExists() { if (VRTK_Logger.instance == null) { VRTK_Logger.instance = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { "Logger" })) { hideFlags = (HideFlags.HideInHierarchy | HideFlags.DontSaveInEditor) }.AddComponent <VRTK_Logger>(); } if (VRTK_Logger.commonMessageParts.Count != VRTK_Logger.commonMessages.Count) { VRTK_Logger.commonMessageParts.Clear(); foreach (KeyValuePair <VRTK_Logger.CommonMessageKeys, string> keyValuePair in VRTK_Logger.commonMessages) { int value = Regex.Matches(keyValuePair.Value, "(?<!\\{)\\{([0-9]+).*?\\}(?!})").Cast <Match>().DefaultIfEmpty <Match>().Max(delegate(Match m) { if (m != null) { return(int.Parse(m.Groups[1].Value)); } return(-1); }) + 1; VRTK_Logger.commonMessageParts.Add(keyValuePair.Key, value); } } }
protected virtual void CreateCursorLocations() { if (validLocationObject != null) { actualValidLocationObject = Instantiate(validLocationObject); actualValidLocationObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BezierPointerRenderer_ValidLocation"); actualValidLocationObject.transform.SetParent(actualCursor.transform); actualValidLocationObject.layer = LayerMask.NameToLayer("Ignore Raycast"); actualValidLocationObject.SetActive(false); if (customCursor) { actualValidLocationObject.transform.localScale *= cursorRadius / 0.5f; } } if (invalidLocationObject != null) { actualInvalidLocationObject = Instantiate(invalidLocationObject); actualInvalidLocationObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BezierPointerRenderer_InvalidLocation"); actualInvalidLocationObject.transform.SetParent(actualCursor.transform); actualInvalidLocationObject.layer = LayerMask.NameToLayer("Ignore Raycast"); actualInvalidLocationObject.SetActive(false); if (customCursor) { actualInvalidLocationObject.transform.localScale *= cursorRadius / 0.5f; } } }
// Token: 0x060018B0 RID: 6320 RVA: 0x0008341C File Offset: 0x0008161C protected virtual void CreateCursorLocations() { if (this.validLocationObject != null) { this.actualValidLocationObject = Object.Instantiate <GameObject>(this.validLocationObject); this.actualValidLocationObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BezierPointerRenderer_ValidLocation" }); this.actualValidLocationObject.transform.SetParent(this.actualCursor.transform); this.actualValidLocationObject.layer = LayerMask.NameToLayer("Ignore Raycast"); this.actualValidLocationObject.SetActive(false); } if (this.invalidLocationObject != null) { this.actualInvalidLocationObject = Object.Instantiate <GameObject>(this.invalidLocationObject); this.actualInvalidLocationObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BezierPointerRenderer_InvalidLocation" }); this.actualInvalidLocationObject.transform.SetParent(this.actualCursor.transform); this.actualInvalidLocationObject.layer = LayerMask.NameToLayer("Ignore Raycast"); this.actualInvalidLocationObject.SetActive(false); } }
protected virtual void SetupColliders() { createColliders = false; Collider[] foundColliders = VRTK_SharedMethods.GetCollidersInGameObjects(new GameObject[] { gameObject }, true, true); if (foundColliders.Length == 0) { Object defaultColliderPrefab = Resources.Load(VRTK_SDK_Bridge.GetControllerDefaultColliderPath(controllerReference.hand)); if (defaultColliderPrefab == null) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.SDK_OBJECT_NOT_FOUND, "default collider prefab", "Controller SDK")); return; } createColliders = true; customColliderContainer = Instantiate(defaultColliderPrefab) as GameObject; customColliderContainer.transform.SetParent(transform); customColliderContainer.transform.localPosition = Vector3.zero; customColliderContainer.transform.localRotation = Quaternion.identity; customColliderContainer.transform.localScale = Vector3.one; customColliderContainer.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Controller", "TrackedCollidersContainer"); foundColliders = VRTK_SharedMethods.GetCollidersInGameObjects(new GameObject[] { gameObject }, true, true); } trackedColliders = foundColliders; Collider[] touchColliders = interactTouch.ControllerColliders(); for (int touchColliderIndex = 0; touchColliderIndex < touchColliders.Length; touchColliderIndex++) { for (int trackedColliderIndex = 0; trackedColliderIndex < trackedColliders.Length; trackedColliderIndex++) { Physics.IgnoreCollision(touchColliders[touchColliderIndex], trackedColliders[trackedColliderIndex], true); } } }
protected virtual void GeneratePlayAreaCursorFromPrefab(Vector3[] cursorDrawVertices) { playAreaCursor = new GameObject(GeneratePlayAreaCursorName()); float width = cursorDrawVertices[btmRightOuter].x - cursorDrawVertices[topLeftOuter].x; float length = cursorDrawVertices[topLeftOuter].z - cursorDrawVertices[btmRightOuter].z; if (playAreaCursorDimensions != Vector2.zero) { width = (playAreaCursorDimensions.x == 0 ? playAreaCursor.transform.localScale.x : playAreaCursorDimensions.x); length = (playAreaCursorDimensions.y == 0 ? playAreaCursor.transform.localScale.z : playAreaCursorDimensions.y); } float height = 0.01f; playAreaCursorValidChild = Instantiate(validLocationObject); playAreaCursorValidChild.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "ValidArea"); playAreaCursorValidChild.transform.SetParent(playAreaCursor.transform); if (invalidLocationObject != null) { playAreaCursorInvalidChild = Instantiate(invalidLocationObject); playAreaCursorInvalidChild.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "InvalidArea"); playAreaCursorInvalidChild.transform.SetParent(playAreaCursor.transform); } playAreaCursor.transform.localScale = new Vector3(width, height, length); playAreaCursorValidChild.transform.localScale = Vector3.one; if (invalidLocationObject != null) { playAreaCursorInvalidChild.transform.localScale = Vector3.one; } playAreaCursor.SetActive(false); }
// Token: 0x06001937 RID: 6455 RVA: 0x00086507 File Offset: 0x00084707 protected virtual string GeneratePlayAreaCursorName() { return(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "PlayAreaCursor" })); }
protected virtual void CreateCursor() { actualCursor = (customCursor ? Instantiate(customCursor) : CreateCursorObject()); CreateCursorLocations(); actualCursor.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BezierPointerRenderer_Cursor"); VRTK_PlayerObject.SetPlayerObject(actualCursor, VRTK_PlayerObject.ObjectTypes.Pointer); actualCursor.layer = LayerMask.NameToLayer("Ignore Raycast"); actualCursor.SetActive(false); }
protected override void OnEnable() { base.OnEnable(); SetupPlayArea(); SetupHeadset(); footColliderContainerNameCheck = VRTK_SharedMethods.GenerateVRTKObjectName(true, FOOT_COLLIDER_CONTAINER_NAME); EnableDropToFloor(); EnableBodyPhysics(); }
protected virtual Transform CreateAttachPoint(string namePrefix, string nameSuffix, Transform origin) { Transform attachPoint = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, namePrefix, nameSuffix, "Controller", "AttachPoint")).transform; attachPoint.parent = transform; attachPoint.position = origin.position; attachPoint.rotation = origin.rotation; return(attachPoint); }
private void CreateOrDestroyDebugVisualization() { if (!Application.isPlaying) { return; } if (enabled && drawDebugVisualization && debugVisualizationQuad == null) { var mesh = new Mesh { vertices = new[] { new Vector3(-0.5f, 0.9f, 1.0f), new Vector3(-0.5f, 1.0f, 1.0f), new Vector3(0.5f, 1.0f, 1.0f), new Vector3(0.5f, 0.9f, 1.0f) }, uv = new[] { new Vector2(0.0f, 0.0f), new Vector2(0.0f, 1.0f), new Vector2(1.0f, 1.0f), new Vector2(1.0f, 0.0f) }, triangles = new[] { 0, 1, 2, 0, 2, 3 } }; #if !UNITY_5_5_OR_NEWER mesh.Optimize(); #endif mesh.UploadMeshData(true); debugVisualizationQuad = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, "AdaptiveQualityDebugVisualizationQuad")); if (VRTK_SDKManager.instance) { debugVisualizationQuad.transform.SetParent(VRTK_DeviceFinder.HeadsetTransform()); } debugVisualizationQuad.transform.localPosition = Vector3.forward; debugVisualizationQuad.transform.localRotation = Quaternion.identity; debugVisualizationQuad.AddComponent <MeshFilter>().mesh = mesh; debugVisualizationQuadMaterial = Resources.Load <Material>("AdaptiveQualityDebugVisualization"); debugVisualizationQuad.AddComponent <MeshRenderer>().material = debugVisualizationQuadMaterial; } else if ((!enabled || !drawDebugVisualization) && debugVisualizationQuad != null) { Destroy(debugVisualizationQuad); debugVisualizationQuad = null; debugVisualizationQuadMaterial = null; } }
// Token: 0x06001B94 RID: 7060 RVA: 0x000907BC File Offset: 0x0008E9BC private void CreateOrDestroyDebugVisualization() { if (!Application.isPlaying) { return; } if (base.enabled && this.drawDebugVisualization && this.debugVisualizationQuad == null) { Mesh mesh = new Mesh { vertices = new Vector3[] { new Vector3(-0.5f, 0.9f, 1f), new Vector3(-0.5f, 1f, 1f), new Vector3(0.5f, 1f, 1f), new Vector3(0.5f, 0.9f, 1f) }, uv = new Vector2[] { new Vector2(0f, 0f), new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(1f, 0f) }, triangles = new int[] { 0, 1, 2, 0, 2, 3 } }; mesh.UploadMeshData(true); this.debugVisualizationQuad = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { "AdaptiveQualityDebugVisualizationQuad" })); this.debugVisualizationQuad.transform.parent = VRTK_DeviceFinder.HeadsetTransform(); this.debugVisualizationQuad.transform.localPosition = Vector3.forward; this.debugVisualizationQuad.transform.localRotation = Quaternion.identity; this.debugVisualizationQuad.AddComponent <MeshFilter>().mesh = mesh; this.debugVisualizationQuadMaterial = Resources.Load <Material>("AdaptiveQualityDebugVisualization"); this.debugVisualizationQuad.AddComponent <MeshRenderer>().material = this.debugVisualizationQuadMaterial; return; } if ((!base.enabled || !this.drawDebugVisualization) && this.debugVisualizationQuad != null) { Object.Destroy(this.debugVisualizationQuad); this.debugVisualizationQuad = null; this.debugVisualizationQuadMaterial = null; } }
protected virtual void CreateHeadsetColliderContainer() { if (headsetColliderContainer == null) { headsetColliderContainer = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, "HeadsetColliderContainer")); headsetColliderContainer.transform.position = Vector3.zero; headsetColliderContainer.transform.localRotation = headset.localRotation; headsetColliderContainer.transform.localScale = Vector3.one; headsetColliderContainer.layer = LayerMask.NameToLayer("Ignore Raycast"); } }
protected virtual GameObject CreateSphere() { customTracer = false; GameObject item = GameObject.CreatePrimitive(PrimitiveType.Sphere); item.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Sphere"); Destroy(item.GetComponent <SphereCollider>()); item.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; item.GetComponent <MeshRenderer>().receiveShadows = false; return(item); }
// Token: 0x060018B1 RID: 6321 RVA: 0x0008353C File Offset: 0x0008173C protected virtual void CreateCursor() { this.actualCursor = (this.customCursor ? Object.Instantiate <GameObject>(this.customCursor) : this.CreateCursorObject()); this.CreateCursorLocations(); this.actualCursor.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BezierPointerRenderer_Cursor" }); VRTK_PlayerObject.SetPlayerObject(this.actualCursor, VRTK_PlayerObject.ObjectTypes.Pointer); this.actualCursor.layer = LayerMask.NameToLayer("Ignore Raycast"); this.actualCursor.SetActive(false); }
protected virtual void CreateNearTouchCollider() { if (customColliderContainer == null) { neartouchColliderContainer = new GameObject(); neartouchColliderContainer.transform.SetParent(interactTouch.transform); neartouchColliderContainer.transform.localPosition = Vector3.zero; neartouchColliderContainer.transform.localRotation = Quaternion.identity; neartouchColliderContainer.transform.localScale = interactTouch.transform.localScale; } else { neartouchColliderContainer = Instantiate(customColliderContainer); neartouchColliderContainer.transform.SetParent(interactTouch.transform); neartouchColliderContainer.transform.localPosition = customColliderContainer.transform.localPosition; neartouchColliderContainer.transform.localRotation = customColliderContainer.transform.localRotation; neartouchColliderContainer.transform.localScale = customColliderContainer.transform.localScale; } neartouchColliderContainer.layer = 2; neartouchColliderContainer.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Controller", "NearTouch", "CollidersContainer"); Rigidbody attachedRigidbody = neartouchColliderContainer.GetComponentInChildren <Rigidbody>(); if (attachedRigidbody == null) { attachedRigidbody = neartouchColliderContainer.AddComponent <Rigidbody>(); } attachedRigidbody.isKinematic = true; attachedRigidbody.constraints = RigidbodyConstraints.FreezeRotation; Collider attachedCollider = neartouchColliderContainer.GetComponentInChildren <Collider>(); if (attachedCollider == null) { SphereCollider attachedSphereCollider = neartouchColliderContainer.AddComponent <SphereCollider>(); attachedSphereCollider.isTrigger = true; attachedSphereCollider.radius = colliderRadius; } else { attachedCollider.isTrigger = true; } interactNearTouchColliderScript = neartouchColliderContainer.AddComponent <VRTK_InteractNearTouchCollider>(); interactNearTouchColliderScript.SetInteractNearTouch(this); neartouchColliderContainer.SetActive(true); }
// Token: 0x06001706 RID: 5894 RVA: 0x0007B8BC File Offset: 0x00079ABC protected virtual GameObject CreateSphere() { this.customTracer = false; GameObject gameObject = GameObject.CreatePrimitive(PrimitiveType.Sphere); gameObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { "Sphere" }); Object.Destroy(gameObject.GetComponent <SphereCollider>()); gameObject.GetComponent <MeshRenderer>().shadowCastingMode = ShadowCastingMode.Off; gameObject.GetComponent <MeshRenderer>().receiveShadows = false; return(gameObject); }
protected virtual void CreateTouchCollider() { SDK_BaseController.ControllerHand controllerHand = VRTK_DeviceFinder.GetControllerHand(gameObject); string colliderPath = VRTK_SDK_Bridge.GetControllerDefaultColliderPath(controllerHand); if (colliderPath == "") { return; } Object defaultColliderPrefab = Resources.Load(colliderPath); if (customColliderContainer == null) { if (defaultColliderPrefab == null) { VRTK_Logger.Error(VRTK_Logger.GetCommonMessage(VRTK_Logger.CommonMessageKeys.SDK_OBJECT_NOT_FOUND, "default collider prefab", "Controller SDK")); return; } if (destroyColliderOnDisable) { Destroy(controllerCollisionDetector); } controllerCollisionDetector = Instantiate(defaultColliderPrefab, transform.position, transform.rotation) as GameObject; controllerCollisionDetector.transform.SetParent(transform); controllerCollisionDetector.transform.localScale = transform.localScale; controllerCollisionDetector.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, "Controller", "CollidersContainer"); destroyColliderOnDisable = true; } else { if (destroyColliderOnDisable) { Destroy(controllerCollisionDetector); } if (CustomRigidBodyIsChild()) { controllerCollisionDetector = customColliderContainer; destroyColliderOnDisable = false; } else { controllerCollisionDetector = Instantiate(customColliderContainer, transform.position, transform.rotation) as GameObject; controllerCollisionDetector.transform.SetParent(transform); controllerCollisionDetector.transform.localScale = transform.localScale; destroyColliderOnDisable = true; } } controllerCollisionDetector.AddComponent <VRTK_PlayerObject>().objectType = VRTK_PlayerObject.ObjectTypes.Collider; }
protected virtual GameObject CreateColliderContainer(string name, Transform parent) { GameObject generatedContainer = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, name)); generatedContainer.transform.SetParent(parent); generatedContainer.transform.localPosition = Vector3.zero; generatedContainer.transform.localRotation = Quaternion.identity; generatedContainer.transform.localScale = Vector3.one; generatedContainer.layer = LayerMask.NameToLayer("Ignore Raycast"); VRTK_PlayerObject.SetPlayerObject(generatedContainer, VRTK_PlayerObject.ObjectTypes.Collider); return(generatedContainer); }
protected override void CreatePointerObjects() { actualContainer = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "StraightPointerRenderer_Container")); actualContainer.transform.localPosition = Vector3.zero; VRTK_PlayerObject.SetPlayerObject(actualContainer, VRTK_PlayerObject.ObjectTypes.Pointer); CreateTracer(); CreateCursor(); Toggle(false, false); if (controllingPointer) { controllingPointer.ResetActivationTimer(true); controllingPointer.ResetSelectionTimer(true); } }
protected virtual void CreateCursor() { actualCursor = (customCursor != null ? Instantiate(customCursor) : CreateCursorObject()); if (customCursor) { actualCursor.transform.localScale = new Vector3(cursorRadius / 0.5f, 1, cursorRadius / 0.5f); } CreateCursorLocations(); actualCursor.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BezierPointerRenderer_Cursor"); VRTK_PlayerObject.SetPlayerObject(actualCursor, VRTK_PlayerObject.ObjectTypes.Pointer); actualCursor.layer = LayerMask.NameToLayer("Ignore Raycast"); actualCursor.SetActive(false); }
protected override void CreatePointerObjects() { actualContainer = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "BezierPointerRenderer_Container")); VRTK_PlayerObject.SetPlayerObject(actualContainer, VRTK_PlayerObject.ObjectTypes.Pointer); actualContainer.SetActive(false); CreateTracer(); CreateCursor(); Toggle(false, false); if (controllingPointer != null) { controllingPointer.ResetActivationTimer(true); controllingPointer.ResetSelectionTimer(true); } }
// Token: 0x060018AA RID: 6314 RVA: 0x000831EC File Offset: 0x000813EC protected override void CreatePointerObjects() { this.actualContainer = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BezierPointerRenderer_Container" })); VRTK_PlayerObject.SetPlayerObject(this.actualContainer, VRTK_PlayerObject.ObjectTypes.Pointer); this.actualContainer.SetActive(false); this.CreateTracer(); this.CreateCursor(); this.Toggle(false, false); if (this.controllingPointer) { this.controllingPointer.ResetActivationTimer(true); this.controllingPointer.ResetSelectionTimer(true); } }
public virtual void Create(int setFrequency, float radius, GameObject tracer, bool rescaleTracer = false) { float circleSize = radius / 8; frequency = setFrequency; customLineRenderer = (tracer != null ? tracer.GetComponent <LineRenderer>() : null); lineRendererAndItem = (customLineRenderer != null && tracer.GetComponentInChildren <MeshFilter>()); if (customLineRenderer != null) { tracerLineRenderer = Instantiate(tracer); tracerLineRenderer.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, name, "LineRenderer"); for (int i = 0; i < tracerLineRenderer.transform.childCount; i++) { Destroy(tracerLineRenderer.transform.GetChild(i).gameObject); } customLineRenderer = tracerLineRenderer.GetComponent <LineRenderer>(); #if UNITY_5_5 customLineRenderer.numPositions = frequency; #elif UNITY_5_6_OR_NEWER customLineRenderer.positionCount = frequency; #else customLineRenderer.SetVertexCount(frequency); #endif } if (customLineRenderer == null || lineRendererAndItem) { items = new GameObject[frequency]; for (int f = 0; f < items.Length; f++) { customTracer = true; items[f] = (tracer != null ? Instantiate(tracer) : CreateSphere()); items[f].transform.SetParent(transform); items[f].layer = LayerMask.NameToLayer("Ignore Raycast"); items[f].transform.localScale = new Vector3(circleSize, circleSize, circleSize); if (customLineRenderer != null) { Destroy(items[f].GetComponent <LineRenderer>()); } } } rescalePointerTracer = rescaleTracer; }
protected virtual void DrawPlayAreaCursorBoundary(int index, float left, float right, float top, float bottom, float thickness, Vector3 localPosition) { GameObject playAreaCursorBoundary = GameObject.CreatePrimitive(PrimitiveType.Cube); playAreaCursorBoundary.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "PlayAreaCursorBoundary", index); VRTK_PlayerObject.SetPlayerObject(playAreaCursorBoundary, VRTK_PlayerObject.ObjectTypes.Pointer); float width = (right - left) / 1.065f; float length = (top - bottom) / 1.08f; float height = thickness; playAreaCursorBoundary.transform.localScale = new Vector3(width, height, length); Destroy(playAreaCursorBoundary.GetComponent <BoxCollider>()); playAreaCursorBoundary.layer = LayerMask.NameToLayer("Ignore Raycast"); playAreaCursorBoundary.transform.SetParent(playAreaCursor.transform); playAreaCursorBoundary.transform.localPosition = localPosition; playAreaCursorBoundaries[index] = playAreaCursorBoundary; }
// Token: 0x0600189F RID: 6303 RVA: 0x00082D4C File Offset: 0x00080F4C protected virtual void CreateObjectInteractor() { this.objectInteractor = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BasePointerRenderer_ObjectInteractor_Container" })); this.objectInteractor.transform.SetParent(this.controllingPointer.controller.transform); this.objectInteractor.transform.localPosition = Vector3.zero; this.objectInteractor.layer = LayerMask.NameToLayer("Ignore Raycast"); VRTK_PlayerObject.SetPlayerObject(this.objectInteractor, VRTK_PlayerObject.ObjectTypes.Pointer); GameObject gameObject = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BasePointerRenderer_ObjectInteractor_Collider" })); gameObject.transform.SetParent(this.objectInteractor.transform); gameObject.transform.localPosition = Vector3.zero; gameObject.layer = LayerMask.NameToLayer("Ignore Raycast"); gameObject.AddComponent <SphereCollider>().isTrigger = true; VRTK_PlayerObject.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Pointer); if (this.controllingPointer.grabToPointerTip) { this.objectInteractorAttachPoint = new GameObject(VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "BasePointerRenderer_ObjectInteractor_AttachPoint" })); this.objectInteractorAttachPoint.transform.SetParent(this.objectInteractor.transform); this.objectInteractorAttachPoint.transform.localPosition = Vector3.zero; this.objectInteractorAttachPoint.layer = LayerMask.NameToLayer("Ignore Raycast"); Rigidbody rigidbody = this.objectInteractorAttachPoint.AddComponent <Rigidbody>(); rigidbody.isKinematic = true; rigidbody.freezeRotation = true; rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; VRTK_PlayerObject.SetPlayerObject(this.objectInteractorAttachPoint, VRTK_PlayerObject.ObjectTypes.Pointer); } this.ScaleObjectInteractor(Vector3.one); this.objectInteractor.SetActive(false); }
protected virtual void CreateTracer() { if (customTracer) { actualTracer = Instantiate(customTracer); } else { actualTracer = GameObject.CreatePrimitive(PrimitiveType.Cube); actualTracer.GetComponent <BoxCollider>().isTrigger = true; actualTracer.AddComponent <Rigidbody>().isKinematic = true; actualTracer.layer = LayerMask.NameToLayer("Ignore Raycast"); SetupMaterialRenderer(actualTracer); } actualTracer.transform.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, gameObject.name, "StraightPointerRenderer_Tracer"); actualTracer.transform.SetParent(actualContainer.transform); VRTK_PlayerObject.SetPlayerObject(actualTracer, VRTK_PlayerObject.ObjectTypes.Pointer); }
// Token: 0x0600193A RID: 6458 RVA: 0x00086B18 File Offset: 0x00084D18 protected virtual void DrawPlayAreaCursorBoundary(int index, float left, float right, float top, float bottom, float thickness, Vector3 localPosition) { GameObject gameObject = GameObject.CreatePrimitive(PrimitiveType.Cube); gameObject.name = VRTK_SharedMethods.GenerateVRTKObjectName(true, new object[] { base.gameObject.name, "PlayAreaCursorBoundary", index }); VRTK_PlayerObject.SetPlayerObject(gameObject, VRTK_PlayerObject.ObjectTypes.Pointer); float x = (right - left) / 1.065f; float z = (top - bottom) / 1.08f; gameObject.transform.localScale = new Vector3(x, thickness, z); Object.Destroy(gameObject.GetComponent <BoxCollider>()); gameObject.layer = LayerMask.NameToLayer("Ignore Raycast"); gameObject.transform.SetParent(this.playAreaCursor.transform); gameObject.transform.localPosition = localPosition; this.playAreaCursorBoundaries[index] = gameObject; }