タイプを知らずにコンポーネントを無効にするにはどうすればよいですか? 私はこれが最高ですが、コンポーネントにはenabled
オプションがありませんか?タイプを知らなくてもコンポーネントを無効にする
Component[] tmpComponents = tmpGO.GetComponents <Component>();
foreach (Component tmpComponent in tmpComponents)
{
if (tmpComponent.GetType() != Transform && tmpComponent.GetType() != MeshRenderer)
{
tmpComponent.enabled = false; <= ???
}
}
私も
tmpGO.GetComponent <tmpComponent.GetType()>().enabled = false;
を試してみましたしかし、それは動作しませんでした。
更新: 私はこれを試していますが、今は違う長さを与えています。
Component[] components = tmpGO.GetComponents <Component>();
Behaviour[] behaviours = tmpGO.GetComponents <Behaviour>();
for (int x = 0; x < components.Length; x++)
{
if (components[x].GetType() != typeof (Transform) && components[x].GetType() != typeof (MeshRenderer))
{
Debug.Log (components.Length);
Debug.Log (behaviours.Length);
//behaviours [x].enabled = false;
}
}
動作を要求しても有効にできるコンポーネントの完全なリストが表示されないため、これは機能しません。
[OK]を、どうやってタイプを比較しますか?私はすべてを無効にする必要がある場合は、私だけでなく、ゲームオブジェクトを無効にする可能性がありますか? – user3014330
@ user3014330特定のタイプのコンポーネントだけが必要な場合は、通常は 'GetComponents'型の引数でフィルタリングします。どんな型を指定しても、その型のコンポーネントだけを返します。 – rutter
さて、私の目標は、ビルドシステムのように、スクリーンに置かれた後に主にスクリプトを再び有効にすることでした。 私はを使用して終了しますが、構成要素が何もしなくても無効にすることはできないと嘆いています。 –
user3014330