テラシュールブログ

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

【Unity】クラス名からTypeを取得する

クラス名(文字列)からTypeを取得する方法についてです。

タイプを取得する

リフレクション等を駆使して何らかのアクションを行うエディタ拡張を作る際、名前からクラスのTypeを取得したく鳴る事があります。

その辺りを使用する場合、Unityの便利APIで、下のように取得することが出来ます。

string typeName = "UnityEngine.MonoBehaviour";
System.Type targetType = UnityEngine.Types.GetType (typeName, "UnityEngine.dll"); 
Debug.Log (targetType);

f:id:tsubaki_t1:20161125234653p:plain

 Unity 5.5以降の場合

Unity 5.5以降、Typesは使えなくなったため上記の方法ではエラーになります。
error CS0619: `UnityEngine.Types.GetType(string, string)' is obsolete: `This was an internal method which is no longer used'

 

タイプを取得したい場合、下のように記述します。

string typeName = "UnityEngine.MonoBehaviour";
System.Type targetType = System.Reflection.Assembly.Load("UnityEngine.dll").GetType(typeName);