如何解决向下转换整个数组
在 Unity 中,我试图检测对象上文本类型的所有组件
this.GetComponents(typeof(Text))
但它返回一个组件数组。 因为我知道每个组件都必须是文本类型,所以我应该能够将其向下转换。 我试图显式转换它
Text[] a = (Text[])this.GetComponents(typeof(Text));
但这没有用。 Text 是组件的派生类,但我不知道如何向下转换数组,以便我可以使用与文本类型关联的方法。有人可以告诉我如何将数组转换为 Text 类型之一吗?
解决方法
从 the docs 开始,您可以使用泛型方法 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[]
,因此无需再进行转换。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。