Uinty学习记录-Inspector窗口中的可编辑变量.

Unity中,

public变量是默认可以在Inspector窗口中进行编辑的,

而protected和private变量是默认不能在窗口中进行编辑的。

加上强制序列化字段显示编辑

[SerializeField] :强制序列化字段

1
2
3
//加上强制序列化字段特性可以显示编辑
[SerializeField]//强制序列化字段
private int playerLevel = 1;

效果:

利用强制序列化字段使pulic不能显示编辑

[HideInInspector] :让public不能显示编辑

可以被显示编辑的类型

  • 大部分类型都能显示编辑,包括数组,枚举类型等。

  • 但自定义的类、结构体不支持显示编辑,需要在定义语句前加强制序列化字段 [System.Serializable] 才可以编辑

1
2
3
4
5
6
7
8
9
10
//结构体
[System.Serializable]
public struct MyStruct
{
public int age;
}
//以上为定义时的语句

//以下为创建变量语句
public MyStruct ms;//结构体

效果:

  • 字典类型无论如何都不支持显示编辑

为成员分组和添加说明

为成员分组:

[Header(“组名”)]

1
2
3
[Header("玩家属性")]
public int playerAtk;
public int playerDef;

效果:

为成员添加说明:

[Tooltip(“说明内容”)]

1
2
3
4
[Tooltip("攻击力")]
public int playerAtk;
[Tooltip("防御力")]
public int playerDef;

鼠标悬停时会显示说明

为数值设置滑条设定范围

[Range(最小值, 最大值)]

1
2
[Range(1, 10)]
public int playerLuck;

效果: