using UnityEngine;
// 这个是脚本类
public class Test : MonoBehaviour
{
public A a; // a.value会在编辑器中显示出来
}
// 这个是自定义类
[System.Serializable]
public class A
{
public int value;
}
SerializeField:私有的变量在Inspector面板上显示,但此变量的访问级别还是私有的,序列化应该还有其他的作用
Header(“标题内容”):给变量添加标题
Space(间距数值):给变量间添加间距
Tooltip(“悬停内容”):给变量添加悬停内容
Range(min,max):给int、float、double这种数字类型变量添加范围
Multiline(行数):给string类型变量设置行数
TextArea:把string类型变量在Inspector面板的显示变成一个TextArea
ColorUsage(是否可以设置透明度):如描述
FormerlySerializedAs(“原始的变量名”):用于修改变量名后,又不想造成影响(引用丢失)
CreateAssetMenu(fileName=“创建的文件名”,menuName=“层级/结构”,“order”=排序序号):在Project面板下创建一个配置文件,方便进行数据的管理(只能给类添加这个属性),继承ScriptableObject的类必须创建单独的脚本,见下面代码
using UnityEngine;
[CreateAssetMenu(fileName = "PlayerData", menuName = "创建配置文件/Player/创建玩家信息")]
public class Test : ScriptableObject
{
[Header("速度")]
public int speed;
}
MenuItem(“层级/结构 [快捷键]”,priority = 优先级):为工具栏提供自定义按钮(使用MenuItem属性还可以为Inspector面板组件的小齿轮下增加按钮:[MenuItem(“CONTEXT/脚本名/新增的按钮名”)])
AddComponentMenu(层级/结构):将此脚本添加到组件栏中(只能给类添加这个属性)
RequireComponent(typeof(添加的组件)):添加此脚本时如果没有Require的组件则自动添加(只能给类添加这个属性)
ContextMenu(“自定义的操作名”)或MenuItem(“CONTEXT/脚本名/新增的按钮名”):为Inspector面板的小齿轮下增加按钮(只能给方法添加这个属性)
MenuCommand:再了解一下,和MenuItem配合使用
ContextMenuItem(“操作名”, “执行的方法名”):为字段添加一个右键菜单,执行一个此类中的方法(只能给字段添加这个属性),见下面的代码
public class Test : MonoBehaviour
{
[ContextMenuItem("Mytest", "MyMethon")] // 编辑器中右键这个字段会有上下文菜单,菜单中可以执行MyMethon
public int value;
public void MyMethon()
{
Debug.Log("这是我的测试方法");
}
}
HelpURL(“url”):点击书本按钮打开所定义的url网址(只能给类添加这个属性)
DisallowMultipleComponent:使一个物体只能添加一个此脚本(只能给类添加这个属性)
ExecuteInEditMode:让此脚本在Editor模式下也能执行Start、Update、OnGUI等方法(只能给类添加这个属性)
MonoPInvokeCallback(接收的代理类型):C#(托管代码)中注册方法可以从C++/C(非托管代码)调用
DllImport(“DLL名称”):C++/C(非托管代码) 的方法可以从C#调用
总结:后面的一些很复杂,现在只是记录,后面要继续学习