Пример #1
0
    private void StartDragging(MuscleJoint joint)
    {
        _isDragging = true;

        if (_ikHierarchy != null)
        {
            DestroyHierarchy(_ikHierarchy);
        }

        _jointHierarchy    = IKSolver.GetHierarchy(joint);
        _ikHierarchy       = IKSolver.CopyHierarchy(_jointHierarchy);
        _ikTarget.position = joint.transform.position;
        _ikTarget.rotation = joint.transform.rotation;

        Vector3 screenSpacePosition = _camera.GetComponent <Camera>().WorldToScreenPoint(joint.transform.position);

        _dragDepth = screenSpacePosition.z;
        Vector3 cursorPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpacePosition.z);

        _dragOffset = joint.transform.position - _camera.GetComponent <Camera>().ScreenToWorldPoint(cursorPosition);
    }