在Unity中,我试图检测对象上文本类型的所有组件
this.GetComponents(typeof(Text))
但是它返回一个组件数组。由于我知道每个组件都必须是text类型,所以我应该能够向下转换它。我试着把它明确地投射到
Text[] a = (Text[])this.GetComponents(typeof(Text));
但那没用。Text是一个派生类的组件,但我不知道如何向下转换数组,所以我可以使用与类型Text关联的方法。有人能告诉我如何将数组转换为Text类型的数组吗?
从文档中,您可以使用泛型方法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;
}
}
}
您应该使用通用语法:this.GetComponents<Text>()
。这将返回一个Text[]
,因此无需再进行强制转换。