N煎ログブログ

n番煎じと言っても過言ではない今更な、でも個人的に躓いたUnityやUE4等での開発についての云々を書いていきます

【Unity5】名前指定でAddComponent

過去『AddComponent("クラス名")』でコンポーネントを追加することができましたが、既にそれは『[使用しないでください]』と注意されるように、使用することが禁じられています。

 

じゃあ名前文字列で指定して追加するにはどうすればよいかというと、『Type.GetType(string typeName)』関数を使用します。

これは、文字列指定したクラスをType型にしてくれる関数です。

AddComponentを文字列で使用することは出来なくなりましたが、Type型で指定することは可能です。

具体的には、

using System;

(略)

this.AddComponent(Type.GetType("追加したいクラス名")) ;

で可能。

注意するべき点として、「namespace」を使用している場合は、キチンと「(namespace名).(追加したクラス名)」と書かないとnullを吐きます。

 

私だけかもしれませんが、ここ地味に躓きました。

しかもよく見れば引数の一覧?にちゃんと「Type型使えるよー」って教えてくれてるんですよね。なぜ気づけなかったのか。