Unity
stalice
游戏3D客户端
展开
-
[Unity]Unity升级后发现的投屏问题
把Unity从2020.1升级到了2021.1。开会投屏的时候发现进场景之后手机上正常,投影上GG了,最悲哀的是退出场景也不能恢复,没法用Hunter实时测试。最后排查了半天,发现场景里有一个Camera,原不打算画到屏幕上的,所以Target Display设置了Display 2,投屏的时候投影就只播Display2了,这是2020不会有的,所以还以为是升级导致的BUG。...原创 2021-05-21 15:35:55 · 351 阅读 · 0 评论 -
Addressable Groups打包卡死
Addressable Groups里Build的时候一直卡在某个地方把DefaultLocalGroup(Default)里的资源删除排查,最后发现是某个场景文件打开场景文件发现Lighting里面开了自动烘焙,关掉就好了原创 2021-04-23 15:20:30 · 565 阅读 · 0 评论 -
timeline中的优化tips
1、director.duration每次40BGC,不要每帧去取。2、director.timeUpdateMode = DirectorUpdateMode.GameTime会让剧情播放在手机卡的时候变慢;而director.timeUpdateMode = DirectorUpdateMode.DSPClock会让Time.timescale失效...原创 2019-06-22 18:52:11 · 507 阅读 · 0 评论 -
ObiCloth动态加载
1、ObiCloth和ObiClothProxy单独拖到一个节点中,形成预制体2、原布料节点只留SkinMeshRenderer3、另外写脚本,将步骤1的预制体实例化后挂在步骤2的节点下面。步骤2中的SkinMeshRenderer指向ObiCloth用到的SkinMeshRenderer。4、ObiCloth的SkinMeshRenderer设为公有,方便步骤3赋值。5、ObiClot...原创 2019-06-22 18:52:00 · 286 阅读 · 0 评论 -
[Unity]RTT中保留透明通道
存图等RTT需要保留光效的透明通道,需要改shaderRenderType的Tag为Transparent的时候,_ColorMask属性设为14原创 2019-06-22 18:51:38 · 274 阅读 · 0 评论 -
[Unity]由于ILL2CPP接口丢失导致IOS timeline动作无法播放的问题
遇到的问题是,从不知道哪个版本开始,IOS真机上播放timeline剧情发现异常,动作和光效都无法播放。一开始以为是动态加载的问题,花了大量时间回退各种动态加载的功能,结果还是不行。把timeline剥离出来一个小DEMO,DEMO是正常的。百度后说可能是剥离问题,但是项目已经没有勾选剥离,而且把timeline通过link.xml包含进去,还是不行。最后发现类似功能自己写的Pla...原创 2019-06-22 18:51:25 · 959 阅读 · 0 评论 -
[Shader]下雨时地表水面法线扰动高光效果优化
之前实现了下雨时的地面漫水效果,其实就是加入了法线扰动,开启高光,并增加了gloss属性。但是同事对效果不满意,说高光只有在某个角度才能看到,转动摄像机到背光面之后完全没有光的感觉。因为高光本来就是有角度限制的,所以一开始不知道怎么办。美术同事给的建议是开启环境反射,所以做了第一版,在漫水的时候加上简化版的反射颜色,只查反射的天空盒。先用reflect查反射向量,再用UNITY_S...原创 2019-06-22 18:51:09 · 595 阅读 · 0 评论 -
[Unity]连真机调试
adb kill-serveradb devicesadb forward tcp:34999 localabstract:Unity-com.q1.TJZSnapdragon profiler安装后记得将adb放入系统路径adb devices连接原创 2020-08-10 16:20:39 · 179 阅读 · 0 评论 -
[Unity]版本升级导致的UI分辨率初始化区别
最近收到一个BUG,掉落物品头顶文字显示位置有偏移。物品的头顶文字是用UI做的,还涉及排版问题,查到最后,是物品排版用到的树形结构根节点记录的屏幕分辨率错了。实际分辨率是1920*1080,但是在树结构创建根节点的Start()函数中取到的是1080*1080。最后跟进到在UI根节点下脚本的Awake()函数中就是1080*1080了,然后在Start()中变回1920*1080。...原创 2019-07-30 12:05:59 · 291 阅读 · 0 评论 -
[Unity]工具中对游戏场景进行鼠标拾取
1、继承EditorWindow,实现void CustomSceneGUI(SceneView sceneView)2、鼠标事件用Event e = Event.current; 判断点击if (e.type == EventType.MouseDown)3、拾取射线用Ray terrain = HandleUtility.GUIPointToWorldRay(e.mousePositi...原创 2019-06-22 18:53:50 · 270 阅读 · 0 评论 -
[Unity]UI拾取工具
1、工具需要用OnGUI显示,所以继承了EditorWindow2、要在游戏中拾取,此时OnGUI会失去焦点,所以鼠标判断在Update函数中3、UICamera.ScreenPointToRay拾取位置是错误的4、EventSystem.current.IsPointerOverGameObject只能返回true or false,但是没有明确的拾取对象,EventSystem.c...原创 2019-06-22 18:54:05 · 264 阅读 · 0 评论 -
[Unity]VS code调试unity
VS code可以为绿色版,但是需要安装Unity插件然后选择UnityDebugger原创 2019-06-22 18:54:16 · 671 阅读 · 0 评论 -
[Unity]T4M升级unity2018以及笔刷纹理的融合问题
T4M升级至unity2018,遇到的问题是ProceduralMaterial被untiy2018废弃了,跟美术沟通后注释掉了ProceduralMaterial相关功能。之后美术发现用笔刷刷纹理会有一条黑边。仔细刨了发现,T4M的shader前面用到4张纹理进行融合,融合的比例分别是第5张纹理的RGB值,最后一张比例是1-RGB。笔刷刷的就是第5张纹理的RGB值。黑边的地方,只用前...原创 2019-06-22 18:55:55 · 1896 阅读 · 0 评论 -
[Unity]Timeline动态绑定Track和Cinemachine
在dll项目中用到,需要首先引入UnityEngine.Timeline。Tmeline基础知识主要参考了:https://caihua.tech/2017/11/02/%E6%B5%85%E6%9E%90Timeline%E7%BB%93%E6%9E%84/Timeline动态加载主要参考了:https://zhuanlan.zhihu.com/p/29585350记录上面文...原创 2019-06-22 18:51:48 · 1745 阅读 · 0 评论 -
[Unity]Timeline动态绑定光效
Timeline里面的光效,特别是带粒子的光效,可以用ControlTrack实现,在ControlTrack下clip中的prefab拖入光效预制体即可。如果粒子需要移动,则可以在剧情节点下建立一个空节点,用Animation Track的override控制空节点的移动,再将空节点作为ControlTrack下粒子的parent。取绑定var clip = clipInfo.ass...原创 2019-06-22 18:55:19 · 591 阅读 · 0 评论 -
[Shader]法线扰动的各种实现方法
想利用法线扰动做一个下雨时地面漫水的效果。1、纹理采样截了镇魔曲的shader,镇魔曲代码大致如下half2 posOffset1;posOffset1.x = (worldPos.x + worldPos.y);posOffset1.y = worldPos.z;half2 uvOffset1;uvOffset1 = ((posOffset1 * half2(0.00...原创 2019-06-22 18:55:36 · 1446 阅读 · 0 评论 -
[Unity]Timeline下的位置偏移
1、Cinemachine的CM vcam不要放在Camera节点下面,Camera会根据CM vcam的代码乱跑,如果CM vcam又作为子节点跟着camera跑,会乱套。2、K了位移的Track,需要整体位移时,如果启用了Track的Record Offsets,那初始位置无效,所以要改Record Offsets...原创 2019-06-22 18:55:44 · 1252 阅读 · 0 评论 -
[Unity]利用反射排查资源中的默认材质
接到需求,给资源检测工具增加一个功能,排查默认材质。Unity里面直接创建的模型,很容易附带上默认材质,这些材质在游戏运行的时候shader创建非常耗,所以要排除掉。1.1、对象是Material,检查shader名字是否为"Default-Material"1.2、对象是Renderer,则取它的sharedMaterials,再根据步骤1.1判断。因为是资源文件,所以sharedM...原创 2019-06-22 18:55:11 · 306 阅读 · 0 评论 -
[Unity]美术资源配置检测工具
对美术资源进行检测的一部分,对于美术资源:网格模型,图片,音效,除了源文件之外,配置存在.meta文件里面,用XXXImproter导入,然后用反射对各个属性进行判断。检测配置表里面,写了不同规则,每条规则需要配置导入的类型,对应XXXImproter,属性名(string),属性类型(bool,enum,string,float,int等,用字符串区分,根据字符串对应不同的比较函数),属...原创 2019-06-22 18:54:40 · 1027 阅读 · 0 评论 -
[Unity]资源冗余排查工具
1、普通资源把动态加载资源加入到列表中,逐个取出,用AssetDatabase.GetDependencies(assetPath);把资源依赖项列入一个大表,大表里面没有的资源就是冗余的。2、动态加载资源2.1读所有的配置表,把填了路径的资源的格子都提出来,尝试取资源,成功的将资源路径放入Useful表 FileStream fs = new Fil...原创 2020-08-10 16:21:32 · 563 阅读 · 0 评论 -
[Unity]场景资源统计工具
场景资源统计工具改自工具https://github.com/handcircus/Unity-Resource-Checker修改:1、材质大于50个时不显示预览,不然会卡死2、增加预制体统计功能取预制体有两种方法:2.1 用UnityEngine.SceneManagement.SceneManager.GetActiveScene().path取当前场景的文件路径;然...原创 2019-06-22 18:54:31 · 600 阅读 · 0 评论 -
[Unity]Timeline的自定义track
自定义track最简单的应该是直接继承playableBehaviour和playableAsset,但是我直接复制了unity官方的guide,在给track添加clip时就是找不到自定义的clip o(╥﹏╥)o官方的链接:https://blogs.unity3d.com/cn/2018/09/05/extending-timeline-a-practical-guide/h...原创 2019-06-22 18:55:26 · 991 阅读 · 0 评论