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; }
public override void LoadState() { base.LoadState(); editSpace = (EditSpace)LoadInt("editSpace"); }