Описание
Когда тип отмечен, все типы, производные от этого типа, также будут отмечены.
using System;
using UnityEngine;
using UnityEngine.Scripting;
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
new Foo();
}
}
[RequireDerived]
class Foo {}
// UnusedFoo не используется, однако он переживет удаление управляемого кода из-за того, что Foo имеет атрибут [RequireDerived].
class UnusedFoo : Foo
{
// Обратите внимание, что неиспользуемые элементы UnusedFoo все равно будут удалены путем удаления управляемого кода
public static void UnusedMethod() {}
}
// Бар не используется, поэтому он будет удален управляемым удалением кода
[RequireDerived]
class Bar {}
// Поскольку Bar не используется, атрибут [RequireDerived] для Bar не имеет значения. UnusedBar также будет удален.
class UnusedBar : Bar {}