テラシュールブログ

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

Unity標準クラスにメソッドを追加する方法

所謂「拡張メソッド」というものをUnityも使うことが出来る。

拡張メソッドは、要するに既にあるクラスに機能を追加する方法。
継承でも追加したり出来るが、継承すると継承元を参照しているクラスを総とっかえしなければならないので、若干面倒…といった場合に使える。


追加方法は、以下のようなメソッドを作るだけ

public static class 適当なクラス
{
public static void Method(this 拡張したいクラス self)
{
適当な処理
}
}
これで拡張したいクラスに対して void Method() が追加される。


試しにTransformクラスを拡張し、rootオブジェクトもしくは特定のタグを持つオブジェクトを親方向に探索する機能を追加してみる。

使い方はこんな感じ。

スクリーンショット 2013-12-01 23.51.08
(上の図は、子(一番右)が取得した接触判定を親(一番左)に通知する感じ。ちなみにrigidbodyが親に付いていて子はコリジョンだけ持っているケースの場合、コリジョンが複数まとめられ単一コリジョンとして扱われるので、接触判定は親に行く)



ラクガキ忍者制作秘話が参考になった