热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unityui炫酷动画_[专栏作家]Unity实用小工具或脚本—3D炫酷UI篇(一)

原标题:[专栏作家]Unity实用小工具或脚本—3D炫酷UI篇(一)一、前言最近做AR和VR的项目,经常需要用到3D的UI,特意将最近自己

原标题:[专栏作家]Unity实用小工具或脚本—3D炫酷UI篇(一)

一、前言

最近做AR和VR的项目,经常需要用到3D的UI,特意将最近自己捣鼓的这个UI的东西写下来。效果如图所示:主要的动画和素材也是借鉴了

第三方的插件“HoloUIExample”,本文主要在此资源和动画的基础上,添加了自定义的几种交互事件,并且事件采用了反射功能做到类似于unity自带的EventTrigger一样可以自由动态绑定事件接收的对象和方法。如图所示为EventTrigger的绑定事件的接收方法在面板上的操作示意图

本文当前阶段事件动态绑定的界面操作示意图如下图所示

EventTrigger主要是针对Unity自带的鼠标操作事件的处理,本文的3DUI采用了自己封装的一套鼠标交互形式,当然还是使用了射线去检测,不过其拓展性可见一斑,我们可以自己将射线定义到任何物体上,比如AR或VR的手柄上,从而进行自定义的UI交互。

二、实现过程

1、鼠标射线处理的代码如下:该脚本中处理鼠标光标悬浮进入物体和退出悬浮物体、鼠标左键单击选中以及鼠标左键双击的处理逻辑。

所有的事件处理的逻辑的代码都是通过接口“UI3D_BtnEventInterface”来完成,采用多态的形式,将继承自该“UI3D_BtnEventInterface”接口的方法进行调用。基本逻辑就是先射线检测是否是继承了“UI3D_BtnEventInterface”接口,然后调用该结构中的方法,如Hover、UnHover等等

2、下一步实现“UI3D_BtnEventInterface”的具体实现,新建一个“UI3D_BtnEvent”脚本,代码如下:

这里采用了“SendMessage”的方法,将动态绑定的对象中定义的公有方法的名称来调用具体的对象中的方法。另外,几个变量都要采用序列化,方便在编辑代码中调用和修改。

3、接下来就是在编辑器中的逻辑代码,这个会稍微复杂一点。代码如下:

三、总结

1、基本实现的Hover和UnHover的功能,以及动态绑定的自定义编辑功能

2、还有很多功能需要进一步拓展,敬请关注后续

3、现在编辑界面的逻辑也不太完善,需要进一步完善返回搜狐,查看更多

责任编辑:



推荐阅读
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
  • 本文介绍了在Linux中执行.sh脚本时出现/bin/sh^M: bad interpreter: No such file or directory异常的原因分析,并提供了两种解决方法:在Windows下进行编码格式转换,或在Linux中修改文件格式和执行权限。具体操作步骤也在摘要中给出。 ... [详细]
  • 使用HTML创建弹出框以便用户输入信息
    在做项目的过程中,我们时常需要进行一些弹框操作,比如在后台管理时需要进行的一些增删改操作,这个时候我们需要使用到弹框,或者在 ... [详细]
  • backgroundposition和长图实现鼠标悬浮动画效果
    以下图片及代码均来自京东云点击这里进入京东云思路和效果图:background-position:00可以用js动态的将长图按帧数一帧一阵的展示出来效果类似gif,红框就是可视界面 ... [详细]
  • 这篇文章主要介绍了C++实现图形界面开发Qt教程,涉及坐标函数的应用及图形界面程序设计,需要的朋友可以参考下,希望能给你带来帮助目录嵌套圆环图运行示例总结Qt是一个跨平台框架,通常 ... [详细]
  • css自适应字体样式?如果是一排文字,一个background‘red’;就搞定了。是多行的话,只有根据文字行高,用一张背景图横向重复。css样式自适应分辨率高度和宽度尽量使用百分 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • packagecom.lihong.DDPush.pms;importcom.lihong.DDPush.mybatis.Parser;importorg.junit.Test;impor ... [详细]
  • HTML制作简单首页导航
    h1大标题:李广程的作业列表查看演示地址一:http:js.lgcweb.cn查看演示备用地址:http:39.105.0.128Ja ... [详细]
  • 学习过程-京东注册的静态界面
    HTML源代码:<!DOCTYPEhtml><html><head><title>京东注册<title><me ... [详细]
  • Jq制作的页面顶部动态弹出的提示框,可以用于提示信息的显示以及通知信息的显示。Html代码 ... [详细]
  • 微软发布OneNote for WordPress插件,支持一键从OneNote获取内容发布
    微软今日发布了OneNoteforWordPress插件,该插件支持从OneNote一键获取 ... [详细]
author-avatar
手机用户2502880645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有