【Einheit】Gemeinsame Attributmerkmale

Editorfunktionen


AddComponentMenu – Komponentenmenü hinzufügen

Fügen Sie Skripte zum Menü des Unity-Editors hinzu, um Entwicklern das schnelle Hinzufügen von Komponenten im Editor zu erleichtern.

Beispiel

using UnityEngine;
[AddComponentMenu("添加组件/FollowTransform")]
public class FollowTransform : MonoBehaviour
{
}

Wirkung

Sie können das PlayerController-Skript zum Spielobjekt hinzufügen, indem Sie im Unity-Editor Komponente -> Komponente hinzufügen ->FollowTransform auswählen oder das Modell auswählen und zu Komponente hinzufügen -> Tool hinzufügen ->Der Modellkomponente folgen gehen.


ColorUsageAttribute – Farbverwendungsattribut

Verwenden Sie diese Eigenschaft für „Farbe“, um das Farbfeld und den Farbwähler so zu konfigurieren, dass der Alphawert angezeigt/ausgeblendet wird und die Farbe als HDR-Farbe oder normale LDR-Farbe behandelt wird.

Variable

HDR Wenn der Wert auf „true“ gesetzt ist, wird die Farbe als HDR-Farbe verarbeitet.
showAlpha Bei „false“ wird der Alphabalken im ColorField ausgeblendet und der Alphawert wird nicht im Farbwähler angezeigt.

Beispiel

    [ColorUsage(true, true)]
    public Color colorWithAlphaHDR;

    [ColorUsageAttribute(false, false)]
    public Color colorNoAlphaHDR;

Kontextmenü – Kontextmenü zum Hinzufügen eines Skripts

Im Inspektor des angehängten Skripts wird diese Funktion ausgeführt, wenn der Benutzer das Kontextmenü auswählt.

Dies ist nützlich, um Szenendaten aus diesem Skript automatisch einzurichten. Diese Funktion muss nicht statisch sein.

Beispiel

using UnityEngine;

public class MyScript : MonoBehaviour
{
    [ContextMenu("Do Something")]
    private void DoSomething()
    {
         Debug.Log("执行操作");
    }
}

Wirkung


ContextMenuItemAttribute – Kontextmenü für benutzerdefinierte Attribute

Fügen Sie der Methode im Inspektorfenster benutzerdefinierte Menüelementeigenschaften hinzu. Durch die Verwendung des ContextMenuItemAttribute für eine Methode können Sie im Inspektorfenster ein benutzerdefiniertes Menüelement für die Methode hinzufügen und so den Aufruf der Methode im Editor vereinfachen.

Beispiel

using UnityEngine;
 
public class MyScript : MonoBehaviour
{
   [ContextMenuItem("myReset", "ResetPosition")]//必须添加在属性自动前
    public Vector3 position;

    private void ResetPosition()
    {
        position = Vector3.zero;
    }
}

Wirkung

Klicken Sie mit der rechten Maustaste auf das Positionsattributfeld. Sie können die Option myReset sehen. Klicken Sie auf Ausführen


ExecuteAlways – führt die Klasse immer aus

Bewirkt, dass Instanzen des Skripts immer im Wiedergabemodus oder während der Bearbeitung ausgeführt werden.

Beispiel

using UnityEngine;
[ExecuteAlways]
public class MyScript : MonoBehaviour
{
    private void Start()
    {
        Debug.Log("执行");
    }
}


ExecuteInEditMode – Ausführung im Bearbeitungsmodus

Bewirkt, dass alle Instanzen des Skripts im Bearbeitungsmodus ausgeführt werden.

Beispiel

using UnityEngine;
[ExecuteInEditMode]
public class MyScript : MonoBehaviour
{
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            Debug.Log("执行");
        }
    }
}

GradientUsageAttribute – Verwendung der Verlaufsfarbe

Verwenden Sie diese Eigenschaft für Farbverläufe, um das GradientField und den Verlaufseditor so zu konfigurieren, dass Farben als HDR-Farben oder normale LDR-Farben verarbeitet werden.

Beispiel

   [GradientUsage(true)] // 使用HDR渐变
    public Gradient gradientField;
    private void Start()
    {
        Color color = gradientField.Evaluate(0.1f);
        Debug.Log(color);
    }

Wirkung


HelpURLAttribute – Benutzerdefinierte Dokument-URL

Geben Sie eine benutzerdefinierte Dokumentations-URL für eine Klasse an

Beispiel

using UnityEngine;
using UnityEditor;

[HelpURL("http://example.com/docs/MyComponent.html")]
public class MyComponent
{
}

Klicken Sie auf das kleine Fragezeichen, um den Link zu öffnen


HideInInspector – wird im Inspektor nicht angezeigt

Macht die Variable im Inspektor nicht sichtbar, sondern serialisiert.

Beispiel

  [HideInInspector]
  public  int p = 5;

MinAttribute-begrenzt den Mindestwert

Eigenschaft, die verwendet wird, um eine Float- oder Int-Variable in einem Skript auf einen bestimmten Mindestwert zu beschränken.

Beispiel

  [Min(f)]
   public  int i;

Wenn die Eingabe oder der Satz i kleiner als f ist, ist i standardmäßig f.


RequireComponent – ​​Komponenten automatisch hinzufügen

Eigenschaften fügen die erforderlichen Komponenten automatisch als Abhängigkeiten hinzu. Wenn die Komponente bereits vorhanden ist, wird sie nicht erneut hinzugefügt.

Beispiel

[RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))]
public class MyScript : MonoBehaviour
{
    private void Start()
    {
       
    }
}

Wirkung


SerializeField – private Felder anzeigen

Wird verwendet, um ein privates Feld zu markieren, damit sein Wert im Inspektorfenster angezeigt und bearbeitet werden kann. Dadurch können Entwickler die Werte dieser Felder im Unity-Editor ändern, ohne private Felder offenzulegen.

[SerializeField]
private int myValue;


Optimieren Sie das Inspektorfenster


HeaderAttribute – erstellt einen Header

Eigenschaften zum Anpassen des Inspektorfensters. Es kann verwendet werden, um eine Kopfzeile im Inspektorfenster zu erstellen und verwandte Felder zu gruppieren, um die Daten besser zu organisieren und darzustellen.

Beispiel

    [Header("设置")]
    public int health;
    public int damage;

    [Header("外观")]
    public Color color;
    public Material material;

Wirkung


InspectorNameAttribute – zeigt den benutzerdefinierten Namen an

Verwenden Sie diese Eigenschaft für eine Enumerationswertdeklaration, um den im Inspektor angezeigten Anzeigenamen zu ändern.

Beispiel

public enum ColorEnum
{
    [InspectorName("红")]
    red,
    [InspectorName("黄")]
   yellow,
    [InspectorName("蓝")]
    blue
}
public class MyScript : MonoBehaviour
{
  public   ColorEnum colorEnum;
    private void Start()
    {
        Debug.Log(colorEnum);
    }
}

Wirkung


MultilineAttribute – mehrzeiliger Text

Eigenschaften zum Bearbeiten von Zeichenfolgen über mehrzeilige Textfelder.

Beispiel

    [MultilineAttribute(5)]//5为设定行数,不填默认为3行
    public string str;

Wirkung


NonReorderableAttribute – deaktiviert die Array-Sortierfunktion

Deaktiviert die Neuordnung von Arrays oder Listen im Inspektorfenster.

Beispiel

    [NonReorderable]
    public int[] array;

RangeAttribute-Bereichseinstellung

Eigenschaft, die verwendet wird, um Float- oder Int-Variablen in einem Skript auf einen bestimmten Bereich zu beschränken.

Beispiel

    [Range(1, 6)]
    public int integerRange;
    [Range(0.2f, 0.8f)]
    public float floatRange;

Wirkung


SpaceAttribute – Abstand hinzufügen

Sie können im Inspektor einen gewissen Abstand hinzufügen.

  public  int maxHealth = 100;

    [Space(100)] // 添加10像素的间距

   public int shield = 0;


TextAreaAttribute – Textbearbeitungsbereich

Zum Bearbeiten von Zeichenfolgen über einen äußerst flexiblen und scrollbaren Bereich.

Sie können eine minimale und maximale Anzahl von Zeilen für die TextArea angeben, die je nach Textgröße erweitert wird. Wenn der Text größer als der verfügbare Bereich ist, werden Bildlaufleisten angezeigt.

Beispiel

    [TextArea(3,5)]//最小行数3最大行数5
    public string str;

Wirkung


TooltipAttribute-Feldtipp

Geben Sie QuickInfos für Felder im Inspektorfenster an.

Beispiel

[Tooltip("值在0到100之间")]
public int health = 0;

Wirkung

Supongo que te gusta

Origin blog.csdn.net/dxs1990/article/details/134379840
Recomendado
Clasificación