protected virtual void OnMouseDown()
        {
            startedDragOutOfScene = !EditorSceneCameraController.Instance.PointerInside;
            if (startedDragOutOfScene)
            {
                return;
            }

            Vector3 objectDirection = Vector3.zero;

            switch (axis)
            {
            case Axis.X:
                objectDirection = transform.right;
                break;

            case Axis.Y:
                objectDirection = transform.up;
                break;

            case Axis.Z:
                objectDirection = transform.forward;
                break;
            }

            var objectOnScreenDirection = Camera.main.WorldToScreenPoint(transform.position + Vector3.ClampMagnitude(objectDirection, 0.001F));
            var objectOnScreenPosition  = Camera.main.WorldToScreenPoint(transform.position);
            var directon = objectOnScreenDirection - objectOnScreenPosition;

            normalizedDirection   = directon.normalized;
            startDistanceToObject = objectOnScreenPosition.z;

            lastMousePosition = Input.mousePosition;
            editorAxisController.SelectedAxis = axis;
            startEditSpace   = editorAxisController.EditSpace;
            canDrag          = true;
            startObjectScale = editorAxisController.SelectedObject.localScale;
        }
Example #2
0
 public override void LoadState()
 {
     base.LoadState();
     editSpace = (EditSpace)LoadInt("editSpace");
 }