private bool ShouldUpdateOffset(Transform currentElementTransform, TransformOffset previousElementOffset, ref TransformOffset newOffset) { newOffset.position = currentElementTransform.localPosition.ToSpatialVector3f(); newOffset.rotation = currentElementTransform.localRotation.eulerAngles.ToSpatialVector3f(); return(!(MathUtils.ApproximatelyEqual(newOffset.position, previousElementOffset.position) && MathUtils.ApproximatelyEqual(newOffset.rotation, previousElementOffset.rotation))); }
private static void Copy(MenuCommand command) { if (m_InspectedProperty != null) { m_CopiedObject = m_InspectedProperty.GetValue <TransformOffset>().GetClone(); } }
void Update() { if ((!VrCamera.activeInHierarchy || !LeftController.activeInHierarchy || !RightController.activeInHierarchy) && (Time.time - LastWarningTimestamp) >= 1) { LastWarningTimestamp = Time.time; Debug.LogWarning("One or more VR Peripherals not active in hierarchy!"); } var previousOffsets = VRPeripheralOffsetsWriter.Data; var offsetsUpdate = new VRPeripheralOffsets.Update(); var newOffset = new TransformOffset(); if (LeftController.activeInHierarchy && ShouldUpdateOffset(LeftController.transform, previousOffsets.leftController, ref newOffset)) { offsetsUpdate.SetLeftController(newOffset); } if (RightController.activeInHierarchy && ShouldUpdateOffset(RightController.transform, previousOffsets.rightController, ref newOffset)) { offsetsUpdate.SetRightController(newOffset); } if (VrCamera.activeInHierarchy && ShouldUpdateOffset(VrCamera.transform, previousOffsets.head, ref newOffset)) { offsetsUpdate.SetHead(newOffset); } VRPeripheralOffsetsWriter.Send(offsetsUpdate); }
public void RegisterInstance(TransformOffset newInstance) { if (!registered) { instances.Add(newInstance, this); registered = true; } }
// Use this for initialization void Start() { // anchor = new Vector3(-.5f, 0, 0); scaleOffset = GetComponent <TransformOffset>(); joint = GetComponent <HingeJoint2D>(); if (currentSegment < maxSegments) { nextSegment = Instantiate(this.gameObject, transform.position + new Vector3(transform.localScale.x, 0, 0), Quaternion.identity); //nextSegment = Instantiate(this.gameObject, transform.localPosition + new Vector3(.03f, 0, 0), Quaternion.identity); currentSegment += 1; nextSegment.GetComponent <HingeJoint2D>().connectedBody = this.GetComponent <Rigidbody2D>(); } }
protected virtual void OnSceneGUI() { myTarget = (TransformOffset)target; //myTarget.CreateScriptableObject(); EditorGUI.BeginChangeCheck(); widgetPos = Handles.PositionHandle(myTarget.Offset, Quaternion.identity); Vector3 newScale = Handles.ScaleHandle(myTarget.transform.localScale, widgetPos, Quaternion.identity, 1); if (EditorGUI.EndChangeCheck()) { myTarget.Offset = widgetPos; Vector3 deltaScale = new Vector3(newScale.x / myTarget.transform.localScale.x, newScale.y / myTarget.transform.localScale.y, newScale.z / myTarget.transform.localScale.z); if (deltaScale != Vector3.one) { myTarget.ScaleOffset(deltaScale); } } }
public override void OnInspectorGUI() { myTarget = (TransformOffset)target; //myTarget.CreateScriptableObject(); Vector3 displayOffset = myTarget.Offset; myTarget.UseLocalCoords = EditorGUILayout.Toggle("UseLocalCoords", myTarget.UseLocalCoords); if (myTarget.UseLocalCoords) { displayOffset = myTarget.Offset - myTarget.transform.position; } displayOffset = EditorGUILayout.Vector3Field("Offset", displayOffset); if (myTarget.UseLocalCoords) { myTarget.Offset = myTarget.transform.position + displayOffset; } else { myTarget.Offset = displayOffset; } myTarget.UniformDisplacement = EditorGUILayout.Toggle("Uniform Displacement", myTarget.UniformDisplacement); //myTarget.UniformDisplacement = EditorGUILayout.Toggle("Uniform Displacement", myTarget.UniformDisplacement); }
private void SetVRPeripheralModelTransform(Transform vrElement, TransformOffset offset) { vrElement.localPosition = offset.position.ToUnityVector(); vrElement.localRotation = Quaternion.Euler(offset.rotation.ToUnityVector()); }