Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


RequiredInterfaceAttribute

When a type is marked, all interface implementations of the specified types will be marked.
Read time 4 minutesLast updated 5 days ago

Definition

[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface, AllowMultiple = true)]public class RequiredInterfaceAttribute : Attribute

Examples

using System;using UnityEngine;using UnityEngine.Scripting;public class NewBehaviourScript : MonoBehaviour{ void Start() { new Foo(); new Bar(); new Jar(); new GenericFoo<int>(); }}interface IUnused {}interface IFoo {}interface IGeneric<T> {}// Foo will retain IFoo. IUnused will be removed[RequiredInterface(typeof(IFoo))]class Foo : IFoo, IUnused {}// Bar will retain IGeneric<int> and IGeneric<double>. IGeneric<string> will be removed[RequiredInterface(typeof(IGeneric<int>))][RequiredInterface(typeof(IGeneric<double>))]class Bar : IGeneric<int>, IGeneric<string>, IGeneric<double> {}// Jar will retain IGeneric<int>, IGeneric<string>, and IGeneric<double>[RequiredInterface(typeof(IGeneric<>))]class Jar : IGeneric<int>, IGeneric<string>, IGeneric<double> {}// GenericFoo<T> will retain IGeneric<T>[RequiredInterface(typeof(IGeneric<>))]class GenericFoo<T> : IGeneric<T> {}

Inheritance

Inherited Members