private void AddFixedJointToController(ControllersGrab controller) { FixedJoint fx = controller.gameObject.AddComponent <FixedJoint>(); fx.breakForce = 20000; fx.breakTorque = 20000; fx.connectedBody = rb; }
private void RemoveFixedJointFromController(ControllersGrab controller) { if (controller.gameObject.GetComponent <FixedJoint>()) { FixedJoint fx = controller.gameObject.GetComponent <FixedJoint>(); fx.connectedBody = null; Destroy(fx); } }
private void ReleaseFromController(ControllersGrab controller) { cachedTransform.SetParent(null); rb.useGravity = true; rb.isKinematic = false; rb.velocity = controller.velocity; rb.angularVelocity = controller.angularVelocity; }
public override void OnTriggerWasReleased(ControllersGrab controller) { base.OnTriggerWasReleased(controller); if (hideControllerModel) { controller.ShowControllerModel(); } ReleaseFromController(controller); }
public override void OnTriggerWasPressed(ControllersGrab controller) { base.OnTriggerWasPressed(controller); if (hideControllerModel) { controller.HideControllerModel(); } ConnectToController(controller); }
public override void OnTriggerWasPressed(ControllersGrab controller) { base.OnTriggerWasPressed(controller); if (hideControllerModelOnGrab) { controller.HideControllerModel(); } AddFixedJointToController(controller); }
private void ConnectToController(ControllersGrab controller) { cachedTransform.SetParent(controller.transform); cachedTransform.rotation = controller.transform.rotation; cachedTransform.Rotate(snapRotationOffset); cachedTransform.position = controller.snapColliderOrigin.position; cachedTransform.Translate(snapPositionOffset, Space.Self); rb.useGravity = false; rb.isKinematic = true; }
public override void OnTriggerWasReleased(ControllersGrab controller) { base.OnTriggerWasReleased(controller); if (hideControllerModelOnGrab) { controller.ShowControllerModel(); } rb.velocity = controller.velocity; rb.angularVelocity = controller.angularVelocity; RemoveFixedJointFromController(controller); }
public virtual void OnTriggerWasReleased(ControllersGrab controller) { currentController = null; }
public virtual void OnTriggerIsBeingPressed(ControllersGrab controller) { }
public virtual void OnTriggerWasPressed(ControllersGrab controller) { currentController = controller; Fabric.EventManager.Instance.PostEvent(grab); }