202109-11 URP打开半透明阴影(一百二十七) 在URP下默认只有不透明才会有阴影,其实可以使用alpha test给shadowmap上画阴影, 物体本身则使用alpha blend这样也更加合理。 首先拷贝一下默认的Lit.shader,在Properties中添加一个Toggle变量来控制是否开启半透明阴影。 [crayon-673.... Read More >
202106-07 Unity3D研究院之悬浮框显示其他游戏电流功耗(一百二十六) 在前面的文章中 Unity3D研究院之实时获取手机电流、电压、计算功率发热(一百一十八) 我们可以给自己的游戏添加电流功耗显示,但是有时需要对比其他游戏,看看到底是它发热还是自己的游戏发热。如果只是统计别人游戏帧率那么可以很方便使用腾通讯性能狗这样的工具,但是如果帧率在相等情况下就只能根据电.... Read More >
202104-28 Unity3D研究院之同步Scene与Game视图摄像机 Game视图同步Scene视图比较容易,直接获取Scene的摄像机坐标和旋转然后同步给Camera就可以。但是我想做的是Game视图运行时修改摄像机的位置,Scene视图来同步。 [crayon-673f0867a0944202125625/] Unity给的一个解决方案是SceneView.A.... Read More >
202104-24 Unity3D研究院之更换着色器后删除材质残留宏和属性(一百二十五) Unity的材质有个隐患,当美术同学在切换shader的时候会造成上一个shader里的宏或者属性(如贴图)造成残留,未来在打assetbundle的时候就会造成冗余浪费,Unity这种设计可以更好的解决运行期进行shader的切换,但大部分材质是不需要这种需求的,所以需要一个方法来一键删除残留。 .... Read More >
202102-06 Unity3D研究院之3D界面与2D界面的结合(一百二十四) 项目中已经全面采用3D与2D结合的方式来制作UI,3D界面的透视感会更强。但是有一部分UI还必须是不带透视的,所以需要采取正交与非正交摄像机结合的方式。3D界面有两种方式,第一种是需要进行屏幕自适应的,另一种不需要与屏幕自适应,我姑且把第一种称假3D界面,第二种称真3D界面。 假3D界.... Read More >
202012-29 Unity3D研究院之材质Shader Graph通用面板(一百二十三) 如果是自定义shader的通用面板可以看我之前的文章 Unity3D研究院之材质Shader通用面板(一百二十一) 这篇文章和它的原理是一样的。 首先shader graph有个很麻烦的问题就是自定义的keyword始终在面板的最下面不能和普通的属性进行排序,而且也无法展开分组的功能。为了实现.... Read More >
202012-28 Unity3D研究院之UI完整透下事件(一百二十二) 以前写过一篇类似的文章用于解决新手引导的问题, Unity3D研究院之将UI的点击事件渗透下去(九十) 最近策划又提出一个需求,Tips窗口打开以后点击空白区域关掉,但是如果空白区域下有按钮滑动输入一类的要关掉Tips的同时要响应相面的事件,所以透下的事件就要比较完整了。开始我觉得这个需求很不合.... Read More >
202012-22 Unity3D研究院之材质Shader通用面板(一百二十一) 技美在调shader的时候可能不太擅长C#编辑面板的代码,所以有了这篇文章。我封装了一个通用的着色器GUI面板,这样就可以不需要写C#代码了,实现的过程中试图解决了这几个问题。 1.视图解决分组面板展开与缩进 2.if标签与原生标签的混合 我看了下编辑器下C#的代码自定义Mater.... Read More >
202010-28 Unity3D研究院之给UI添加Mesh形状(一百二十) 美术希望在3D UI中显示自定义的网格,比如显示一个带弧形的UI。纯3D确实是可以做的,但是涉及到UI事件或者裁切就无法统一。 由于默认的UI是矩形,UI的显示与相应区域就是RectTransform的size,如果我们使用自定义Mesh的UI那么显示区域就要单独调整,比如单独设置显示的旋转、.... Read More >
202010-18 Unity3D研究院之URP下PrePassZ(一百一十九) URP以后并不是所有Pass都会执行,因为它预制了两个Pass所以,优先执行"UniversalForward"在执行"SrpDefaultUnlit"的Pass [crayon-673f0867a4a44065961278/] 以上代码就可以在URP中实现PrePass的功能,如果场景中只绘制.... Read More >
202009-28 Unity3D研究院之实时获取手机电流、电压、计算功率发热(一百一十八) 灵感来自Android的BatteryManager,可以实时获取到手机的电流。因为电压是恒定的,这样就能算出功率来,十分有助于统计手机发热问题。 BatteryManager并没有提供获取手机毫安的方法, 只提供了手机剩余毫安的方法,以及手机当前电量百分比。 这样虽然可以近似还原手机总毫安,.... Read More >
202007-18 Unity3D研究院之获取FrameDebugger每帧颜色数据(一百一十七) 最近一直在思考如何能更好的做优化渲染,本篇文章只是另一种实现的思路,其实我也没完全想好怎么应用到实际游戏中来统计,希望各位看官多多提宝贵意见。 1.本例Unity的版本是Unity2019.3.1.4 2.采用URP渲染管线,老的渲染管线没有试过,大家可以试试看。 3.FrameD.... Read More >
202004-17 Unity3D研究院之UnityEngine.Object和System.Object(一百一十五) 最近在使用C#7的语法时遇到一个挺有意思的问题,深究其原理后发现值得写一篇文章。在C#中任何一个class类即使不写class XXX :System.Object 也会被默认继承System.Object,在C#中还有一个object关键字它和System.Object是一回事。所以UnityEn.... Read More >