热门标签 | 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、现在编辑界面的逻辑也不太完善,需要进一步完善返回搜狐,查看更多

责任编辑:



推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文详细介绍了流编辑器sed中的G、H、g、h命令,探讨了它们的工作原理及应用场景。通过实例解析和图解分析,帮助读者掌握这些高级命令的使用方法。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 开发笔记:精通 CSS 第 10 章 变换过渡与动画 学习笔记
    开发笔记:精通 CSS 第 10 章 变换过渡与动画 学习笔记 ... [详细]
  • 使用Bootstrap创建响应式渐变固定头部导航栏的方法
    本文详细介绍了如何利用Bootstrap框架构建一个具有渐变效果的固定顶部响应式导航栏,包括HTML结构、CSS样式以及JavaScript交互的完整实现过程。适合前端开发者和学习者参考。 ... [详细]
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社区 版权所有