您当前的位置: 首页 >  unity

莉萝爱萝莉

暂无认证

  • 5浏览

    0关注

    58博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity特性-编辑器扩展

莉萝爱萝莉 发布时间:2021-05-12 10:27:24 ,浏览量:5

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             
关注
打赏
1663903574
查看更多评论
0.2532s