本文仅供学习记录,如有任何侵权行为立即删除!
Inspector的扩展
※ ※ ※ [Header] 标头属性
在代码中声明:
[Header("名称")]
public string roleName;//人名
public string desc;//人物介绍
[Header("角色属性")]
public float hp;//血量
public float mp;//法力值
public float speed;//移动速度
public float atk;//攻击力
public float def;//防御力
编辑器中出现的效果:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxyMZpHW3VkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwIjM5MzM0cTM3EDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
※ ※ ※ [Tooltip] 提示信息
在代码中声明:
[Header("名称")]
[Tooltip("该角色在游戏中的名称")]
public string roleName;//人名
[Tooltip("角色的描述信息")]
public string desc;//人物介绍
把鼠标长时间放在变量名上 会 出现的效果:
※ ※ ※ [Space] 添加空行
在代码中声明:
[Header("名称")]
[Space]
[Tooltip("该角色在游戏中的名称")]
public string roleName;//人名
public string nickName;//昵称
[Space]
[Tooltip("角色的描述信息")]
public string desc;//人物介绍
在编辑器Inspecter面板上出现的效果:
※ ※ ※ [Range()] 规定范围
在代码中声明:
[Header("角色属性")]
[Space]
[Range(0,10000)]//hp的取值范围是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移动速度
public float atk;//攻击力
public float def;//防御力
在编辑器Inspecter面板上出现的效果:
※ ※ ※ [SerializeField] 序列化字段
下面代码中的level字段是私有的。添加此标签可在inspecter面板中显示
[Header("角色属性")]
[Space]
[Range(0,10000)]//hp的取值范围是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移动速度
public float atk;//攻击力
public float def;//防御力
[SerializeField]//序列化字段
private int level;//等级
编辑器中的效果:
※ ※ ※ [HideInInspector] 隐藏字段
下面代码中的exp字段是公开的。添加此标签可在inspecter面板中隐藏
[Header("角色属性")]
[Space]
[Range(0,10000)]//hp的取值范围是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移动速度
public float atk;//攻击力
public float def;//防御力
[SerializeField]//序列化字段
private int level;//等级
[HideInInspector]//隐藏exp字段
public int exp;//经验
编辑器中的效果:
※ ※ ※ [TextArea] 设置文本区域
在 string 变量上添加此标签,可编辑写入区域的大小
如下代码中在desc变量上添加了此标签后
[Header("名称")]
[Space]
[Tooltip("该角色在游戏中的名称")]
public string roleName;//人名
[Tooltip("该角色的昵称")]
public string nickName;//昵称
[Space]
[TextArea(0,30)]
public string desc;//人物介绍
在编辑器中的效果
※ ※ ※ OnValidate() 验证数据的函数(贼实用)
在一个类中声明一些变量,想要对这些变量进行验证的时候可以使用。(之后对类的变量做出修改的才会调用该函数)示例代码如下
public class Role : MonoBehaviour
{
public List<int> nums;
public int hp;
private void OnValidate()
{
while (nums.Count > 2)
{
nums.RemoveAt(nums.Count - 1);
}
if (hp > 100) hp = 100;
if (hp < 0) hp = 0;
}
}
在代码中:规定的nums集合的长度和hp的赋值范围。
在编辑器中改变nums时,他的长度最多为2;给hp赋值时,value如果大于100那么hp就是100,value如果小于0,那么hp就是0.
按下回车键之后
菜单栏的扩展
※ ※ ※ [AddComponentMenu] 组件添加菜单中
该标签声明在类上面,把类添加到菜单路径中
[AddComponentMenu("MyScripte/Role")]
public class Role : MonoBehaviour
{
}
编辑器中的效果: