Version: 2022.3

RequiredInterfaceAttribute

class in UnityEngine.Scripting

切换到手册

描述

When a type is marked, all interface implementations of the specified types will be marked.

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> {}
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961