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;
}
コメントを残す