テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

UnityのSceneViewにラベルやボタンを表示する

Unityのシーンビューへ線へオブジェクトの影響範囲等を記載する場合、Debug.LineやGizmoで行います。

 

その派生で、シーンビューへ文字列を表示したい場合、若干面倒ですがOnDrawGizmosOnDrawGizmosSelectedコールバック内でHandle.Labelを使用します。

HandleはUnityEditorに所属するクラスのため、使用する場合は #if UNITY_EDITOR 〜 #endif で囲むようにして下さい。

void OnDrawGizmos()
{
#if UNITY_EDITOR
        UnityEditor.Handles.Label(transform.positionname);
#endif
}

 

f:id:tsubaki_t1:20140725003752j:plain

 

よりGUIライクにしたい場合は、もっと面倒ですがSceneView.onSceneGUIDelegateを使用します。

onSceneGUIDelegateはシーンビューでGUI描画を行うメソッドを登録するイベントです。この処理にメソッドを登録することで、シーン内にGUIを記述する事が可能となります。

シーンにボタンを描画する

 

f:id:tsubaki_t1:20140725004357g:plain

なお、onSceneGUIDelegateはドキュメント化されておらず将来的に消えるか残るかは不明です。また、イベントの開放忘れでシーンビューが動かなくなったり等々、若干危険な所があります。使用する際はよく注意して下さい。

 

参考: SceneViewクラスについて