LoginSignup
1
0

More than 3 years have passed since last update.

Mac版Unityでエディタ上のドラッグの挙動が2017.4.28から変わっていた

Posted at

少々古い話になるが、まぁLTSとか現場によっていろいろなバージョン使っていると思うので参考になればと。

要旨:MacのUnity2017.4.28以前でドラッグのパフォーマンスが気になる場合はアップデートすると良いかも

環境

  • OS: macOS Mojave 10.14.5
  • Unity: 2017.4.8f1, 2017.4.28f1 (64bit)

検証用コード

using UnityEngine;
using UnityEditor;

public class TestWindow : EditorWindow
{
    [MenuItem("Window/TestWindow")]
    public static void Open()
    {
        var window = GetWindow<TestWindow>("Test Window");
        window.Show();
    }

    private void OnGUI()
    {
        switch (Event.current.type)
        {
        case EventType.DragUpdated:
        case EventType.DragPerform:
        case EventType.DragExited:
            Debug.Log(Event.current.type.ToString());
            break;
        case EventType.MouseDrag:
            Debug.Log(Event.current.type.ToString());
            DragAndDrop.PrepareStartDrag();
            DragAndDrop.paths = new[] { "/" };
            DragAndDrop.StartDrag("test drag");
            Event.current.Use();
            break;
        }
    }
}

変更前の挙動

例えばUnity2017.4.8f1で検証コードのウィンドウの中でドラッグを行うと、以下の2パターンが発生する。

パターン1

  • MouseDragイベントがドラッグ中も継続的に発生する
  • エディタ拡張が非常に軽いコードでも動作がカクつく

rec1.gif

パターン2

カーソルを動かしながらドラッグを始めるとこちらのパターンが発生する様だ。

  • MouseDragイベントはドラッグ開始時だけ
  • スムーズにドラッグできる
  • ドラッグが終了してからログが出る

rec2.gif

変更後の挙動

Unity2017.4.28のリリースノートに

Editor: Fixed Drag and dropping doesn't always work. (1136897)
Editor: Fixed Mouse move events affect Editor UI performance. (973842)

という項目がある。このどちらかによってドラッグの処理が改善されたらしく、一貫して下のような挙動になっている。

  • MouseDragがドラッグ中に発生しない
  • ドラッグはほぼスムーズ
  • ログはドラッグ中に出続ける

rec3.gif

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0