void OnSceneGUI(SceneView sceneView) { if (Tools.current != Tool.View) { return; } Event currentEvent = Event.current; switch (currentEvent.type) { case EventType.MouseUp: { MapEditor.Click(); break; } case EventType.MouseMove: { Vector2 adjustedMousePosition = new Vector2(currentEvent.mousePosition.x, sceneView.camera.pixelHeight - currentEvent.mousePosition.y); Vector2 rawMousePosition = sceneView.camera.ScreenToWorldPoint(adjustedMousePosition); currentMousePos = new Vector3(Mathf.Floor(rawMousePosition.x) + 1f, Mathf.Floor(rawMousePosition.y)); if (currentMousePos != lastMousePos) { lastMousePos = currentMousePos; MapEditor.position = currentMousePos; } break; } case EventType.Repaint: { StackRenderer.UpdateCameraObjects(sceneView.camera); break; } } }