UnityEditorかなり地味ですがわかりづらいのでメモ。エディタ拡張でHandleCapのクリックイベントを取得する方法です。ソースコードいきなりですがソースコードです。}}まず、このHandleCapを識別するためのControlIdを取得する必要があります。これに関してはGUIUtility.GetControlID(FocusType.Passive)で取得することでUnityにより割り振られます。docs.unity3d.comまた、OnSceneGUIはレイアウトの前処理や描画時、マウスイベント時など様々なイベントをトリガーとして呼ばれます。これを判定するのがEvent.current.typeです。HandleCapのイベントを取る時には、上例のようにイベントがEvent.LayoutとEvent.Repaintの時の両方でHandleCapのメソッドを呼びます。(Handles.Colorの変更はRepaint時だけでも問題ないです)そしてMouseDownイベントでクリックを判定します。HandleUtility.nearestControlでクリック箇所にあるHandleのControlIdが得られるため、これを最初に発行したControlIdと比較します。これでHandleのクリックを取ることができます。他のHandleCapでも同様です。ちなみにEvent.Layoutは全てのイベントの前に行われる処理で、自動レイアウトシステムから使われるとのこと。詳細は不明ですが、Event.Layoutで処理を行わないとクリック判定が行われませんでした。docs.unity3d.comまた、Event.Repaintは描画時の処理で、ここでHandleの処理を書かないと描画がされませんでした。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。