微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向下转换整个数组

如何解决向下转换整个数组

在 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 举报,一经查实,本站将立刻删除。