【发布时间】:2023-03-24 11:34:01
【问题描述】:
我正在使用 Unity Engine,其中有一个基类 Component 和从它派生的多个类,包括 Transform、MeshRenderer 和我创建的许多类。
我想执行一个动作(在这种情况下 Destroy 所有非类型的组件:Transform、MeshRenderer、MeshFilter、Collider 和 BuildMenuItem)。我的基本方法如下所示:
Component[] components = obj.GetComponents<Component>();
foreach (var component in components) {
if (component is MeshFilter)
continue;
if (component is MeshRenderer)
continue;
if (component is Transform)
continue;
if (component is Collider)
continue;
if (component is BuildMenuItem)
continue;
Destroy(component);
}
在我看来,它看起来很难看,我发现缩短它的唯一方法是使用 || 运算符,但它并不能解决很多问题,而且 IMO 看起来更糟。有没有更简洁的实现方式?
【问题讨论】:
标签: c# .net code-cleanup