15

特定の条件でアクティブにしたいゲームオブジェクトがあります。一意のタグを付けて使用してみGameObject.FindObjectWithTag("Tag name").ました。私が知る限り、このメソッドはシーン内のアクティブなゲーム オブジェクトのみを検出し、アクティブでないオブジェクトは検出しません。

非アクティブなゲームオブジェクトも検索する呼び出し可能なメソッドはありますか? (できればタグで検索してください)。

ありがとう!

4

3 に答える 3

24

いくつかの調査の結果、非アクティブなゲームオブジェクトをタグで見つける方法はないようです。

ただし、非アクティブなゲームオブジェクトにアクセスするためのソリューションが存在します:

1 - 非アクティブなゲーム オブジェクトを後で再アクティブ化する必要がある場合は、配列に格納します (実行時に非アクティブ化されたゲーム オブジェクトにのみ適用されます)。

2 - ゲーム オブジェクトを無効にしないでください。無効にしたいコンポーネントを無効にするだけです。オブジェクトを非表示にしたい場合は、レンダラーを無効にします。特定のスクリプトの場合は、そのスクリプトなどを無効にします。

このソリューションを使用すると、タグ名でゲーム オブジェクトを見つけることができます。

于 2013-04-23T12:12:54.050 に答える
3

非アクティブを見つけることができるものgameObjects:

transform.Find() or transform.FindChild()
transform.GetComponentsInChildren<Component>(true)

Resources.FindObjectsOfTypeAll<Component>()
于 2015-07-25T05:58:40.187 に答える
1

FindObjectsOfTypeAll は非アクティブを検出しますが、プレハブや探していないものも検出する可能性があるため、注意が必要です。

于 2013-06-12T19:07:35.187 に答える