Unity3D插件 Doozy UI 学习(三):UI Element
前言
之前写过一些关于DoozyUI的开发介绍,比较基础。后面用DoozyUI开发了一段时间,现在已经有了更深入的一些了解。这篇主要讲一下UI Elemenet这个脚本的使用。
正文
1、关于UI Element:
如下图所示,Doozy UI的UI Element主要有以下内容。
UI Element顾名思义,就是一个UI的最小元素。是作为打开、关闭的单位。通俗来讲,就是我们说的一个面板。
2、面板属性
hide @START :勾上后便在脚本Start时进行隐藏(移出屏幕外,并非Setactive false);
animate @START : 如果没有在开始时不隐藏,勾选这个则会播放进入动画;
disable when hidden :在隐藏时是否设置active 为 false ;
don't disable Canvas when hidden : 在隐藏时,不关闭Canvas。(不知道有啥用,一般都会让他关闭吧)
disable the Graphic Raycaster : 不启用 Graphic Raycaster组件,也就是取消点击事件。特殊面板可以选用。
auto hide : 自动隐藏,勾选后会让你填一个时间(秒)。在此时间后自动Hide;
custom start position : 设定开始位置。这个很重要!在Unity 2018 + ,由于新改了Prefab的框架,编辑Prefab是在一个单独的Scene中进行的。在使用代码实例化UI Element,打开Prefab时,极容易发生面打开后的初始位置并不是0点,因此会造成动画的各种错位(发生这种情况的根本原因我还没有定位到)!此时就要用这个属性来修改初始位置,将其调整至正确地情况。
execute layout fix : 执行缩放适应?表示从来没用过。
auto selected button after show : 在展示时自动选个物体。注意,这个并不会触发点击事件。
3、动画
这里先看一个通常的动画设置:
一般来讲,用DoozyUI做UI动画的时候,可以先从模板中选一个接近的。通过Preset Category 和 Preset Name来选择,不过这个貌似无法在编辑模式下进行预览,只有运行的时候看。
当你选择了其中一个之后,点击Load Preset就会导入一个预设。(你也可以通过New Preset 和 Delete Preset来维护你的动画预设仓库)
然后这下面的Move 、Rotate、Scale、Fade分别代表移动、选择、缩放、渐变。里面的一些参数可以根据自己的需求进行调整。
最下面可以选择声音,这个就可以在编辑器下预览了。声音仓库在Doozy UI 的 Control Panel里(Alt + D)的UI Sounds子才菜单下:
4、关于层级
从目前看来,DoozyUI并没有有效的层级管理,尤其是在用代码进行控制的时候。
我们一般都调整Canvas的属性,但是DoozyUI并没有自动修改这个Order In Layer 的方法,似乎还要自己写代码来维护。一般在预制上就要调整好层级,或者写好代码来辅助修改。否则很容易出现某个面板打开了,但是被其他面板挡住了。
后记
我感觉Doozy UI是设计给那些不会写代码的的人使用的插件,可视化操作近乎完美,但是设计到和代码进行联动的部分就充满了尴尬……
不过好在开源还能救一下。
故障排除:
1、关于面板声音,点击后报错,不播放声音的问题。
我的问题是出在QUtils.CS 的38行的问题,提示的是他Method获取报空。看了一下,他应该是旧的获取Method的方法失败了导致的,我把这一段代码修改一下就可以用了:
/// <summary>/// Plays an audioClip in the editor. This is useful for previewing a sound in the inspector./// </summary>/// <param name="clip">The AudioClip you want to play</param>public static void PlayAudioClip(AudioClip clip){if (clip == null) { return; }Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");MethodInfo method = audioUtilClass.GetMethod("PlayClip", BindingFlags.Public | BindingFlags.Static);//MethodInfo method = audioUtilClass.GetMethod("PlayClip", BindingFlags.Static | BindingFlags.Public, null, new System.Type[] { typeof(AudioClip) }, null);method.Invoke(null, new object[] { clip, 0, false });}
原方法我我注释了。
同理,按照这个方式反射获取的方法应该都不太行,遇到了都得改一改。
Unity3D插件 Doozy UI 学习(三):UI Element相关推荐
- Unity3D ML-Agent-0.8.1 学习三(多代理学习)
Unity3D ML-Agent-0.8.1 学习三(多代理学习) 写的目的 多代理设置 创建目录 总结 写的目的 本篇主要接着上一篇,介绍多代理训练,思路就是将训练的环境变成预制,然后在场景中多加几 ...
- Unity3D插件 Doozy UI 学习(一):打开一个面板
前言: Doozy UI是一款很不错的UI插件,里面有一整套UI视图层的框架,非常好用.而且他还有很多现成的炫酷动效,比起自己造轮子自然是方便了很多. 之前在买Unity Plus的时候官方送了一套, ...
- Unity3D插件 Doozy UI 学习(二):与DoozyUI的事件传递
前言 为了能让DoozyUI与项目本身可以兼容,至少需要做到以下两点: 1.通过DoozyUI 触发一个自定义的事件(比如通过点击按钮来开始游戏). 2.通过其他模块的事件来触发DoozyUI(比如游 ...
- swift UI 学习 (一)
swift UI 学习 Swift UI 简介 SwiftUI 的特点是什么 1. 声明式语法 2. 拥有更直观的新设计工具 3. 为所有的苹果设备提供原生体验 SwiftUI 代码实例 Swift ...
- UI学习笔记---EasyUI panel插件使用---03
UI学习笔记---EasyUI panel插件使用---03 UI学习笔记---EasyUI panel插件使用---03 1.panel简单小例子 ------------------- 2.可以自 ...
- Element UI学习记录之布局
目录 Element UI学习记录之布局 一.Layout布局 二.Container布局容器 Element UI学习记录之布局 一.Layout布局 基本概念:一行通过分割为24栅格栏进行布局,如 ...
- Unity3D的uniSWF插件动态加载SWF UI资源
uniSWF能把Flash的素材像用AS3编程类似,只不过环境要在C#或者JS中编程.要是想创建一个类似Menu菜单或者像导航一样的菜单,在Unity中首先要选择摄像机,给摄像机添加MovieClip ...
- 如何使用深度学习识别 UI 界面组件?
导读:智能生成代码平台 imgcook 以 Sketch.PSD.静态图片等形式的视觉稿作为输入,可以一键生成可维护的前端代码,但从设计稿中获取的都是 div.img.span 等元件,而前端大多是组 ...
- Ui学习笔记---EasyUI的EasyLoader组件源码分析
Ui学习笔记---EasyUI的EasyLoader组件源码分析 技术qq交流群:JavaDream:251572072 1.问题1:为什么只使用了dialog却加载了那么多的js http: ...
最新文章
- Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏
- R构建KNN分类器实战
- Linux学习之系统编程篇:ps 和 kill 命令以及父子进程间数据共享模式
- php is_post,PHP发送get、post请求的6种方法简明总结
- 别看360完成私有化 仍有三因素阻碍中概股回归
- 利用代码分别实现jdk动态代理和cglib动态代理_设计模式篇——代理模式详解(面试官再问你代理模式,这么回答他!)...
- c语言游戏小型程序代码,C语言小游戏源码
- 从Spice Model到模拟IC设计的心路历程
- Chrome的最小字体12px限制最终解决办法
- python怎样分析文献综述_怎么写文献综述?
- php数据库无法插入数据,php无法插入数据怎么办
- 读《啤酒与尿布》——大型超市购物篮中商品关联性分析
- vue设置页面背景色
- 【CSS】CSS中alt属性和title属性用法
- 折线分割平面(图文解析)
- adguard拦截规则存在哪里_Adguard怎么用-使用Adguard拦截广告的方法 - 河东软件园...
- ubuntu 16.04 安装anaconda tensorflow opencv keras openslide-python pycharm
- 爬虫需谨慎!那些你不知道的爬虫反爬虫套路,学起来!
- 时间序列分析中的 statsmodels.tsa.arima_model被抛弃了,如何解决?
- 制作一款可以【记录运动历史数据】的智能呼啦圈——嵌入式功能实现
热门文章
- uni-app +vue+微信小程序 发布线上
- TTMS剧院票务管理系统全网最全!!!不接受反驳
- openresty ngx_lua获取环境变量
- 大学计算机基础实验指导word,大学计算机基础实验指导全套.doc
- Transformer 综合讲解15-20章
- Python 爬虫 性能 相关( asyncio 模块 --- 高性能爬虫 )
- 太酷了!金山云重磅开源鎏光云游戏引擎
- Edge、Chrome自定义新标签页网址
- Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧
- 【深度学习】注意力机制