けいごのなんとか

Unityユーザーとしてのブログ。ギリギリ路線走ってます。

UnityEditorInternal.InternalEditorUtilityを使う

ドキュメント化されていないUnityEditorInternal配下のInternalEditorUtilityの一部の機能を少し紹介します。

基本的に便利メソッド集的なポジションに居るのがInternalEditorUtilityクラス

InternalEditorUtility.tags

TagsManagerで設定しているタグ名を取得出来る

Unityのスクリプトで唯一取得できる方法じゃないかな

タグ名を使って何かしたい!という人が使う

タグ名をタイプセーフで使いたい

TagName.csを自動生成するときに使ってます

https://gist.github.com/anchan828/3cf9014a8493ab023925

InternalEditorUtility.layers

TagsManagerで設定しているレイヤー名を取得出来ます

今までも LayerMask.LayerToNameで引数に0~32のintを渡せばレイヤー名は取得出来ました

for文で回してコードを自分で書くより楽なのでInternalEditorUtility.layersを使ってもいいかも

InternalEditorUtility.CanConnectToCacheServer

CacheServerに接続できるかどうか

InternalEditorUtility.GetEditorAssemblyPath

UnityEditor.dllのパスを取得する

/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEditor.dll

と同じ意味

InternalEditorUtility.GetEngineAssemblyPath

UnityEngine.dllのパスを取得する

/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll

と同じ意味

InternalEditorUtility.GetExternalScriptEditor

デフォルトのスクリプトエディタのパスを取得

/Applications/Sublime Text 2.app

私はMonodevelopではなくSublimeText2を設定しています

InternalEditorUtility.GetFullUnityVersion

Unityのバージョンを取得する。MD5ハッシュ値の一部(?)も含めてる

4.0.0f7 (034d3531fec3)

InternalEditorUtility.GetIconForFile

ファイルパスからアイコンを取得する。覚えておくと便利

内部で拡張子を抽出してEditorGUIUtility.FindTextureでビルドインされているアイコンを取得してるだけ

InternalEditorUtility.GetLicenseInfo

ライセンス情報を取得する

License type: Unity Pro, Team, iPhone Pro, Android Pro
Serial number: ○○-○○○○-○○○○-○○○○-○○○○-XXXX

「About Unity...」で見れるライセンス情報と同じもの

InternalEditorUtility.GetUnityVersionDate

今使ってるUnityバージョンがいつリリースされたか。これは使わないだろうし豆知識程度で...w

InternalEditorUtility.HasAdvancedLicenseOnBuildTarget

( Proとかワンランク上のライセンスを持っているかどうか...だと思う )

InternalEditorUtility.HasAdvancedLicenseOnBuildTarget (BuildTarget.PS3)

こうするとTrueが返る

InternalEditorUtility.HasPro

プロライセンス持っているか。UnityProのこと指してる

InternalEditorUtility.IsUnityBeta

UnityEditorがβ版かどうか

InternalEditorUtility.OpenEditorConsole

エディタコンソール開く

InternalEditorUtility.OpenFileAtLineExternal

デフォルトのスクリプトエディタでテキストファイルを開く

InternalEditorUtility.OpenFileAtLineExternal ("Assets/Editor/Hoge.cs", 3);

相変わらずSublimeTextではline反応せず

InternalEditorUtility.ShowGameView

GameViewを表示させる

タブウィンドウで見えなくなっていても強制的に見えるようになる

InternalEditorUtility.unityPreferencesFolder

Preferencesのパスが取得できる

/Users/username/Library/Preferences/Unity/Editor-4.x

ここはレイアウトとSearchFilterが保存されている場所


まだいっぱいあるけど情報無いし、検証できてないのでひとまずここまで。