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
- Type: Class
- Namespace: UnityEngine.Scripting
- Assembly: Unity.Scripting
- Inherits from: Attribute
[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> {}