Example #1
0
    void MoveHeldObject()
    {
        Vector3    targetPosition = Camera.main.transform.position + Camera.main.transform.forward * maxHoldDistance;
        RaycastHit hitInfo;
        float      minHoldDistance = 1f;

        if (Physics.Linecast(Camera.main.transform.position, targetPosition, out hitInfo, LayerMask.GetMask("Ground", "NoClip", "Default")))
        {
            float adjustedDistance = Mathf.Clamp(hitInfo.distance, minHoldDistance, maxHoldDistance);
            targetPosition = Camera.main.transform.position + Camera.main.transform.forward * adjustedDistance;
        }

        heldObject.MoveTo(targetPosition);
    }