Unity功能与问题解决
文章平均质量分 77
介绍Unity的各种功能和遇到问题的解决办法
阿赵3D
十五年以上游戏开发经验,曾编写多个游戏前端框架,实现多种游戏核心玩法和战斗,熟悉各种美术资源处理、美术效果实现、美术性能优化
展开
-
Unity引擎材质球残留贴图引用的处理
这次来分享一下Unity引擎材质球残留贴图引用的处理原创 2024-10-30 10:30:00 · 1104 阅读 · 0 评论 -
Unity编辑器制作多级下拉菜单
Unity编辑器制作多级下拉菜单原创 2024-10-23 10:15:00 · 1666 阅读 · 0 评论 -
Unity引擎的SpriteAtlas图集功能使用介绍
图集功能,对于制作游戏的朋友应该是很熟悉的。它可以把多张散图合并在一张大图里面,在实际渲染的时候,可以极大的减少DrawCall数量。Unity引擎对于UI图集打包有2种方式,分别是旧版本的Sprite Packer和新版本的Sprite Atlas。原创 2024-10-16 10:27:42 · 1104 阅读 · 0 评论 -
Unity引擎的GUID
在美术同事提交完了一个特效之后,有些人的电脑看,是对的,但有些人的电脑看却是丢图的。这样的情况,一般都是因为某个资源的GUID出问题了。原创 2024-09-27 10:15:00 · 945 阅读 · 0 评论 -
Unity引擎绘制多边形属性图
在制作游戏的时候,经常会遇到需要绘制多边形属性图的需求,比如这种效果:可以根据需要的属性的数量变化多边形的边数,然后每一个顶点从中心点开始到多边形的顶点的长度代表了该属性的强度,然后多个属性的顶点连接起来形成一个多边形图形。原创 2024-09-20 10:15:00 · 884 阅读 · 0 评论 -
Unity引擎UGUI上特效处理重叠和裁剪问题的多种解决办法
之前我介绍了一下使用MaskableGraphic的方式把粒子特效渲染在UI上,把粒子特效当Image用。实际上解决类似的问题,是有很多手段的,这些手段各有优缺点,实现的难度也各有不同,这篇文章不会很详细的列举代码,但可以从思路上分享一下。原创 2024-06-18 15:00:00 · 1986 阅读 · 0 评论 -
Unity引擎在UI上渲染粒子播放
在UI上面显示粒子特效,如果把粒子系统直接拖到Canvas里面,会存在很多问题,比如层级问题、裁剪问题等。这里分享一种用UIVertex来显示粒子特效的方法。原创 2024-06-14 15:00:00 · 1550 阅读 · 2 评论 -
Unity中图片和Base64字符串之间的转换
这次来讲一下在unity引擎里面,图片和base64字符串的互相转换问题。原创 2024-04-13 15:00:00 · 2239 阅读 · 0 评论 -
Unity的PlayerPrefs管理工具
一个管理PlayerPrefs的Unity工具,附带源码原创 2024-03-16 14:19:10 · 476 阅读 · 0 评论 -
Unity的AssetBundle资源运行内存管理的再次深入思考
这篇文章我想写了很久,是关于Unity项目使用AssetBundle加载资源时的内存管理的。这篇文章不会分享代码,只是分享思路,思路不一定正确,欢迎讨论。原创 2024-03-16 14:17:48 · 2034 阅读 · 1 评论 -
Unity转换字符串中文繁简体
这里来分享一下Unity转换字符串繁简体中文的问题。原创 2024-03-12 22:32:52 · 695 阅读 · 2 评论 -
MUMU模拟器12连logcat的方法
MUMU模拟器12连logcat的方法似乎改变了,记录一下方便查询原创 2024-03-07 22:30:00 · 1781 阅读 · 0 评论 -
Unity获取系统语言
在使用Unity引擎做多语言的游戏时,很有可能需要根据用户的手机或者电脑的当前语言来设置游戏的默认语言。Unity的API里面默认就有可以获取系统语言的方法:原创 2024-01-11 22:39:03 · 1356 阅读 · 0 评论 -
Unity使用打成图集的Sprite作为模型贴图使用的问题
有时候用Unity引擎做项目的时候,会遇到这样的需求,美术做了一些模型或者特效,然后策划想在游戏运行的时候,读取一些游戏图标放在特效或者模型上面当做贴图使用。不过有时候在编辑器运行的效果和实际打包之后运行的效果不一致,这里来说明一下。原创 2023-12-05 23:11:06 · 1304 阅读 · 0 评论 -
Unity控制程序退出
最近把公司的游戏发布到各种PC的游戏大厅,遇到了挺多奇怪的需求。之前介绍了一些Unity发布PC端控制窗口最大最小化、修改exe信息等问题,这次来探讨一下退出游戏的问题。原创 2023-09-05 23:11:23 · 2238 阅读 · 0 评论 -
控制Unity发布的PC包的窗体
用Unity发布PC包接入某些渠道时,有时候会收到一些特殊的需求,比如控制窗口最大化(比如某些情况强制显示窗体)、最小化(比如老板键)、强制规定窗体置顶等。虽然我一直认为这些需求都是流氓软件行为,但作为一个弱小的技术人员,别人有规定,我也只能去做。所以这里分享一下一些简单的控制窗体的方法。原创 2023-08-23 23:11:29 · 930 阅读 · 1 评论 -
修改Unity发布的pc包exe文件的属性信息
修改Unity发布的pc包exe文件的属性信息原创 2023-08-22 23:12:25 · 1990 阅读 · 0 评论 -
Unity的TimeScale的影响范围分析
Unity提供了Time这个类,来控制时间。Time.timeScale时间缩放这个属性可以整体的加快或者减慢甚至暂停Unity里面动画播放。不过这个TimeScale,也是会引起一些问题的,所以在使用之前,必须对它的影响范围原创 2023-08-17 23:56:37 · 882 阅读 · 0 评论 -
解决Unity的PostProcess奇怪报错
在场景里面添加某一个后处理效果后立刻修改它的layer,当这个后处理的PostProcessVolume对象被删除时,Unity会疯狂报错,这里提供了报错的原因和解决的办法原创 2023-07-08 08:28:24 · 1323 阅读 · 0 评论 -
解决UGUI的图集导致Shader采样时UV错误的问题
解决UGUI的图集导致Shader采样时UV错误的问题原创 2023-06-14 23:22:16 · 1993 阅读 · 0 评论 -
编译tolua——4、更新luaJit
重新编译tolua,升级luaJIT,解决安卓11以上bad light userdata pointer的问题原创 2023-06-10 17:05:02 · 1525 阅读 · 0 评论 -
编译tolua——3、以pbc为例子,添加第三方库
用添加pbc为例,看看怎样往tolua里面添加其他的第三方库原创 2023-06-10 16:22:16 · 1592 阅读 · 0 评论 -
编译tolua——2、基础编译tolua
tolua的各个常用平台的编译原创 2023-06-10 09:37:12 · 1417 阅读 · 0 评论 -
编译tolua——1、编译工具和环境说明
说一下编译tolua需要的工具和环境,源码的下载,还有文件夹的说明。原创 2023-06-08 23:21:26 · 1160 阅读 · 0 评论 -
Unity解决在摄像机上面设置了TargetTexture后获取屏幕坐标不准的问题
Unity解决在摄像机上面设置了TargetTexture后获取屏幕坐标不准的问题原创 2023-05-16 23:08:28 · 1423 阅读 · 0 评论 -
Unity的UGUI避免行的开头出现符号
Unity的UGUI避免行的开头出现符号原创 2023-05-13 13:44:43 · 1892 阅读 · 1 评论 -
Unity引擎打包AssetBundle后模型网格数据丢失问题
在项目里面,有时候会遇到这样一个问题。在Unity编辑器里面编写了一个shader,在编辑器看,效果都是没有问题的。但如果把资源打包成AssetBundle后,会发现shader的表现不对了。遇到了这种问题的时候,一般人会各自的怀疑,怀疑是不是shader写得不对,导致在不同平台的表现不对。实际上,有很多时候这并不是shader本身的问题,而是shader需要的数据丢失了,比如顶点颜色、法线、切线等。原创 2023-03-09 23:30:14 · 1721 阅读 · 0 评论 -
Unity动画文件(AnimationClip)精简容量的研究
Unity动画文件(AnimationClip)精简容量的研究,通过压缩选项、文件分离、浮点精度等操作,达到最终动画文件容量和占用内存的降低原创 2023-02-03 11:56:42 · 4485 阅读 · 6 评论 -
Unity项目发布谷歌AAB+PAD
介绍Unity发布谷歌aab+pad的使用方式原创 2022-07-11 15:10:38 · 4740 阅读 · 1 评论 -
由于升级Unity版本导致的Lightmap错乱问题
由于某些迫不得已的原因,对一个几年前的旧项目升级了Unity的版本,从Unity5.5.4升级到Unity2017.4.25。 升级过程没什么太大问题,就是某些api已经过时了修改一下代码就好。但检查美术场景的时候,发现之前经过烘焙Lightmap的场景,...原创 2020-03-19 15:35:32 · 1441 阅读 · 0 评论 -
安卓obb文件的使用进阶
谷歌后台关于obb文件使用,有2个比较重要的设定 1、可以上传新版本的apk,指定使用旧版本的obb文件。 2、可以使用patch.obb文件,对正式的obb文件打补丁。 ...原创 2020-03-16 14:50:28 · 12998 阅读 · 10 评论 -
解决部分手机读取obb失败的问题
最近发现,有很小一部分海外的玩家在谷歌商店下载游戏之后,进游戏黑屏。从bugly上面查看报错日志,发现是读取obb文件失败了。谷歌商店规定超过100m的apk,需要分离obb上传。所以这种情况只会出现在谷歌商店的游戏包里面。 我的项目里面读取obb是分成2...原创 2020-03-16 10:05:25 · 18092 阅读 · 0 评论 -
GPU Skinning介绍
最近通过朋友介绍,知道了一个叫做GPU Skinning的工具。这个工具的作用是同一种角色在同屏里面出现一大堆时,可以大幅度的降低DrawCall。我试了一下,感觉挺有意思的,各位可以试试。 它的原理实际上是把骨骼矩阵存在配置文件里面,然后通过特殊的shader,计算顶点的位置,直接在GPU端得到了网格模型的顶点在动画帧该在的位置。这一切由于是在GPU端直接得出结果,所以根本不会产生CP...原创 2018-08-22 08:50:28 · 13510 阅读 · 7 评论 -
GPU instancing介绍
从Unity5.4开始,多了一个叫做GPU instancing的功能。这个功能是做什么用的呢?下面做一个小例子来说明一下: 还是之前做 MaterialPropertyBlock的例子,在屏幕上面做了很多的cube,然后随机给颜色,使用MaterialPropertyBlock的方式设置颜色值。 可以看到,正常情况下,在改变完颜色之后,Batches有75个,而SetPass cal...原创 2018-08-22 08:48:16 · 15020 阅读 · 0 评论 -
MaterialPropertyBlock
使用Unity3D做开发的朋友应该都知道,对于实例化出来的模型,我们改变它身上的颜色值或者贴图之类,Unity是会把它当前使用的ShareMaterial复制一份实例出来,以做到不同对象身上的材质互不影响的改变参数。但这样做会导致如果使用的对象很多,就会产生很多材质的实例的问题,这样会对内存有一定的消耗。 下面做了这么一个例子: 在场景里面生成了多个cube,然后用代码改变他们的颜色: ...原创 2018-08-22 08:46:10 · 17448 阅读 · 6 评论 -
制作Unity的二维时间轴编辑器界面
由于某种原因,阿赵我一直想做一个能显示二维时间轴波形的编辑器,类似于Unity自带的Profiler那样。 我抽空做了一下: 为了测试,我随机生成了一些数据,用于波形的显示。 可以选择其中的某一帧,然后显示当前的值。 有时候波形叠在一起了,需要放大来看 于是滑动左边的滑条,可以对波形进行缩放。下面说说做法: 主要用了Handle.DrawLine的方法。 ...原创 2018-08-22 08:43:42 · 6222 阅读 · 5 评论 -
谈谈最近很火热的VR
demo视频 最近听到最多的新技术讨论,不外乎就是VR了,包括各种VR设备也非常热卖,贵的有Oculus Rift DK2或者htc的vive,便宜点的有三星gear VR,最廉价的也有Google的CardBroad,还有它的一系列变种,比如暴风魔镜。我没有像vive那么高级的设备,但却通过暴风魔镜体验了一把VR,也看了Oculus 系列VR的介绍,明白了他们的原理。最后,我做出了上面...原创 2018-08-06 23:22:36 · 2912 阅读 · 0 评论 -
Unity制作AR
demo视频增强现实技术(Augmented Reality,简称 AR),已经流行了很多年,在前几年还在做flash的时候阿赵我也曾经接触过。最近我突然对Unity实现AR效果产生了兴趣,所以也搜索了一下资料,自己做了个demo。 使用Unity来制作AR应用,现在最主流的有2种插件可以使用 1、高通的Vuforia 2、ARToolKit 这两种插件我都下载下来使用...原创 2018-08-06 23:21:22 · 6436 阅读 · 0 评论 -
Unity3D项目程序加密2——对dll进行混淆
之前一篇文章阿赵已经简单的介绍了怎样把自己写的代码打包成dll动态链接库,然后在Unity3D里面用。那么接下来的事情似乎就很简单了,我们在Unity3D里面写脚本,到最后完成时,把核心的代码剪切出去打包成dll文件再放回项目里面。这样似乎别人就不能直接修改你的代码了。事实真的是这样吗?这里假设我们在Unity3D里面写的代码抽象成这样一个Test类,里面包含了公开和私有的变量,有自带的St...原创 2018-08-02 09:06:33 · 2900 阅读 · 4 评论 -
Unity3D项目程序加密1——在Unity3D里使用自己的dll
如果稍微关注过这方面知识的朋友,应该知道Unity3D做出来的项目是非常容易被反编译的,被反编译后你的所有资源和代码都将会毫无遮掩的呈现出来。由于.net本身没什么加密的措施,所以我们一般都是使用混淆代码的方式来对程序进行一定的加密。接下来2篇博客,阿赵将会简单的讲一下我自己在Unity3D的程序加密做法。首先第一篇,我会简单的说明一下怎样在Unity3D里面使用dll动态链接库,然后第二篇会说...原创 2018-08-02 09:02:18 · 875 阅读 · 0 评论