Example #1
0
    private void AddFixedJointToController(ControllersGrab controller)
    {
        FixedJoint fx = controller.gameObject.AddComponent <FixedJoint>();

        fx.breakForce    = 20000;
        fx.breakTorque   = 20000;
        fx.connectedBody = rb;
    }
Example #2
0
 private void RemoveFixedJointFromController(ControllersGrab controller)
 {
     if (controller.gameObject.GetComponent <FixedJoint>())
     {
         FixedJoint fx = controller.gameObject.GetComponent <FixedJoint>();
         fx.connectedBody = null;
         Destroy(fx);
     }
 }
Example #3
0
    private void ReleaseFromController(ControllersGrab controller)
    {
        cachedTransform.SetParent(null);

        rb.useGravity  = true;
        rb.isKinematic = false;

        rb.velocity        = controller.velocity;
        rb.angularVelocity = controller.angularVelocity;
    }
Example #4
0
    public override void OnTriggerWasReleased(ControllersGrab controller)
    {
        base.OnTriggerWasReleased(controller);

        if (hideControllerModel)
        {
            controller.ShowControllerModel();
        }

        ReleaseFromController(controller);
    }
Example #5
0
    public override void OnTriggerWasPressed(ControllersGrab controller)
    {
        base.OnTriggerWasPressed(controller);

        if (hideControllerModel)
        {
            controller.HideControllerModel();
        }

        ConnectToController(controller);
    }
Example #6
0
    public override void OnTriggerWasPressed(ControllersGrab controller)
    {
        base.OnTriggerWasPressed(controller);

        if (hideControllerModelOnGrab)
        {
            controller.HideControllerModel();
        }

        AddFixedJointToController(controller);
    }
Example #7
0
    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;
    }
Example #8
0
    public override void OnTriggerWasReleased(ControllersGrab controller)
    {
        base.OnTriggerWasReleased(controller);

        if (hideControllerModelOnGrab)
        {
            controller.ShowControllerModel();
        }

        rb.velocity        = controller.velocity;
        rb.angularVelocity = controller.angularVelocity;

        RemoveFixedJointFromController(controller);
    }
Example #9
0
 public virtual void OnTriggerWasReleased(ControllersGrab controller)
 {
     currentController = null;
 }
Example #10
0
 public virtual void OnTriggerIsBeingPressed(ControllersGrab controller)
 {
 }
Example #11
0
 public virtual void OnTriggerWasPressed(ControllersGrab controller)
 {
     currentController = controller;
     Fabric.EventManager.Instance.PostEvent(grab);
 }