标题 [Header("")]

[Header("")]

添加一个标题,方便区分不同部分的变量。

 [Header("Settings")]
 public int health;
 public int damage;

空格 [Space()]

[Space()]

添加空白间隔,使得变量更易于阅读。

 [Space(10)]
 public int health;
 public int damage;

提示 [Tooltip("")]

[Tooltip("")]

添加变量的提示信息,方便开发者了解该变量的作用。

 [Tooltip("The health of the player")]
 public int health;

限制范围 [Range(min, max)]

[Range(min, max)]

用于限制变量的取值范围,设置一个最小值和一个最大值,在Inspector中会显示一个范围滑块,允许在这个范围内选择值。

 [Range(0, 100)]
 public int health;

多行文本框 [TextArea]

[TextArea]

用于在Inspector中显示一个多行文本框。

 [TextArea]
 public string description;

显示私有变量 [SerializeField]

[SerializeField]

用于将私有变量显示在Inspector中,但不允许其他脚本修改该变量。

 [SerializeField]
 private float playerHealth;

隐藏显示变量 [HideInInspector]

[HideInInspector]

用于隐藏变量在Inspector中的显示,但仍然可以在脚本中访问和修改。

 [HideInInspector]
 public bool isPlayerDead;

右键菜单 [ContextMenu]

[ContextMenu]

用于在Inspector中添加右键菜单。

 [ContextMenu("Reset Health")]
 private void ResetHealth()
 {
   health = 100;
 }

编辑模式下运行 [ExecuteInEditMode]

[ExecuteInEditMode]

标签用于在编辑模式下执行脚本。通常情况下,脚本只在运行时才会执行,但使用[ExecuteInEditMode]标签可以让脚本在编辑模式下也执行,这对于需要在编辑器中实时更新的脚本非常有用,比如自定义编辑器工具等。

 [ExecuteInEditMode]
 public class EditorScript : MonoBehaviour
 {
     private void Start()
    {
         Debug.Log("脚本已运行");
    }
 }

一个综合测试脚本

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 ​
 [ExecuteInEditMode]
 public class test : MonoBehaviour
 {
  [Header("标题")]
  [Space(10)]
  [Tooltip("限制范围")]
  [Range(0, 100)]
   public int 限制范围;
 ​
  [Tooltip("多行文本框")]
  [TextArea]
   public string 多行文本框;
 ​
  [HideInInspector]
   public int 隐藏显示变量;
 ​
  [SerializeField]
   private int 显示私有变量;
 ​
   public int xx;
  [ContextMenu("重置xx值")]
   private void 重置xx值()
  {
     xx = 100;
  }
   
   private void Start()
  {
     Debug.Log("脚本已运行");
  }
 }
 ​