Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


RequiredMemberAttribute

When a type is marked, all of its members with [RequiredMember] are marked.
Read time 4 minutesLast updated 6 days ago

Definition

[AttributeUsage(AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Event)]public class RequiredMemberAttribute : Attribute

Examples

using System;using UnityEngine;using UnityEngine.Scripting;public class NewBehaviourScript : MonoBehaviour{ void Start() { new PlayerProfile(); }}class PlayerProfile{ // Will survive managed code stripping because PlayerProfile is used [RequiredMember] public int level; // Will survive managed code stripping because PlayerProfile is used [RequiredMember] public void ResetProgress() { } // The property, property getter method, and property setter method will survive managed code stripping because PlayerProfile is used [RequiredMember] public int Score { get; set; } // The property and property getter method will survive managed code stripping because PlayerProfile is used public int HighScore { [RequiredMember] get; set; } // The property and property setter method will survive managed code stripping because PlayerProfile is used public int Coins { get; [RequiredMember] set; } // The event, the add method, and the remove method will survive managed code stripping because PlayerProfile is used [RequiredMember] public event EventHandler ProgressChanged; // Might not survive managed code stripping: without [RequiredMember], this member // is kept only if the linker detects that it's used. Mark it to guarantee it survives, // for example when it's only accessed through reflection or serialization. public int sessionCount;}class LegacyPlayerProfile{ // Will not survive stripping because LegacyPlayerProfile is not used [RequiredMember] public int level; // Will not survive stripping because LegacyPlayerProfile is not used [RequiredMember] public void ResetProgress() { } // Will not survive stripping because LegacyPlayerProfile is not used [RequiredMember] public int Score { get; set; } // Will not survive stripping because LegacyPlayerProfile is not used [RequiredMember] public event EventHandler ProgressChanged; // Will not survive stripping either. This member has no [RequiredMember], but that // makes no difference: once LegacyPlayerProfile itself is stripped, all of its members go with it. public int sessionCount;}

Inheritance

Inherited Members