public override void OnSelection(RUISWandSelector selector) { updateHingePositionAndAxis(); updateHingeForward(); this.selector = selector; positionAtSelection = selector.selectionRayEnd; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; // Dont remove this, needed in the inherited class this.angleOnSelection = getHingeJointAngle(); this.targetAngleOnSelection = getAngleDifferenceFromHingeForwardOnStart(); this.originalJointSpring = transform.GetComponent<HingeJoint>().spring; if(!physicalSelection) { JointSpring spr = GetComponent<HingeJoint>().spring; spr.spring = 0; spr.targetPosition = this.originalJointSpring.targetPosition; spr.damper = this.originalJointSpring.damper; GetComponent<HingeJoint>().spring = spr; this.useGravityOriginalValue = transform.GetComponent<Rigidbody>().useGravity; transform.GetComponent<Rigidbody>().useGravity = false; } if (selectionMaterial != null) AddMaterialToEverything(selectionMaterial); }
public override void OnSelection(RUISWandSelector selector) { this.selector = selector; // Transform information positionAtSelection = selector.selectionRayEnd; rotationAtSelection = transform.rotation; // Selector information selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; // Dont remove this, needed in the inherited class this.originalJointDriveX = this.configurableJoint.angularXDrive; this.originalJointDriveYZ = this.configurableJoint.angularYZDrive; JointDrive jd = new JointDrive(); jd.mode = JointDriveMode.Position; jd.positionSpring = springForce; jd.maximumForce = 999; this.configurableJoint.angularXDrive = jd; this.configurableJoint.angularYZDrive = jd; if (selectionMaterial != null) AddMaterialToEverything(selectionMaterial); }
public override void OnSelection(RUISWandSelector selector) { updateHingePositionAndAxis(); updateHingeForward(); this.selector = selector; positionAtSelection = selector.selectionRayEnd; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; // Dont remove this, needed in the inherited class this.angleOnSelection = getHingeJointAngle(); this.targetAngleOnSelection = getAngleDifferenceFromHingeForwardOnStart(); this.originalJointSpring = transform.GetComponent <HingeJoint>().spring; if (!physicalSelection) { JointSpring spr = GetComponent <HingeJoint>().spring; spr.spring = 0; spr.targetPosition = this.originalJointSpring.targetPosition; spr.damper = this.originalJointSpring.damper; GetComponent <HingeJoint>().spring = spr; this.useGravityOriginalValue = transform.GetComponent <Rigidbody>().useGravity; transform.GetComponent <Rigidbody>().useGravity = false; } if (selectionMaterial != null) { AddMaterialToEverything(selectionMaterial); } }
public override void OnSelection(RUISWandSelector selector) { this.selector = selector; // Transform information positionAtSelection = selector.selectionRayEnd; rotationAtSelection = transform.rotation; // Selector information selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; // Dont remove this, needed in the inherited class this.originalJointDriveX = this.configurableJoint.angularXDrive; this.originalJointDriveYZ = this.configurableJoint.angularYZDrive; JointDrive jd = new JointDrive(); jd.mode = JointDriveMode.Position; jd.positionSpring = springForce; jd.maximumForce = 999; this.configurableJoint.angularXDrive = jd; this.configurableJoint.angularYZDrive = jd; if (selectionMaterial != null) { AddMaterialToEverything(selectionMaterial); } }
public virtual void OnSelection(RUISWandSelector selector) { this.selector = selector; positionAtSelection = transform.position; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (positionAtSelection - selector.selectionRay.origin).magnitude; lastPosition = transform.position; if (rigidbody) { if (continuousCollisionDetectionWhenSelected) { switchToContinuousCollisionMode = true; } rigidbodyWasKinematic = rigidbody.isKinematic; rigidbody.isKinematic = true; } if (selectionMaterial != null) { AddMaterialToEverything(selectionMaterial); } UpdateTransform(false); }
public virtual void OnSelectionEnd() { if (rigidbody) { rigidbody.isKinematic = rigidbodyWasKinematic; if (continuousCollisionDetectionWhenSelected) { switchToOldCollisionMode = true; } } if (maintainMomentumAfterRelease && rigidbody && !rigidbody.isKinematic) { rigidbody.AddForce(AverageBufferContent(velocityBuffer), ForceMode.VelocityChange); if (selector) // Put this if-clause here just in case because once received NullReferenceException { rigidbody.AddTorque(Mathf.Deg2Rad * selector.angularVelocity, ForceMode.VelocityChange); } } if (selectionMaterial != null) { RemoveMaterialFromEverything(); } this.selector = null; }
public virtual void OnSelection(RUISWandSelector selector) { this.selector = selector; // "Reset" filtered velocity by temporarily using position noise covariance of 10 updateVelocity(10, Time.deltaTime); positionAtSelection = transform.position; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (positionAtSelection - selector.selectionRay.origin).magnitude; lastPosition = transform.position; if (rigidbody) { if (continuousCollisionDetectionWhenSelected) { switchToContinuousCollisionMode = true; } rigidbodyWasKinematic = rigidbody.isKinematic; rigidbody.isKinematic = true; } if (selectionMaterial != null) { AddMaterialToEverything(selectionMaterial); } UpdateTransform(false); }
private void ReInitialize() { Log("(Re)Initializing"); selector_ = null; scalerSelector = null; originalDistanceBetweenSelectors = -1.0f; originalScale = transform.localScale; }
public void Awake() { rotationFilter = new KalmanFilteredRotation(); rotationFilter.skipIdenticalMeasurements = true; rotationFilter.rotationNoiseCovariance = rotationNoiseCovariance; bodyTrackingDeviceID = (int)bodyTrackingDevice; RUISGestureRecognizer[] gestureRecognizerScripts = GetComponents <RUISGestureRecognizer>(); foreach (RUISGestureRecognizer script in gestureRecognizerScripts) { if (script.ToString() != gestureSelectionScriptName) { script.enabled = false; } else { gestureRecognizer = script; } } if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning(typeof(RUISGestureRecognizer) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection."); } wandSelector = GetComponent <RUISWandSelector>(); if (!wandSelector) { Debug.LogError(typeof(RUISWandSelector) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection. Disabling wand."); this.enabled = false; } PlayerLost(); }
public virtual void OnSelection(RUISWandSelector selector) { this.selector = selector; // "Reset" filtered velocity by temporarily using position noise covariance of 10 updateVelocity(10, Time.deltaTime); positionAtSelection = transform.position; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; if (snapToRay) { rayEndToPositionAtSelection = Vector3.zero; } else { rayEndToPositionAtSelection = transform.position - selector.selectionRayEnd; } //distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; distanceFromSelectionRayOrigin = 0.2F; //Debug.Log("distanceFromSelectionRayOrigin = " + distanceFromSelectionRayOrigin); lastPosition = transform.position; if (GetComponent <Rigidbody>()) { if (continuousCollisionDetectionWhenSelected) { switchToContinuousCollisionMode = true; } rigidbodyWasKinematic = GetComponent <Rigidbody>().isKinematic; GetComponent <Rigidbody>().isKinematic = true; } if (selectionMaterial != null) { AddMaterialToEverything(selectionMaterial); } UpdateTransform(false); }
public override void OnSelection(RUISWandSelector selector) { Log("ScalableSelectable#OnSelection called for " + selector); if (!this.isSelected) { this.selector_ = selector; // Only call this on first selection so the base class' selector does not change // when multi-selecting base.OnSelection(selector); } else { Log("Setting scaler selection and the original distance between the selectors"); this.scalerSelector = selector; this.originalDistanceBetweenSelectors = GetDistanceBetweenSelectors(); // Must update transform here? this.UpdateTransform(false); } }
public void Awake() { if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning("Please set a gesture recognizer for wand: " + name + " if you want to use gestures."); } wandSelector = GetComponent<RUISWandSelector>(); PlayerLost(); }
private void DisableUnneededMoveWands() { List <RUISPSMoveWand> childWands = new List <RUISPSMoveWand>(GetComponentsInChildren <RUISPSMoveWand>()); foreach (RUISPSMoveWand moveController in FindObjectsOfType(typeof(RUISPSMoveWand)) as RUISPSMoveWand[]) { if (!childWands.Contains(moveController) && (!enablePSMove || !psMoveWrapper.isConnected || moveController.controllerId >= amountOfPSMoveControllers)) { Debug.LogWarning("Disabling PS Move wand: " + moveController.name, moveController); moveController.enabled = false; RUISWandSelector wandSelector = moveController.GetComponent <RUISWandSelector>(); if (wandSelector) { wandSelector.enabled = false; LineRenderer lineRenderer = wandSelector.GetComponent <LineRenderer>(); if (lineRenderer) { lineRenderer.enabled = false; } } moveController.gameObject.SetActive(false); } } }
public void Awake() { if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning("Please set a gesture recognizer for wand: " + name + " if you want to use gestures."); } wandSelector = GetComponent <RUISWandSelector>(); PlayerLost(); }
public void Awake() { rotationFilter = new KalmanFilteredRotation(); rotationFilter.skipIdenticalMeasurements = true; rotationFilter.rotationNoiseCovariance = rotationNoiseCovariance; bodyTrackingDeviceID = (int)bodyTrackingDevice; RUISGestureRecognizer[] gestureRecognizerScripts = GetComponents<RUISGestureRecognizer>(); foreach(RUISGestureRecognizer script in gestureRecognizerScripts) { if(script.ToString() != gestureSelectionScriptName) script.enabled = false; else gestureRecognizer = script; } if (!skeletonManager) { skeletonManager = FindObjectOfType(typeof(RUISSkeletonManager)) as RUISSkeletonManager; } selectionVisualizers = new Texture2D[8]; for (int i = 0; i < amountOfSelectionVisualizerImages; i++) { selectionVisualizers[i] = Resources.Load("RUIS/Graphics/Selection/visualizer" + (i + 1)) as Texture2D; } displayManager = FindObjectOfType(typeof(RUISDisplayManager)) as RUISDisplayManager; if (!gestureRecognizer) { Debug.LogWarning( typeof(RUISGestureRecognizer) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection."); } wandSelector = GetComponent<RUISWandSelector>(); if(!wandSelector) { Debug.LogError( typeof(RUISWandSelector) + " component was not found for wand '" + name + "'." + "Add it if you want to use gesture-based selection. Disabling wand."); this.enabled = false; } PlayerLost(); }
void Awake() { psMoveController = GetComponent<RUISPSMoveWand>(); wandSelector = GetComponent<RUISWandSelector>(); }
void Awake() { psMoveController = GetComponent <RUISPSMoveWand>(); wandSelector = GetComponent <RUISWandSelector>(); }
public virtual void OnSelectionEnd() { if (GetComponent<Rigidbody>()) { GetComponent<Rigidbody>().isKinematic = rigidbodyWasKinematic; if(continuousCollisionDetectionWhenSelected) { switchToOldCollisionMode = true; } } if (maintainMomentumAfterRelease && GetComponent<Rigidbody>() && !GetComponent<Rigidbody>().isKinematic) { // rigidbody.AddForce(AverageBufferContent(velocityBuffer), ForceMode.VelocityChange); GetComponent<Rigidbody>().AddForce(filteredVelocity, ForceMode.VelocityChange); if(selector) // Put this if-clause here just in case because once received NullReferenceException { if(selector.transform.parent) { GetComponent<Rigidbody>().AddTorque(selector.transform.parent.TransformDirection( Mathf.Deg2Rad * selector.angularVelocity), ForceMode.VelocityChange); } else GetComponent<Rigidbody>().AddTorque(Mathf.Deg2Rad * selector.angularVelocity, ForceMode.VelocityChange); } } if(selectionMaterial != null) RemoveMaterialFromEverything(); this.selector = null; }
public virtual void OnSelection(RUISWandSelector selector) { this.selector = selector; // "Reset" filtered velocity by temporarily using position noise covariance of 10 updateVelocity(10, Time.deltaTime); positionAtSelection = transform.position; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; if(snapToRay) rayEndToPositionAtSelection = Vector3.zero; else rayEndToPositionAtSelection = transform.position - selector.selectionRayEnd; distanceFromSelectionRayOrigin = (selector.selectionRayEnd - selector.selectionRay.origin).magnitude; lastPosition = transform.position; if (GetComponent<Rigidbody>()) { if(continuousCollisionDetectionWhenSelected) { switchToContinuousCollisionMode = true; } rigidbodyWasKinematic = GetComponent<Rigidbody>().isKinematic; GetComponent<Rigidbody>().isKinematic = true; } if (selectionMaterial != null) AddMaterialToEverything(selectionMaterial); UpdateTransform(false); }
public virtual void OnSelection(RUISWandSelector selector) { this.selector = selector; positionAtSelection = transform.position; rotationAtSelection = transform.rotation; selectorPositionAtSelection = selector.transform.position; selectorRotationAtSelection = selector.transform.rotation; distanceFromSelectionRayOrigin = (positionAtSelection - selector.selectionRay.origin).magnitude; lastPosition = transform.position; if (rigidbody) { if(continuousCollisionDetectionWhenSelected) { switchToContinuousCollisionMode = true; } rigidbodyWasKinematic = rigidbody.isKinematic; rigidbody.isKinematic = true; } if (selectionMaterial != null) AddMaterialToEverything(selectionMaterial); UpdateTransform(false); }