GetComponentに関して
gameObject.GetComponent<XXX>();した際、対象のクラスのコンポーネントが複数存在する場合は不定複数取得する場合はGetComponentsを利用
gameObject.transformには.parentや.childCountなど親子関係の情報も保持
GetComponent (XXX)だと戻り値はComponent型となるためGetComponent(XXX) as XXXとすることでXXX型として返すことが可能
GetComponent<XXX>()であればジェネリクスを用いてXXX型で返すことが可能
該当するオブジェクトがない場合はnull
interfaceを指定したい場合はGetComponent(typeof(XXX)) as XXX
GetComponentsInChildren(XXX, true)で非アクティブもヒット
(GetComponentsInChildren<XXX>(true)も同様)
Find系に関して
Find("XXX")で名前でオブジェクトを検索することが可能Find系は基本的にアクティブのみヒット
transform.Find("XXX")とすることで直下の子供だけを検索(孫以下は対象外)
非アクティブもヒット
FindObjectOfType(typeof(XXX))によってクラス名を指定して検索
名前で検索するのは重い処理
複数ヒットした場合は不定
非アクティブに関して
オブジェクトを非アクティブにする時はgameObject.SetActive(false)スクリプトを非アクティブにする時はComponent.enabled = false
0 件のコメント:
コメントを投稿