C# 向下投射整个阵列
在Unity中,我试图检测对象上文本类型的所有组件C# 向下投射整个阵列,c#,unity3d,unity-ui,C#,Unity3d,Unity Ui,在Unity中,我试图检测对象上文本类型的所有组件 this.GetComponents(typeof(Text)) 但它返回一个组件数组。 因为我知道每个组件都必须是文本类型,所以我应该能够向下转换它。 我试着把它演出来 Text[] a = (Text[])this.GetComponents(typeof(Text)); 但那没用。 Text是组件的派生类,但我不知道如何向下转换数组,以便使用与Text类型关联的方法。有人能告诉我如何将数组转换为文本类型吗?您应该使用通用语法:this
this.GetComponents(typeof(Text))
但它返回一个组件数组。
因为我知道每个组件都必须是文本类型,所以我应该能够向下转换它。
我试着把它演出来
Text[] a = (Text[])this.GetComponents(typeof(Text));
但那没用。
Text是组件的派生类,但我不知道如何向下转换数组,以便使用与Text类型关联的方法。有人能告诉我如何将数组转换为文本类型吗?您应该使用通用语法:this.GetComponents()
。它返回一个文本[]
,因此不再需要强制转换。从中,您可以使用泛型方法GetComponents
,而无需键入每个强制转换
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
HingeJoint[] hinges = GetComponents<HingeJoint>();
for (int i = 0; i < hinges.Length; i++)
{
hinges[i].useSpring = false;
}
}
}
使用UnityEngine;
公共课示例:单一行为
{
void Start()
{
铰链关节[]铰链=GetComponents();
对于(int i=0;i
应该是您要查找的内容。实际上,一个游戏对象上只能有一个UIElement类型的组件。。。所以这根本不应该起作用。。。