RequiredMemberAttribute
When a type is marked, all of its members with [RequiredMember] are marked.
Read time 4 minutesLast updated 6 days ago
Definition
- Type: Class
- Namespace: UnityEngine.Scripting
- Assembly: UnityEngine.CoreModule
- Inherits from: Attribute
- Implements: _Attribute
[AttributeUsage(AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Event)]public class RequiredMemberAttribute : Attribute, _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;}