Attribut för komponenter och körordning
↑Kortfattat
Section titled “Kortfattat”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.
Snabbreferens
Section titled “Snabbreferens”| 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 |
Så väljer du
Section titled “Så väljer du”[AddComponentMenu("…")]
Section titled “[AddComponentMenu("…")]”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
[DisallowMultipleComponent]
Section titled “[DisallowMultipleComponent]”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
[RequireComponent(typeof(X))]
Section titled “[RequireComponent(typeof(X))]”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
[ExecuteInEditMode]
Section titled “[ExecuteInEditMode]”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
[ExecuteAlways]
Section titled “[ExecuteAlways]”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
[SelectionBase]
Section titled “[SelectionBase]”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
[HelpURL("url")]
Section titled “[HelpURL("url")]”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
[DefaultExecutionOrder(n)]
Section titled “[DefaultExecutionOrder(n)]”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
[AssemblyIsEditorAssembly]
Section titled “[AssemblyIsEditorAssembly]”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
[MovedFrom(...)]
Section titled “[MovedFrom(...)]”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
Beskriv beroenden
Section titled “Beskriv beroenden”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.
