1. ExecuteInEditMode
用来让类可以在编译器模式下运行
[ExecuteInEditMode]
public class Test : MonoBehaviour
{
void Update()
{
Debug.Log("ExecuteInEditMode");
}
}
2. SerializeField
强制unity去序列化一个私有域,让它在编译器中可见
[SerializeField] private float time;
3. System.Serializable
强制unity去序列化一个类、结构体、枚举、委托,让它在编译器中可见
[System.Serializable]
public class Test
{
public string name;
public string value;
}
public Test test;
4. Tooltip
给予一个序列化元素在编译器中的描述
[Tooltip("变量描述")]
public float value;
5. Range
给予一个序列化元素数值范围
[Range(5, 100)]
public float value;
5. RequireComponent
组件需求什么其他组件
RequireComponent(typeof(ParticleSystem))
6. MenuItem
添加静态方法到工具栏
[MenuItem("Tools/打包")]
public static void Bulid()
{
Debug.Log("Build");
}
7. RuntimeInitializeOnLoadMethod
开机自启动(必须是静态类)
// 执行顺序
// 1. SubsystemRegistration
// 2. AfterAssembliesLoaded
// 3. BeforeSplashScreen
// 4. BeforeSceneLoad
// 5. AfterSceneLoad
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void OnRuntimeMethodLoad()
{
Debug.Log("运行时执行");
}
8. ExecuteAlways
在编译器下运行代码(start,update,OnGUI等)
private float slotWidth = 101;
private float slotHeight = 102;
private List _controllerDatas;
protected virtual void OnGUI()
{
Transform content = gameObject.transform.Find("Content/SafeArea");
if (content == null) return;
Vector2 WH = GetComponentInChildren().transform.GetComponent().rect.size;
float SW = slotWidth * Screen.width / WH.x;
float SH = slotHeight * Screen.width / WH.x;
if (enableTouch)
{
if (_controllerDatas == null || _controllerDatas.Count == 0)
{
_controllerDatas = new List();
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?