Hoppa till innehåll

Attribut för komponenter och körordning

↑
Referens för Unity 6

Attribut på klasser beskriver komponentberoenden, beteende i editorn och önskad körordning. De förbättrar arbetsflödet men ersätter inte kontroller under körning.

Attribut Syfte Gäller för och kräver
[AddComponentMenu("…")] Ange var komponenten visas i Add Component-menyn. Class · UnityEngine
[DisallowMultipleComponent] Förhindra flera kompatibla instanser på samma GameObject. Class · UnityEngine
[RequireComponent(typeof(X))] Se till att en beroendekomponent läggs till när skriptet kopplas på. Class · UnityEngine
[ExecuteInEditMode] Kör en MonoBehaviour i redigeringsläge med den äldre metoden. Class · UnityEngine · Legacy
[ExecuteAlways] Tillåt MonoBehaviour-callbacks i redigeringsläge och Prefab Mode. Class · UnityEngine
[SelectionBase] Välj ett överordnat objekt när man klickar på dess barn i Scene-vyn. Class · UnityEngine
[HelpURL("url")] Koppla en dokumentationslänk till komponentens hjälpikon. Class · UnityEngine
[DefaultExecutionOrder(n)] Ange standardordningen för körning av en MonoBehaviour-klass. Class · UnityEngine
[AssemblyIsEditorAssembly] Markera en hel assembly som avsedd för editorn. Assembly · UnityEngine
[MovedFrom(...)] Hjälp Unity att hitta serialiserade referenser efter flytt av typ eller namnrymd. Type · UnityEngine.Scripting.APIUpdating

Ange var komponenten visas i Add Component-menyn.

Använd när: Samla egna komponenter under en lättnavigerad spelutvecklingsmeny.

Tänk på: Påverkar hur komponenten hittas, inte hur den fungerar.

Referens: Unity documentation

Förhindra flera kompatibla instanser på samma GameObject.

Använd när: Markera en scenkontroller som bara ska finnas en gång per GameObject.

Tänk på: Påverkar när komponenter läggs till; kontrollera arv om bas-klasser används.

Referens: Unity documentation

Se till att en beroendekomponent läggs till när skriptet kopplas på.

Använd när: Se till att en kontrollskript får den Collider eller Rigidbody som behövs.

Tänk på: Återställer inte löpande saknade komponenter på gamla objekt.

Referens: Unity documentation

Kör en MonoBehaviour i redigeringsläge med den äldre metoden.

Använd när: Förstå eller underhåll äldre editorskript medan du planerar en migrering.

Tänk på: Unity rekommenderar ExecuteAlways vid arbetsflöden som använder Prefab Mode.

Referens: Unity documentation

Tillåt MonoBehaviour-callbacks i redigeringsläge och Prefab Mode.

Använd när: Uppdatera säkra förhandsvisningar av objekt och prefabs utan att starta Play mode.

Tänk på: Callbacks beter sig annorlunda utanför Play mode. Skydda ändringar i scener och prefabs.

Referens: Unity documentation

Välj ett överordnat objekt när man klickar på dess barn i Scene-vyn.

Använd när: Gör det lättare att välja en hel karaktär eller maskin i Scene-vyn.

Tänk på: Påverkar val i editorn, inte inmatning vid körning eller hierarkin.

Referens: Unity documentation

Koppla en dokumentationslänk till komponentens hjälpikon.

Använd när: Länka en komplicerad komponent till dess underhållsguide.

Tänk på: Länka till en stabil HTTPS-sida som förklarar komponenten.

Referens: Unity documentation

Ange standardordningen för körning av en MonoBehaviour-klass.

Använd när: Ange en dokumenterad ordning mellan två livscykelsystem när det behövs.

Tänk på: Föredra tydliga beroenden; körordning bör inte skapa dolda kopplingar.

Referens: Unity documentation

Markera en hel assembly som avsedd för editorn.

Använd när: Underhåll en manuellt konfigurerad editorassembly; föredra asmdefs i nya projekt.

Tänk på: I vanliga Unity-projekt är ofta en asmdef med Editor som plattform enklare att underhålla.

Referens: Unity documentation

Hjälp Unity att hitta serialiserade referenser efter flytt av typ eller namnrymd.

Använd när: Flytta en serialiserbar klass eller namnrymd och hjälp Unity hitta referenserna.

Tänk på: Testa migreringen med riktiga serialiserade filer och tillhörande metadata.

Referens: Unity documentation

Unity C# | PickupSensor.cs
using UnityEngine;
[DisallowMultipleComponent]
[RequireComponent(typeof(SphereCollider))]
[AddComponentMenu("Gameplay/Pickup Sensor")]
public sealed class PickupSensor : MonoBehaviour
{
private SphereCollider trigger;
private void Awake()
{
trigger = GetComponent<SphereCollider>();
if (trigger == null)
{
Debug.LogError("PickupSensor requires a SphereCollider.", this);
enabled = false;
return;
}
trigger.isTrigger = true;
}
}

RequireComponent hjälper när skriptet läggs till första gången. Den explicita kontrollen förklarar felet om en scen eller prefab senare blir inkonsekvent. Använd ExecuteAlways bara om körning i editorn verkligen behövs.