SceneView 内での World 座標取得
検索して出てくるコードではうまくいかなかった。Retina とかの高解像度の際のためかな? scaledPixelHeight でもだめだったけど、 EditorGUIUtility.pixelsPerPoint を使ったらうまくいった。
static StageGeneratorHelper() { SceneView.duringSceneGui += OnSceneViewGUI; stageDebugger = Object.FindObjectOfType<StageDebugger>(); } private static void OnSceneViewGUI(SceneView obj) { Event e = Event.current; Vector3 mousePosition = Event.current.mousePosition * EditorGUIUtility.pixelsPerPoint; mousePosition.y = SceneView.currentDrawingSceneView.camera.pixelHeight - mousePosition.y; mousePosition = SceneView.currentDrawingSceneView.camera.ScreenToWorldPoint(mousePosition); mousePosition.z = 0f; // 適当なものを追従させる GameObject.Find("ゲームオブジェクトの名前").transform.position = mousePosition; }
コメントを残す