首页 > 解决方案 > 如何获取动态确定类型的 GetComponentsInChildren?

问题描述

我有一个由许多其他类扩展的通用类型“敌人”。所以我System.Type t = objectInQuestion.GetType()可以确定一个特定的“敌人”是什么“类型”。知道类型后,我想在某个区域搜索更多该特定类型。

所以我想做一个GetComponentsInChildren<t>(). 不过,我不能简单地将返回值扔到t模板括号<t>中。我该怎么做呢?

谢谢!

标签: c#unity3d

解决方案


除非有人知道如何根据需要直接使用动态类型获取列表,否则我认为最好的解决方法如下。

Enemy[] enemies = someObject.GetComponentsInChildren<Enemy>();
foreach (Enemy e in enemies)
{
    if e.GetType() == objectInQuestion.GetType()
    {
        DoAThing(e); // Or add e to a list or whatever
    }
}

推荐阅读