前言

之前写过一些关于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相关推荐

  1. Unity3D ML-Agent-0.8.1 学习三(多代理学习)

    Unity3D ML-Agent-0.8.1 学习三(多代理学习) 写的目的 多代理设置 创建目录 总结 写的目的 本篇主要接着上一篇,介绍多代理训练,思路就是将训练的环境变成预制,然后在场景中多加几 ...

  2. Unity3D插件 Doozy UI 学习(一):打开一个面板

    前言: Doozy UI是一款很不错的UI插件,里面有一整套UI视图层的框架,非常好用.而且他还有很多现成的炫酷动效,比起自己造轮子自然是方便了很多. 之前在买Unity Plus的时候官方送了一套, ...

  3. Unity3D插件 Doozy UI 学习(二):与DoozyUI的事件传递

    前言 为了能让DoozyUI与项目本身可以兼容,至少需要做到以下两点: 1.通过DoozyUI 触发一个自定义的事件(比如通过点击按钮来开始游戏). 2.通过其他模块的事件来触发DoozyUI(比如游 ...

  4. swift UI 学习 (一)

    swift UI 学习 Swift UI 简介 SwiftUI 的特点是什么 1. 声明式语法 2. 拥有更直观的新设计工具 3. 为所有的苹果设备提供原生体验 SwiftUI 代码实例 Swift ...

  5. UI学习笔记---EasyUI panel插件使用---03

    UI学习笔记---EasyUI panel插件使用---03 UI学习笔记---EasyUI panel插件使用---03 1.panel简单小例子 ------------------- 2.可以自 ...

  6. Element UI学习记录之布局

    目录 Element UI学习记录之布局 一.Layout布局 二.Container布局容器 Element UI学习记录之布局 一.Layout布局 基本概念:一行通过分割为24栅格栏进行布局,如 ...

  7. Unity3D的uniSWF插件动态加载SWF UI资源

    uniSWF能把Flash的素材像用AS3编程类似,只不过环境要在C#或者JS中编程.要是想创建一个类似Menu菜单或者像导航一样的菜单,在Unity中首先要选择摄像机,给摄像机添加MovieClip ...

  8. 如何使用深度学习识别 UI 界面组件?

    导读:智能生成代码平台 imgcook 以 Sketch.PSD.静态图片等形式的视觉稿作为输入,可以一键生成可维护的前端代码,但从设计稿中获取的都是 div.img.span 等元件,而前端大多是组 ...

  9. Ui学习笔记---EasyUI的EasyLoader组件源码分析

    Ui学习笔记---EasyUI的EasyLoader组件源码分析 技术qq交流群:JavaDream:251572072   1.问题1:为什么只使用了dialog却加载了那么多的js   http: ...

最新文章

  1. Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏
  2. R构建KNN分类器实战
  3. Linux学习之系统编程篇:ps 和 kill 命令以及父子进程间数据共享模式
  4. php is_post,PHP发送get、post请求的6种方法简明总结
  5. 别看360完成私有化 仍有三因素阻碍中概股回归
  6. 利用代码分别实现jdk动态代理和cglib动态代理_设计模式篇——代理模式详解(面试官再问你代理模式,这么回答他!)...
  7. c语言游戏小型程序代码,C语言小游戏源码
  8. 从Spice Model到模拟IC设计的心路历程
  9. Chrome的最小字体12px限制最终解决办法
  10. python怎样分析文献综述_怎么写文献综述?
  11. php数据库无法插入数据,php无法插入数据怎么办
  12. 读《啤酒与尿布》——大型超市购物篮中商品关联性分析
  13. vue设置页面背景色
  14. 【CSS】CSS中alt属性和title属性用法
  15. 折线分割平面(图文解析)
  16. adguard拦截规则存在哪里_Adguard怎么用-使用Adguard拦截广告的方法 - 河东软件园...
  17. ubuntu 16.04 安装anaconda tensorflow opencv keras openslide-python pycharm
  18. 爬虫需谨慎!那些你不知道的爬虫反爬虫套路,学起来!
  19. 时间序列分析中的 statsmodels.tsa.arima_model被抛弃了,如何解决?
  20. 制作一款可以【记录运动历史数据】的智能呼啦圈——嵌入式功能实现

热门文章

  1. uni-app +vue+微信小程序 发布线上
  2. TTMS剧院票务管理系统全网最全!!!不接受反驳
  3. openresty ngx_lua获取环境变量
  4. 大学计算机基础实验指导word,大学计算机基础实验指导全套.doc
  5. Transformer 综合讲解15-20章
  6. Python 爬虫 性能 相关( asyncio 模块 --- 高性能爬虫 )
  7. 太酷了!金山云重磅开源鎏光云游戏引擎
  8. Edge、Chrome自定义新标签页网址
  9. Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧
  10. 【深度学习】注意力机制