特定の条件でアクティブにしたいゲームオブジェクトがあります。一意のタグを付けて使用してみGameObject.FindObjectWithTag("Tag name").
ました。私が知る限り、このメソッドはシーン内のアクティブなゲーム オブジェクトのみを検出し、アクティブでないオブジェクトは検出しません。
非アクティブなゲームオブジェクトも検索する呼び出し可能なメソッドはありますか? (できればタグで検索してください)。
ありがとう!
いくつかの調査の結果、非アクティブなゲームオブジェクトをタグで見つける方法はないようです。
ただし、非アクティブなゲームオブジェクトにアクセスするためのソリューションが存在します:
1 - 非アクティブなゲーム オブジェクトを後で再アクティブ化する必要がある場合は、配列に格納します (実行時に非アクティブ化されたゲーム オブジェクトにのみ適用されます)。
2 - ゲーム オブジェクトを無効にしないでください。無効にしたいコンポーネントを無効にするだけです。オブジェクトを非表示にしたい場合は、レンダラーを無効にします。特定のスクリプトの場合は、そのスクリプトなどを無効にします。
このソリューションを使用すると、タグ名でゲーム オブジェクトを見つけることができます。
非アクティブを見つけることができるものgameObjects
:
transform.Find() or transform.FindChild()
transform.GetComponentsInChildren<Component>(true)
Resources.FindObjectsOfTypeAll<Component>()
FindObjectsOfTypeAll は非アクティブを検出しますが、プレハブや探していないものも検出する可能性があるため、注意が必要です。