Я работаю с 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еще хуже.Есть ли более чистый способ реализации этого?