GetComponentは継承を考慮してくれるっぽい
class TestA : MonoBehaviour {
...
}
class TestB : TestA {
...
}
と定義されたスクリプトを、GameObjectにアタッチし、
var a = testB.GetComponent<TestA>();
Debug.Log("testB.GetComponent<TestA>()->"+a );
var b = testB.GetComponent<TestB>();
Debug.Log("testB.GetComponent<TestB>()->"+b );
とした場合、
go.GetComponent<TestA>()->TestGameObject (TestB)
go.GetComponent<TestB>()->TestGameObject (TestB)
と、継承を考慮して返してくれる。無駄な処理を減らせる。
スクリプトは一つのGameObjectに、同じクラスでも複数アタッチできるっぽい。
var scripts = go.GetComponents<MonoBehaviour>();
で、全てのスクリプトをとってこれるっぽいな。(あんまり使い道はないが)
同じ系統のスクリプトは一つのみとかに制限する処理とか
Debug.Assert( go.GetComponents<TestA>().Length<=1 );
とかしてやればいいみたい。
放っておくと毎日何もしないので、せめて週1くらいでは何か残すぞ