今天是2018年10月24日,祝大家程序员节快乐。 游戏中一旦有换装功能,角色可能就会是多个DrawCall了,所以我们可以将部件的贴图动态合并在一张中。如果想合并PVRTC2或者PVRTC4可以参考我上一篇文章。Unity3D研究院之IOS运行时合并PVRTC贴图(九十九) http://127..... Read More >分类目录归档:【Unity3D研究院之游戏开发】
今天是2018年10月24日,祝大家程序员节快乐。 游戏中一旦有换装功能,角色可能就会是多个DrawCall了,所以我们可以将部件的贴图动态合并在一张中。如果想合并PVRTC2或者PVRTC4可以参考我上一篇文章。Unity3D研究院之IOS运行时合并PVRTC贴图(九十九) http://127..... Read More >2018
10-23
10-23
Unity3D研究院之IOS运行时合并PVRTC贴图(九十九)
游戏中一旦有换装功能,角色可能就会是多个DrawCall了,所以我们可以将部件的贴图动态合并在一张中,本文聊聊PVRTC2bit 和 PVRTC4bit 贴图合并的方法。先看看PVRTC贴图的排列方式。 核心方式是Texture2D.GetRawTextureData()获取贴图的原始数据,运行时使.... Read More >
以前用UWA和WeTest的工具来查看代码效率,他们都能提供我们代码每个函数的统计效率,然而并不需要我们做什么,所以我就在想如何实现一个类似他们的功能? Unity提供了Profiler.BeginSample();Profiler.EndSample();方法来统计代码效率,但是有两个问题 1.只.... Read More >2018
09-30
09-30
Unity3D研究院GPU Instancing实战(九十七)
最近将GPU Instancing应用在游戏中,遇到了一些坑和大家分享一下,我们用的版本是unity2017。前面说了GPU Instancing目前适合游戏中的草、石头等元素较多的地方。 首先需要开发一个刷地表的编辑器,试想一下如果场景上的草每个都要美术手动的去摆这得多麻烦啊,如下图所示,根据网格.... Read More >2018
09-03
09-03
Unity3D研究院GPU Instancing测试
GPU instancing 很早就支持手机了(Android只支持Opengl ES 3.0),但是我一直不知道将它应用到哪里,刚好最近在调研这个我对它又重新测试了一下。 如果是不动的物体勾选static静态合并批次(40-50帧率) 自定义Shader中勾选Enable GPU Instanci.... Read More >2018
05-15
05-15
Unity3D研究院之旧版本Unity使用新版本XcodeAPI
由于目前Unity的项目比较老(Unity5.x),自动打包Xcode持续集成的时候遇到了问题, 因为PBXProject有些方法旧版本没有,今天我无意间发现一个巧妙的方法解决它。 https://bitbucket.org/Unity-Technologies/xcodeapi 将最新的xcode.... Read More >2018
05-03
05-03
Unity3D研究院新方法加快代码编译速度(九十六)
之前可以将核心框架代码放在Plugins目录下,只要不修改该目录下的代码,就不会造成重新编译从而加快编译速度。新版本的Unity引入了一个新概念,Assembly可以将目录下(包括子目录)下的所有cs代码编译成DLL,这样就可以进一步加快编译速度。 Create->Assembly Defin.... Read More >2018
04-28
04-28
Unity3D研究院专治IOS查看日志各种不服(九十五)
测试拿着IOS手机过来说这里有个问题,能看看日志吗? Android上连上logcat可以很方便看日志,但是IOS就没办法。几年前我写过一篇文章通过写日志的方式保存在本地 https://www.xuanyusong.com/archives/2477 后来ios把这个功能封了,无法用第三方工具把日志取出来,.... Read More >2018
01-26
01-26
Unity3D研究院之生成客户端灰度测试包(九十四)
灰度测试包应该和正式包的内容完全一致,只是添加了一些辅助的开关,例如:可以进调试服务器、可以输入gm指令、可以下载测试url的cdn热更资源。如果开发都打两个包的话就很麻烦。日后游戏上线后我们需要,dsym和带符号表的so用来还原闪退的堆栈。Android只是编译unity的时候会生成il2cpp..... Read More >2017
12-23
12-23
Unity3D研究院之全方位定位Android闪退(九十三)
首先强烈建议大家安卓打包一定要用il2cpp,我们项目对比了mono发现il2cpp闪退方面比mono少了很多。平常给QA打包推荐勾选Development Build 和 Autocontent Profiler 。这样如果发生了闪退可以直接从log中定位,或者真机连profiler。 我们来看一.... Read More >
Unity5.6今天发布了。支持打包lz4压缩包,支持ios和android。 这个lz4不是assetbundle,而是压缩预制在游戏包内的资源。比如场景依赖的资源,或者Resources目录下的资源,Prefab关联的资源等等。 压缩资源的描述如下 Compressed data files i.... Read More >2016
12-26
12-26
Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一)
网上已经有类似的解决方案,原理就是在做一张通道图,然后在shader里混合。代价就是需要做个shader在做一个脚本代替Image 和RawImage。 今天我发现其实unity自己已经做了这个功能了,不用写shader,也不用替换脚本,原生支持就是方便啊。 先看看我的图集,ETC1 压缩格式 1..... Read More >2016
09-05
09-05
Unity3D研究院之将UI的点击事件渗透下去(九十)
处理UI还有3D模型的点击推荐使用UGUI的这套事件系统,因为使用起来比较简洁,不需要自己用代码来发送射线,并且可以很好的处理同时点击UI和3D模型上。 1.给3D摄像机挂一个Physics Raycaster组件。Event Mask过滤掉UI. 2.用unity自带的Event Trigger.... Read More >2016
07-13
07-13
Unity3D研究院之Inspector面板枚举的别名与排序(八十九)
虽然mono是支持unicode的。可以在枚举里写中文,但是我还是觉得写英文好一些。可是在编辑器上策划是希望看到的是中文的,还有就是枚举的展示排序功能,策划在编辑的时候为了方便希望把常用的枚举排上前面。 把如下代码放到你的工程里就可以直接用了。 使用是这样的,第二个参数就是排序。接收i.... Read More >
版本Unity5.3.3 Android 小米pad1 首先非常感谢 @守着阳光 同学在下面的留言。让我解决了一个大的谜团。。 开始我知道 StreamingAssets 路径是这个 path = "jar:file://" + Application.dataPath + "!/as.... Read More >2015
12-23
12-23
Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七)
前段时间我研究过这个问题,但是没有解决只好作罢。今天刚好有人又问我这个问题,我得空查了一下还是找到了解决办法。另外也感谢问我的人,解答问题的同时也是我学习的过程。 运行时更新烘培贴图分两种情况 1、场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab)此时可以直接更换烘培贴图。 2..... Read More >2015
10-23
10-23
Unity3D研究院之两个游戏工程资源同步问题(八十六)
有的公司是不想让美术和策划有程序权限的,但是Unity在处理团队协作上不太理想,这就造成需要把美术工程的资源同步到程序工程里。目前我有两个方法,各有利弊。 1.由美术或者策划同步 Unity提供了.unitypackage 导出功能,可以通过import来实现同步资源。但是import的方法比较愚蠢.... Read More >2015
09-06
09-06
Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四)
这两天无意间又发现了两个提取Unity游戏资源的工具,这会儿刚好有时间我就码点字总结一下。 一、disunity 因为之前写过了所以这里就不介绍了 。Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六) https://www.xuanyusong.com/archives/2584.... Read More >
做手游开始阶段可能要频繁的打Windows包,主要是为了让策划看起来方便。但是Unity打包windows的时候会生成一个xxx.exe在生成一个xxx_Data文件夹 ,这就很恶心了。无论是上传SVN还是RTX传文件都很不方便,而且文件夹还会有冲突的可能。 我的想法是把这exe和Data压缩成一个.... Read More >
上文中说了怎么给DLL加密来防止别人反编译你的C#代码。 Unity3D研究院之Android加密DLL与破解DLL .SO(八十一) 文章的最后我们发现IDA PRO神器可以解开libmono从而查到你的解密算法,这样你的C#代码又会被别人轻易的拿到。 这两天我就一直在寻找怎样才能更好的保护代码。.... Read More >