超牛链AI Logo

超牛链博客: 读书|骑行|笔记分享
user
老王不响
@关于博主
2015-03-03

C#程序员整理的Unity 3D笔记(十四):Unity 3D的UGUI小结 12 mins read


春节期间,学习了一下UGUI(Unity GUI)。

UGUI是Unity 4.6新增的功能,极大了弥补Unity GUI鸡肋: OnGUI.

 

学习UGUI最好的途径是系统的推理推理官方的UGUI的demo,如Drag And Drop、Menu 3D、Draggable Panel等,这些非常有嚼头,也可以学到很多东西。

 

demo很关键:源码,学习的动力,其他都是浮云。

 

  • UGUI原生的UI组件有9个

 

  • EventSystem

交互控件,默认只有一个事件,如Button自带一个OnClick事件,其他的事件,请通过EventTrigger添加。

添加UGUI组件后,一般会自带一个事件,如Button.OnClick()

其他的事件,通过添加Event Trigger添加:

或者通过写脚本,实现17个 UGUI-EventSystem 接口来实现。

 

                • IPointerEnterHandler - OnPointerEnter - Called when a pointer enters the object
                • IPointerExitHandler - OnPointerExit - Called when a pointer exits the object
                  • IPointerDownHandler - OnPointerDown - Called when a pointer is pressed on the object
                  • IPointerUpHandler - OnPointerUp - Called when a pointer is released (called on the original the pressed object)
              • IPointerClickHandler - OnPointerClick - Called when a pointer is pressed and released on the same object
              • IInitializePotentialDragHandler - OnInitializePotentialDrag - Called when a drag target is found, can be used to initialise values
            • IBeginDragHandler - OnBeginDrag - Called on the drag object when dragging is about to begin
            • IDragHandler - OnDrag - Called on the drag object when a drag is happening
          • IEndDragHandler - OnEndDrag - Called on the drag object when a drag finishes
        • IDropHandler - OnDrop - Called on the object where a drag finishes
        • IScrollHandler - OnScroll - Called when a mouse wheel scrolls
      • IUpdateSelectedHandler - OnUpdateSelected - Called on the selected object each tick
    • ISelectHandler - OnSelect - Called when the object becomes the selected object
    • IDeselectHandler - OnDeselect - Called on the selected object becomes deselected
    • IMoveHandler - OnMove - Called when a move event occurs (left, right, up, down, ect)
  • ISubmitHandler - OnSubmit - Called when the submit button is pressed
  • ICancelHandler - OnCancel - Called when the cancel button is pressed

已知问题,在4.6.0 Win 7 64位系统下,ISubmitHandler我添加到InputField上,点击回车不会触发。

 

  • Animation & Animator

UGUI的UI动画,可以由Unity 的新、老动画配合完成。

 

新动画

老动画

*.controller

*.anim

Animator状态机

Animation录制动画

设置条件变量

成对出现

Animator.SetBool()

Animation.Play()

同GameObject

同GameObject

 

为了简化常用动画,可通过DOTween脚本和UGUI结合,轻松的实现动画。

 

  • 3种Canvas的用途

 

1 Screen Space OverLay 默认模式--静态的

2 Screen Space Camera NGUI默认效果,很酷UI,如ShowDialog等。

3 World Space -- 3D对象上用,ToolTip、血条、HUD。

 

 

  • Layout:Grid\H\V\Element

UGUI提供了4个Layout的组件,同时,结合Rect Transform的Anchors功能,方便设计复杂的UI嵌套。

布局要多练习,其核心思想和Web、流式布局类似,为了考虑多种屏幕尺寸,复杂UI要按照Grid划分好网格,再填充UI元素。

 

几个Tips:

  • Rect Transform Reset :rectT.anchoredPosition = Vector2.zero; //UGUI
  • 一个习惯,把UI的控制代码挂到**Control上独立的一个EmptyGameObject上,如_AudioControl
  • 在Image中的九宫格,如果设置Image Type:Sliced后失效,请导出你的场景为UnityPacage,再新建工程导入,则可成功九宫格了。
2015-03-03
老王 加冕为王
老王,工作了19年的软件工程师、连续创业者、Blogger(since 2013),微软.net MVP获得者(2015~2016)、 Unity3D UVP获得者 (2017)。 曾任上市公司研发主管、知名外企Social Media Marketing 。 现专注于Instagram、SEO等海外社交媒体营销技术研究与实践。 四十而立的我,有2个可爱的宝宝,喜好骑行、读书、木工, 尤其喜好历史、科幻书籍。
友情链接
超牛链 57天前 2024年3月6日 15:16

坐稳,等着笑的合不拢嘴

最新文章

超牛链AI:Ollama本地LLM LangChain RAG小试--算力为王

算力为王时代: CPU --> GPU

GPU这...
【发刊词】超牛链AI: hello world.

​公元2024年,比2023年的AI风暴,更加寒噤。

《一句顶一万句》 遇见一个能说的上话的人不易

2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...

2023个人总结: AI、骑行、青椒炒肉丝

后疫情时代,刚褪去口罩。又迎来经济消费降级,我的客户同...

热门文章

C#程序员整理的Unity 3D笔记(六):Git源码管理

对程序员而言,写的代码用源码管理系统管理起来,非常方便...

且行且思:记录一次西安城墙国际马拉松---8公里

百度搜索,输入西安城墙马拉松,有7万2千个结果。 实际...

骑行故事初心--自由的御风而行

2023年,三年疫情过后第一个春天,我开始了骑行: 空...

Unity3D for VR 学习(7): 360°全景照片

    在VR应用中,有一个相对简单的虚拟现实体验,那...

相关【技术杂谈】文章

查看所有相关【技术杂谈】文章
搭建Squid3 密码账号IP代理

上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...

不用插件,js脚本显示星号密码

不用插件,js脚本显示星号密码

以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...

执行MySQL报错

今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...