3.3 Unity
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
无幻
这个作者很懒,什么都没留下…
展开
-
Unity Toggle 关联动画事件
原因Unity GUI 里的 Button 可以通过更改 Transition 类型为动画来关联动画事件,Toggle 组件也可以,但是这些动画事件不是 Toggle 值变化时的通知事件,所以需要专门的通知动画事件。解决简单的脚本来实现,主要是编辑器部分借鉴使用 SelectableEditor 的代码。完整代码如下:using UnityEngine;using UnityEngine.UI;...原创 2018-04-30 18:30:12 · 2108 阅读 · 0 评论 -
Unity AssetBundle 网格丢失顶点色
原因在将资源打包成 AssetBundle 进行加载时,发现有一些特效没有达到预期的效果,如下可以看到圆形的硬边:分析将这个特效资源导出到另一个工程,单独打包 AssetBundle 进行加载,发现没有问题,如下所示:对比原 AssetBundle 文件,发现特效里使用的模型因为也被其他特效使用,所以单独打成了依赖的 AssetBundle 包。然后用解包工具解包,用 3D MAX 打开,可以看到...原创 2018-05-12 15:29:40 · 3170 阅读 · 0 评论 -
Unity TextMeshPro 字库的自动生成
原因在 Unity 中使用 TextMeshPro 的文本解决方案,当要生成字库图集时,需要通过插件提供的 【Font Asset Creator】工具,但是每次都需要重新设置选项,如下所示:解决反编译编辑器查看其代码,照着其实现步骤再实现一遍,注意的是升级插件的话,也要看下实现的代码是否需要改动。另外,自动处理多个字体的部分逻辑如下: public void Update() {...原创 2018-06-30 18:37:44 · 8925 阅读 · 6 评论 -
Unity tolua 堆栈日志补充
在 Unity 中集成 tolua 框架,业务逻辑在 lua 中进行编写,日志的输出也由 lua 传递到 unity,将日志进行封装强化可以更直观的排查开发过程中的问题。Lua日志模块处理--输出日志--function log(str) if 1 >= logDebugLevel then Util.Log(traceLast(str, 3)) ...原创 2018-07-31 20:21:16 · 2616 阅读 · 0 评论 -
Unity 动画文件过渡帧的处理
原因技能镜头是直接在 3ds Max 里面跟动作一起设计的,导出到 Unity 直接进行播放。然而因为导出的动画是连续的,在中间的镜头切换时,会产生过渡帧,影响表现。解决因为 FBX 动画是只读,无法进行编辑,所以需要拷贝一份动画文件,再对这份动画文件进行编辑。另外,对于动画的旋转插值来说,切镜头肯定会出现大于 180 度的情况,所以要将插值改成欧拉角插值方式。代码地址...原创 2018-08-28 19:23:35 · 6253 阅读 · 0 评论 -
Unity 编辑器下多线程处理文件
原因在unity编辑器下打算用多线程来查找处理里面的资源,但又想阻塞主线程,防止用户操作unity,又能准确显示多线程的进度。在分析unity编辑器的使用多线程示例后,发现可以用 ManualResetEvent 信号来通知主线程。解决主线程阻塞掉,直到信号通知继续执行下面的操作。另外,保证多线程的数量跟处理器数量一致,最大化使用多线程。#region 多线程执行priva...原创 2018-09-28 21:00:24 · 4072 阅读 · 0 评论 -
Unity 资源断舍离(资源清理重复以及引用被引用查找)
在游戏制作过程,随着资源越来越多,可能存在重复的资源,也需要删除不被使用的资源,但是如果使用 Unity 的 API 去查找引用关系将会很耗时间,另外,资源都是对应使用的,比如 UI 图片只在 UI 界面上进行引用,所以不需要去查找其他地方是否引用到。原创 2018-10-31 19:24:52 · 9001 阅读 · 18 评论 -
Unity Android IL2CPP 编译报错的一种可能原因
Unity 版本 5.6.6f2在使用 Android 的 IL2CPP 时,发生编译报错,报错内容如下所示:stdout:IL2CPP error (no further information about what managed code was being converted is available)Additional information: Build a d...原创 2018-11-30 17:41:28 · 11588 阅读 · 0 评论 -
Unity TextMesh Pro 文本组件之字体图集生成工具
原因Unity 推荐使用 TextMesh Pro 来代替内置的现有文本组件如 Text Mesh 及 UI Text,因为 TextMesh Pro 可以渲染出非常清晰的文本。在使用过程中发现,发现有以下问题:TextMesh Pro 需要先生成一张静态字体图集,每当静态文字增加时,都需要打开自带的生成工具,一个参数一个参数的设置,非常麻烦,也不便于其他人员使用。每一个字体资产都会...原创 2018-12-08 11:29:14 · 5113 阅读 · 1 评论 -
Unity 在编辑器下模拟刘海屏显示
原因在实现支持刘海屏时,为了可以方便在编辑器下直观查看效果,也方便其他人员进行调整,需要可以在编辑器模拟显示刘海屏。原理模拟显示刘海屏黑边,那么就得在左右两侧动态添加两个黑色图片,来模仿刘海屏。代码了防止分辨率小于刘海屏的也开启模拟,所以添加分辨率比判断,小于一定比例不是刘海屏。/// <summary>/// 开启模拟/// </summary>publ...原创 2019-01-31 20:44:14 · 3477 阅读 · 0 评论 -
Unity TextMesh Pro 组件的 Resources 文件夹打包
在使用 Unity 开发的游戏中,避免使用 Resources 文件夹,而使用 AssetBundle 打包,但是 TextMesh Pro 组件自带了 Resources 文件夹,此时 AssetBundle 资源如果引用了它,那么就会把 TextMesh Pro 打成 AssetBundle,造成冗余。但是如果仅把 TextMesh Pro 的 Resources 文件夹改名掉,就会造成...原创 2019-02-27 19:16:41 · 4458 阅读 · 2 评论 -
Unity 识别文件名大小写不同
原因游戏工程使用GIT进行版本控制,GIT的一个特征是不对文件名大小写敏感,需要手动去对单个文件进行重名操作,若是有人不是通过重名,就无法上传。在Unity Windows 编辑器读取正常,在安卓下就有可能读取不到文件。解决若是在Windows 下也能识别到文件的真正名称就没有这个问题。增加个可以识别文件真正名称的接口,然后在读取文件的时候,判断文件名跟传入的是否大小写相同,不相同就报错。...原创 2019-03-31 15:10:33 · 2777 阅读 · 0 评论 -
Unity Sprite Packer Overview 图集总览工具
Unity Sprite Packer OverviewUnity 图集总览工具原因Unity Sprite Packer 工具当图集多的时候,切换查看图集非常不方便,也没有可以对所有图集进行总览的功能。所以增加这个小工具,来方便进行查看和跳转。示意图地址GitHub:https://github.com/akof1314/UnitySpritePackerOverview...原创 2019-04-27 11:06:26 · 634 阅读 · 0 评论 -
Unity 集成 Python 2.7 环境
原因Unity 使用 protobuf 来做网络传输和数据配置,一直使用 bat 的方式来调用生成数据,但是在 mac上无法使用,非常不便。跨平台的工具语言能够更方便进行进行不同平台的操作。使用 bat 的方式,代码难写,且难以复用。但是 Windows 下没有提供 Python 环境。Mac 平台已经自带了 Python 环境,所以只需在 Windows 环境集成 Python 环境即可。方...原创 2019-05-23 19:34:48 · 3038 阅读 · 3 评论 -
Unity TextMesh Pro 文本组件之字体图集生成工具(2018 修改)
问题Unity 项目从 5.x 升级到 2018,基于 TextMesh Pro 实现的字体图集生成工具,因为 TextMesh Pro 被 Unity 内置到引擎里,不再提供DLL,导致工具编译失败。原因代码发生了变化,字体图集生成实现调用了不开放的接口,比如:GlyphLoadFlags glyphLoadFlags = ((GlyphRasterModes)m_GlyphRender...原创 2019-06-30 12:48:54 · 2373 阅读 · 0 评论 -
Unity 2018 渐进式光照系统可能引起的闪退
现象在使用 Unity 2018 开发项目的时候,某个场景在停止游戏的时候,会导致有些人的 Unity 闪退掉,另外有些会报错,错误如下:OpenCL GPU device GeForce GTX 750 from NVIDIA Corporation has less than 2 GB of global memory, ignoring device for lightmapping....原创 2019-07-30 20:23:10 · 3602 阅读 · 0 评论 -
Unity 控制台 Console 插件增强显示
Unity-ConsoleTinyConsole Tiny 是一个 Unity 编辑器 console 窗口的有力替代品。功能文本搜索过滤多行日志显示颜色标识的调用堆栈双击堆栈进行跳转自定义过滤项外部 DLL 支持跳转安装Unity 5.x将UnityEditor.Facebook.Extensions.dll 放到 Assets\Editor\Unity 2...原创 2019-08-31 15:50:40 · 3314 阅读 · 4 评论 -
Unity 在安卓7+以上调用安装apk
问题Unity 游戏项目在进行大版本更新时,会自动下载apk,然后调用安装apk。然而,在安卓系统7+上调用安装apk没任何反应,查看日志为:android.os.FileUriExposedException: file:///storage/emulated/0/xxx.apk exposed beyond app through Intent.getData()原因在安卓系统7+...原创 2019-09-29 09:52:23 · 817 阅读 · 0 评论