栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity编辑器扩展的常用知识

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity编辑器扩展的常用知识

  • OnGUI函数的调用时机
    OnGUI函数在每一帧至少调用两次,OnGUI对Event事件进行响应,其中layout和repaint事件每帧至少会各执行一次.Events 类型包括鼠标点击、鼠标拖动、按下按钮、鼠标进入或退出窗口、滚轮以及以下提到的其他类型。对于每个事件,在这些脚本中均调用 OnGUI;因此每帧可能多次调用 OnGUI。 Event.current 对应于 OnGUI 调用内的“当前”事件。这些事件的发生都会导致OnGUI函数被调用.

    此外,通过官方文档发现,layout事件会先于其他任何事件发送.
    通过测试发现,无论用户如何操作导致一些事件的发生,在这之前都会导致layout事件的发生

  • 关于layout的介绍课参考该文章
    个人理解是在layout事件里设置GUI元素的布局,再在Repant事件里进行绘制.

  • 使用AnimBool以及EditorGUILayout.BeginFadeGroup来达到编辑器GUI的动画效果


  • 注意以下语句:
    m_ShowExtraFields.valueChanged.AddListener(Repaint);
    此时的value是bool类型,非true即false,一开始以为是当value的值切换的时候触发事件,以调用Repaint回调。

    通过测试发现,是当faded值发生变化时都会触发该事件.所以当在window界面点击√时,fade会从
    0通过lerp变化到1,变化的过程会触发Repaint方法的回调,Repaint会触发Event.repaint的事件,Event.repaint会导致OnGUI函数的执行.


    传入的AnimBool的fade值可以让window上的GUI达到从不显示到完全显示的动画效果.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号