标题 [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("脚本已运行");
}
}








Comments | NOTHING