selected.GetComponent()
选择的是一个GameObject,我想查找它是否具有任何组件,而不仅仅是特定的组件或类型。
答案 0 :(得分:6)
幸运的是,这很简单
Component[] allOfThem = GetComponents<Component>();
是用于“此”游戏对象,或者当然是selected.GetComponents<Component>()
用于游戏对象selected
。
所以,当你考虑它时..
Component[] stuff = GetComponents<Weapons>();
..这将为您提供属于武器的子类的所有内容。
Component[] ux = GetComponents<UnityEditor.UI.Button>();
..它将为您提供Button子类的所有内容。
Component[] stuff = GetComponents<Enemies>();
..这将为您提供敌人的子类。
所以这...
Component[] stuff = GetComponents<Component>();
将为您提供组件的一切!
除非它是Component
,否则您不能将它“附加”到游戏对象上。
答案 1 :(得分:1)
您尝试了以下方法吗?据我所知,所有组件都扩展了基础Component
类。
Component[] components = selected.GetComponents(typeof(Component));
答案 2 :(得分:0)
//ищукомпонентComp1наобъектееслиегонеттодобавляемнаобъект //подстраивайтеподвашинужды
public GameObject[] obj;
int[] numeric = new int[] {1,2,3,4 };
if (obj[0].GetComponent("Comp" + numeric[0]) == false) { obj[0].AddComponent(Type.GetType("Comp" + numeric[0])); }