Unity programmering tricks
När det gäller programmering i Unity finns det en uppsjö av användbara sökord och kommandon för programmering för att förbättra arbetsflödet och hastigheten i redigeraren upp utvecklingsprocessen.
Några av nyckelorden är dedikerade till felsökning, medan andra är utformade för att skilja editorlogiken från skriptlogiken.
1. '[SerializeField]' Attribut
Som standard döljer Unity privata variabler från inspektören, men genom att lägga till ett '[SerializeField]'-attribut före dem kommer de att bli konfigurerbara i inspektören samtidigt som de håller dem oåtkomliga från andra skript.
[SerializeField]
private int myPrivateVariable;
2. '[HideInInspector]' och '[System.NonSerialized]' attribut
Både '[HideInInspector]' och '[System.NonSerialized]' attribut har en liknande funktion, för att dölja offentliga variabler från inspektören, men de skiljer sig något åt vad gäller serialisering.
Skillnaden mellan '[HideInInspector]' och '[System.NonSerialized]' är att '[HideInInspector]' bara kommer att dölja variabeln för inspektören, men Unity kommer att fortsätta serialisera den (vilket innebär att standardvärdet kan vara annorlunda än den som tillhandahålls i koden), '[System.NonSerialized]' å andra sidan, kommer inte bara att dölja variabeln för inspektören utan kommer också att signalera Unity att inte serialisera den (vilket innebär att standardvärdet återställs mellan sessionerna till den som anges i koden).
[HideInInspector]
public int myInternalVariable = 0; //Will always be 0 after the first initialization, so if you decide to change the value in the script, it may not always reflect in the Editor. Often used to remove clutter from the inspector.
[System.NonSerialized]
public int myNonSerializedVariable = 1; //The initial value will always be 1, or whatever value is set. Often used to mimic a private variable, while keeping it accessible from within other scripts.
3. '[ExecuteAlways]' Attribut
'[ExecuteAlways]' tvingar skriptet att köras i redigeringsläge och Prefab redigeringsläge, även när spelet inte spelas. Detta kan vara användbart för test- och felsökningsändamål.
Attributet läggs till före klassdeklarationen:
[ExecuteAlways]
public class MyScript : MonoBehaviour {
// ...
}
4. 'Debug.Break()'
'Debug.Break()' pausar redigeraren.
Denna funktion är användbar när du vill kontrollera vissa värden i inspektören och du inte kan pausa den manuellt.
void Update() {
if (someCondition) {
Debug.Break();
}
}
5. '[Range]' Attribut
Attributet '[Range]' låter dig skapa ett skjutreglage i editorn för en public float- eller int-variabel, vilket kan vara användbart för att justera värden på språng, på ett mer användarvänligt sätt. Ange bara min- och maxvärden, så här:
[Range(0f, 1f)]
public float myFloatVariable;
Kommentera nedan dina favoritprogrammeringstips och tricks i Unity.