カスタムエディターを作成しているときに、クリックやマウス移動やキー入力などをシーン中の操作(ショートカット)とは別に実装を行いたい場合があります。
例えば、シーンビューでオブジェクト選択中に R キーを押すと回転を調節するハンドラに切り替わりますが、
このキー入力をカスタムエディタでキャッチしてなおかつハンドラの切り替えをさせたくないという場合です。
Javascript でいうイベントバブリングの停止的なかんじ。
これをやるのは割と簡単で、Editor クラスの OnSceneGUI メソッドをオーバーライドし、
Event.current.Use(); をコールするだけです。
public class TestCustomInspector : UnityEditor.Editor { void OnSceneGUI(SceneView sceneView) { switch (Event.current.type) { case EventType.KeyDown: if (Event.current.keyCode == KeyCode.R) { Event.current.Use(); } } } }
でも 左クリックだけはキャンセルできない みたいです。なんでだろー