说,我的场景中有一个游戏对象有12个组件。其中一些组件可能属于同一类型:例如,此游戏对象可能具有两个音频源。现在,我想以这样的方式为这个游戏对象添加一个C#脚本,它收集所有这些组件的名称(在列表中?),并在控制台中打印出来。我怎么能这样做?
答案 0 :(得分:2)
这样的东西?
var list = GetComponents(typeof(Component));
for(int i = 0; i < list.Length; i++)
{
Debug.Log(list[i].name);
}
答案 1 :(得分:1)
使用GetComponents
方法获取组件数组,如下所示。
Component[] components = gameObject.GetComponents(typeof(Component));
foreach(Component component in components) {
Debug.Log(component.ToString());
}
这也会显示添加到GameObject
答案 2 :(得分:0)
string text = string.Empty;
foreach(var component in myGameObject.GetComponents(typeof(Component)))
{
text += component.GetType().ToString() + " ";
}
示例输出: "text": "UnityEngine.RectTransform UnityEngine.CanvasRenderer UnityEngine.UI.RawImage UnityEngine.UI.Button DebugLayoverButton UnityEngine.Canvas UnityEngine.UI.GraphicRaycaster UnityEngine.UI.LayoutElement "