みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Unityで様々なObjectにアクセスする方法

ScriptではMonoBehaviourを継承したクラスを宣言する必要があるそうです。

http://docs.unity3d.com/Documentation/ScriptReference/index.Writing_Scripts_in_Csharp_26_Boo.html

MonoBehaviourはBehaviourを、BehaviourはComponentを継承しているので、Scriptで宣言したクラスはComponentです。ComponentはGameObjectに付属するものなので、ScriptはGameObjectに付属されることで、実行されます。

Componentには、Componentが付属するGameObjectに付属するComponentを取得できる変数がたくさん用意されています。これを利用すれば、Script内でそのScriptが付属するGameObjectのTransformに

transform

という変数で一発アクセスができます。

f:id:atsuhiro-me:20151103003636p:plain:w300

Script内でTransformにアクセスする場合、 上のように階層構造のイメージで考えると、

self.gameObject.transform

(self : Script自体の参照型変数)

としないとアクセスできなさそうですが、UnityではComponentにComponentが付属するGameObjectに付属するComponentを取得できる変数を用意しているため、

transform

とするだけでアクセスできるようになっているわけです。

時々混乱するので、みー用にまとめてみました。

詳細は以下のページをご覧ください。

(2012.12.30)