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;
}

AnimatorController を EditorScript から生成

AnimatorController を生成する際に
Activator.CreateInstance(typeof(AnimatorController);
で作ってたら保存されなかったり、ステートの追加がうまくいかなかったりとハマってしまった。
AnimatorController.CreateAnimatorControllerAtPath();
こういう右クリックから作るのと同様にいろいろデフォルトの準備をしてくれる便利なのがあったのね。。