202106-07 Unity3D研究院之悬浮框显示其他游戏电流功耗(一百二十六) 在前面的文章中 Unity3D研究院之实时获取手机电流、电压、计算功率发热(一百一十八) 我们可以给自己的游戏添加电流功耗显示,但是有时需要对比其他游戏,看看到底是它发热还是自己的游戏发热。如果只是统计别人游戏帧率那么可以很方便使用腾通讯性能狗这样的工具,但是如果帧率在相等情况下就只能根据电.... Read More >
202104-24 Unity3D研究院之更换着色器后删除材质残留宏和属性(一百二十五) Unity的材质有个隐患,当美术同学在切换shader的时候会造成上一个shader里的宏或者属性(如贴图)造成残留,未来在打assetbundle的时候就会造成冗余浪费,Unity这种设计可以更好的解决运行期进行shader的切换,但大部分材质是不需要这种需求的,所以需要一个方法来一键删除残留。 .... Read More >
202012-22 Unity3D研究院之材质Shader通用面板(一百二十一) 技美在调shader的时候可能不太擅长C#编辑面板的代码,所以有了这篇文章。我封装了一个通用的着色器GUI面板,这样就可以不需要写C#代码了,实现的过程中试图解决了这几个问题。 1.视图解决分组面板展开与缩进 2.if标签与原生标签的混合 我看了下编辑器下C#的代码自定义Mater.... Read More >
202007-14 C#事件管理器清空所有监听 C#事件使用+= -=使用起来是很方便的,但是却不能整体清空所有事件。比如一个常见的操作,打开界面注册监听事件,关闭界面需要把所有的事件清空了,这要在写一堆-=操作,如果漏清空的话肯定会造成隐患,如果在lua里这个很容易,但是C#却不行。所以我想了个办法,对Action和Func进行一次包装,就可以解决这个问题了。 这里我只封装了两个参数,大家可以继续拓展新的参数,我在项目里一共拓展了5个参.... Read More >
202005-23 Unity3D研究院之方便找和写URP的shader 项目升级URP了一段时间了,Shader找起来太麻烦各种嵌套。以前的shader基本都在一个文件里搞定,普通的记事本都能写。 第一步安装VSCode以及Shader Languages support for vs Code 插件。 如果是内网办公的同学,可以先把插件下载下来,然后点击下.... Read More >
201911-24 Unity3D研究院之LWRP中计算准确overdraw(一百一十) 书接上文,在LWRP上Camera.SetReplacementShader是用不了的,而且就算能用算出来的不透明物体overdraw也是不对的。如果你的项目已经使用了LWRP,那么我们可以借助Custom Renderer Data来拓展渲染overdraw。如下图所示,需要自己创建一个自定义Re.... Read More >
201810-31 Unity3D研究院之IOS在Windows上查看日志就像Android的adb一样方便(一百零一) 我以前写过一篇 Unity3D研究院专治IOS查看日志各种不服(九十五) 但是今天无意间发现了一个工具iOSLogInfo,这个工具比之前的做法更好更方便。 下载地址:https://www.blackberry.com/blackberrytraining/web/KB_Resources/.... Read More >
201810-14 Unity3D研究院自动注入代码统计每个函数的执行效率以及内存分配(九十八) 以前用UWA和WeTest的工具来查看代码效率,他们都能提供我们代码每个函数的统计效率,然而并不需要我们做什么,所以我就在想如何实现一个类似他们的功能? Unity提供了Profiler.BeginSample();Profiler.EndSample();方法来统计代码效率,但是有两个问题 .... Read More >
201804-28 Unity3D研究院专治IOS查看日志各种不服(九十五) 测试拿着IOS手机过来说这里有个问题,能看看日志吗? Android上连上logcat可以很方便看日志,但是IOS就没办法。几年前我写过一篇文章通过写日志的方式保存在本地 http://www.xuanyusong.com/archives/2477 后来ios把这个功能封了,无法.... Read More >
201712-23 Unity3D研究院之全方位定位Android闪退(九十三) 首先强烈建议大家安卓打包一定要用il2cpp,我们项目对比了mono发现il2cpp闪退方面比mono少了很多。平常给QA打包推荐勾选Development Build 和 Autocontent Profiler 。这样如果发生了闪退可以直接从log中定位,或者真机连profiler。 我们.... Read More >
201705-30 Unity3D研究院编辑器之ManagedStaticReferences()静态引用(二十九) Unity的Profiler可以看出来内存,但是遇到ManagedStaticReferences()估计大家都跪了。因为这个资源被静态引用了,然后我们并不知道它被哪里静态引用了。 我想了个办法,可以通过反射来查询它。先讲一下原理 1.反射dll 2.遍历所有的.cs 取出所有带.... Read More >
201705-07 Unity3D研究院编辑器之EditorOnly(二十八) Unity自带了一个EditorOnly的Tag。意思就是标记过这个游戏对象,只在Editor下生效不会被最终打进包里。这个功能其实很必要,但是可能被很多团队都遗忘了。 例如:美术做的场景需要一些摄像机、角色、特效来进行辅助参照。这些东西单纯只是用来参照的,并不希望打进游戏包中。但是开发阶段又.... Read More >
201704-15 Unity3D研究院之Json序列化字典 Unity自己的json序列化是不支持字典格式的。无意间发现了一个全新的json .net库,功能很强大,还支持序列化字典推荐给大家。 http://www.newtonsoft.com/json 点击下载,zip. 解压后,把bin/net20/Newtonsoft.Json.dll .... Read More >