Unity3D
在 Unity3D 中使用 uGUI 实现 3D 旋转特效
本文介绍了在 Unity3D 中使用 uGUI 实现 3D 滚动视图效果的方法,通过伪 3D 技术,采用椭圆参数方程计算精灵位置,实现视觉上的3D效果。文章首先分析了需求,提出了两种实现思路:真实的 3D 制作和伪 3D 制作,并选择了后者。接着,详细阐述了基于椭圆的伪 3D 效果的核心原理,包括精灵位置和深度的计算,以及如何设置精灵的层级以营造立体感。文章还提供了具体的实现步骤和代码示例,包括初始化精灵数组、设置精灵位置和深度的代码,以及实现向前和向后翻页的功能。最后,作者提到了文章中未实现的功能,如滚动的平滑性和支持鼠标或触屏操作,以及为精灵设置不同的缩放比例以增强3D感,并鼓励读者自行探索和实现这些功能。
Unity3D
Unity3D 游戏开发之在 uGUI 中使用不规则精灵制作按钮
在这篇博客中,作者讨论了在 Unity 引擎中制作不规则按钮的方法。通过对基于多边形碰撞器和精灵像素检测两种方案的比较和研究,解决了基于多边形碰撞器的问题,并剖析了基于精灵像素检测的内部原理。作者指出精灵像素检测方法易用性更好,但存在对图片类型的限制和像素可读写要求,可能影响执行效率。技术性上作者更推崇基于多边形碰撞器的方法,因为学到了新知识并能解决实际问题,尽管在寻找算法方面耗费精力。文章深入探讨了这两种方法的优缺点,展示了对不规则按钮制作的实际操作和测试。
Unity3D
在 Unity3D 中基于订阅者模式实现事件机制
在Unity3D中,基于订阅者模式实现消息传递机制是探讨的重点。文章介绍了单例模式、委托和事件机制在不同模块间通信中的应用,重点讨论了订阅者模式和事件机制的实现方式。通过示例展示了事件机制的应用,包括使用一个通知中心类来实现事件的添加、移除和分发,以及事件数据的传递和处理。文章指出目前设计存在的问题,并提出优化建议,如改进键名设计和参数传递方式以提高扩展性和性能。
Unity3D
扩展 Unity3D 编辑器的脚本模板
Unity3D
EasyAR 尝鲜系列教程之视频播放功能的实现
EasyAR 尝鲜系列教程介绍了如何在Unity中实现视频播放功能,主要通过VideoPlayerBehaviour类来支持视频播放。作者提到了视频播放器组件的设置参数以及如何在ImageTarget下添加VideoPlayerBehaviour的子物体来实现VideoTarget。此外,作者还展示了一个自定义的VideoTargetBaseBehaviour类,通过动态创建视频组件来增强ImageTarget,使得制作识别图时更专注且方便。教程中提到了对32位操作系统下视频播放的兼容性问题,并给出了相关代码示例和配置步骤。
Unity3D
EasyAR 尝鲜系列教程之 ImageTarget 千呼万唤始出来
在这篇文章中,作者介绍了 EasyAR 的重大版本更新v1.10,开始了一个新的教程系列。文章围绕使用 Unity3D 4.6.4 版本构建一个 ImageTarget 实例展开讨论。作者解释了 EasyAR SDK 的结构,并详细介绍了常用标准接口,如 ARBuilder、ImageTargetBehaviour、VideoPlayerBaseBehaviour 等。在构建第一个 ImageTarget 项目的过程中,作者指导了 EasyAR 的初始化和制作 ImageTarget 的步骤,包括编写脚本、隐藏和显示模型、创建识别图和 Marker 等。最后作者提到了关键步骤,如填写应用程序密钥、AppID、安装运行库和配置 Android 版本等。文章配有截图展示。
Unity3D
Unity3D 游戏开发之 C++ 插件接入
本文介绍了在Unity3D中使用C++编写插件的两种方法:C++ CLR和C++ Native。C++ CLR是托管的C++代码,允许C#调用,适用于Unity3D建立在Mono上的情况;C++ Native则是传统的C++动态链接库,通过DllImport在C#中调用非托管的C++代码。详细展示了如何创建项目、编写代码并在Unity3D中调用这些插件的方法,提供了C++ CLR和C++ Native的实现示例和最终程序运行效果。
Unity3D
Unity3D 游戏开发之分页效果在 uGUI 中的实现
在这篇文章中,作者介绍了在uGUI中实现分页效果的方法。他指出uGUI在功能上不如NGUI提供丰富组件,但由于其较好的扩展性,可以通过编写脚本来增强功能。作者讨论了分页的重要性,解释了为什么需要分页,即内容无法完全展示在一页内且无法估计内容数量。他展示了使用ScrollRect、GridLayout和Mask组件实现滚动列表的方法,并探讨了在处理无限滚动时的挑战和解决方案。最后,作者通过简单的示例展示了在uGUI中实现分页效果的具体方法,包括初始化元素、绑定页面元素以及上一页和下一页的操作。整体内容强调了掌握通用技能的重要性,同时提倡在理解基础上编写代码,避免简单抄袭。
Unity3D
EasyAR 尝鲜系列教程之自定义 Marker 的实现
本文介绍了使用 EasyAR 增强现实引擎创建自定义 Marker 的过程。首先解释了 EasyAR 的基本流程,包括创建相机设备、图像追踪器和处理帧画面等步骤。然后详细说明了在 EasyAR 中如何配置自定义 Marker,通过修改 dataset.json 文件并在 Unity3D 中设置相关属性实现自定义 Marker 的创建。最后展示了如何在场景中使用自定义 Marker 并部署到手机上,实现AR效果。文章指出 EasyAR官方API 文档仍不完善,但作者将持续关注并解决相关问题,同时暗示将在未来写出更多关于自定义脚本和功能的内容。
Unity3D
EasyAR尝鲜系列教程之Hello EasyAR
该文章介绍了国产增强现实引擎EasyAR的系列教程,针对增强现实应用开发者和Unity3D游戏开发者。增强现实技术集成真实世界和虚拟世界信息,具有实时交互性,可应用于多个领域。EasyAR是免费的跨平台AR引擎,提供简单易用的开发工具,虽然文档不完整但具有巨大潜力。文章还介绍了使用EasyAR SDK的步骤和解决常见问题。
Unity3D
教你一步步实现一个虚拟摇杆
秦元培在博客中分享了使用uGUI制作虚拟摇杆的过程。虚拟摇杆由背景层和控制层构成,通过计算2D向量判断移动方向。他展示了如何编写虚拟摇杆脚本,实现了触摸事件处理和移动逻辑分离。另外,他还展示了如何在3D模式下测试虚拟摇杆,包括角色朝向和移动控制。最终展示了虚拟摇杆在手机上的实际效果。
Unity3D
在 Unity3D 中加载外部图片的两种方法
作者秦元培在其博客中分享了如何在 Unity3D 中实现从本地加载图片到游戏界面的功能,主要针对单机游戏中的实时存档需求。介绍了两种方法:1. 使用 WWW 类通过 file 协议加载本地文件,但需注意使用协程管理;2. 传统的IO方式,通过 FileStream 读取图片文件到 byte[] 数组,再利用 Texture2D 的 LoadImage 方法生成 Unity 中的 Texture2D 对象,该方法效率更高。文章还提供了详细的代码示例,包括如何将 Texture 转换为 Sprite 以供 UGUI 的 Image 控件使用。最后,作者通过测试指出 IO 方式加载速度更快,更推荐使用。
Unity3D
Unity3D 游戏开发之从 Unity3D 项目版本控制说起
在这篇文章中,作者介绍了在 Unity3D 游戏项目中进行版本控制的重要性和方法。作者指出团队合作时需要版本控制来避免代码冲突和确保项目稳定性。在 Unity3D 中,版本控制主要针对 Assets 和 ProjectSetting 文件夹,需要将项目设置为生成 .Meta 文件和将资源模式设置为 Force Text。作者提到了三种主要的版本控制方式:使用 Asset Server、Github 和 SVN,并提供了相关链接和操作指南。最后强调了建立代码提交规范和流程控制规范的重要性。1