- 博客(176)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 开发手札:.asmdef和RuntimeInitializeOnLoadMethod
一般我们开发都是基于一套完善的unity框架进行的,完全建一个new project就是干,这样开发不仅慢而且乱。我们组框架代码都有现成的,而且组员都熟练使用了,现在的问题就是怎么在一个new project或者years ago project项目上用起来。1.把框架整理到一个文件夹内,使用unitypackage或者copy/paste到其他工程使用,为此我写了一个cs脚本namespace批量添加/修改工具,避免类名冲突。就能按照以前的开发模式写功能了,非常适合临时小demo的开发。
2025-01-15 20:48:26
596
原创 开发手札:CameraRTS精准性优化
常见的缩放功能是鼠标滚轮缩放物体,但是并非基于RayHitPoint,所以视觉上会偏移,为了修正偏移,实现基于RayHitPoint的缩放。原理是在缩放的同时,根据RayHitPoint相对坐标计算物体中心坐标,依据视椎平面相对位移*相对缩放即可。PS:其中有一些依赖函数是我框架代码内的,只标注意义,因为以前都有讲解过原理,所以节省篇幅。这次基于Camera视口(二维屏幕)+屏幕坐标(鼠标光标)来实现一套全新的物体RTS操作。这样就实现了一套Camera(用户)视角下,精准的RTS操作。
2024-12-23 20:06:18
789
原创 开发手札:CameraFps精准性优化
需要注意的是,因为我们是基于物体计算的,所以不存在物体时,先设定一个默认PlaneDistance,随后再根据平面Plane的Distance重载。原理就是计算摄像机到物体所在平面Plane(平行于视椎体)的距离,然后根据屏幕坐标计算在Plane上的移动坐标,用于摄像机的反向移动计算。我的CameraFps脚本用了很多年了,基本所有项目调整下参数拿着就用,没啥大问题。这样的Drag效果在精准微操的竞技游戏或者软件中比较常用。最近根据需求优化摄像机飞行操作,优化操作的精准性。
2024-12-19 19:28:21
253
原创 开发手札:Win+Mac下工程多开联调
为了方便自测,需要用unity将一个工程打开多次,分别是Win/IOS/Android版本,进行多角色联调。),接下来用unity打开_android目录并切换到Android版本,即可完成同一工程打开Standalone/Android双版,只需开发Standalone版本会自动同步。,以Windows版本为主版本,使用mklink操作将工程文件链接到不同目录,然后就可以使用unity打开多次。会自动在父目录下创建_android目录,然后链接_standalone中关键的四个目录(
2024-12-04 11:11:49
830
原创 线性代数:Matrix2x2和Matrix3x3
今天整理自己的框架代码,将Matrix2x2和Matrix3x3给扩展了一下,发现网上unity数学计算相关挺少的,所以记录一下。关于Matrix2x2,我设计了构造、转置、余子式(2x2矩阵的余子式为标量,或称1x1矩阵)、余子式标量矩阵、伴随矩阵和逆矩阵。OK,洗了睡,这里吐槽一下:这些矩阵计算unity应该直接提供,写起来眼睛都要看瞎了。基本上数学运算开发够用了,每个函数的意义只在代码注释上简单说明。
2024-11-03 21:41:14
894
原创 C for Graphic:视差渲染(一)
需要注意视点和起始终止相对坐标和texture3d采样配参一致,同时注意因为texture3d的储存方式从0号纹理开始已经有0.5的插值预留,所以我们进行zdimension计算的时候,用0.5的偏移做精准采样,避免模糊。我早期工作,在小作坊全栈的时候,做过一段时间web开发,做了一个古董藏品的h5展示,做法是360度拍摄各个角度的照片,然后在js中通过用户滑动屏幕切换不同角度的古董照片,模拟3d渲染的功能。缺点:采样纹理过大,所以想要达到正向效果,必须采样的对象是超精细场景或模型,不然得不偿失。
2024-10-17 17:26:50
659
原创 C for Graphic:径向模糊
原理:获取中心点(centeruv)到当前像素(pixeluv)的朝向法向量(ndir),pixeluv沿着ndir进行向前向后的像素颜色采样,并叠加到当前像素颜色(pixelcolor)以pixeluv为起点,ndir为朝向,向外、向内、或两端同时采样颜色进行叠加,为了保证叠加后亮度的统一,除以采样次数进行衰减即可。和以前聊过的高斯滤器模糊有点类似,核心都是将其他像素颜色叠加到当前像素颜色,无非叠加的计算规则不同。径向模糊(也叫辐射模糊):一种由内向外发散的模糊的效果。后处理着色器,原理就是叠加颜色。
2024-10-14 19:54:13
373
原创 C for Graphic:DNF手游残影效果
dnf手游操作里,按两下后跳,就会朝着操作方向快速闪现,同时出现滞留残影,有时候会发生一个残影一直滞留的bug,满屏幕到处跑会产生满屏幕残影,可见dnf开发人员加班挺凶的,很多bug估计来不及修。dnf手游在作死的道路上越行越远,困难罗特斯完全打不动,提前在抖音上细看攻略,基本能躲过机制不死,但是伤害不够,全时打满也还剩3000+管血,组团半天+炸团半天=完全浪费一天。个人觉得策划完全没必要这么逼氪,毕竟才开服四个月,就马不停蹄的想逼玩家氪金,可见游戏后续发展基本玩不下去,最后记录一下用得上的功能就退游。
2024-10-01 20:21:31
519
1
原创 开发手札:内网开发Unity导致操作和编译卡顿的问题
最近一个工程切换了最新的unity和packages,在外网开发没什么问题,切换到内网接入保密开发后,发现不论是操作编辑器还是编译代码,巨卡无比。以上是仅仅写了一句int a = 1;后,编译代码的速度。经过分析觉得,应该是某些库在联网直到TimeOut。重启电脑后,unity正常操作和编译代码。
2024-09-25 16:04:47
367
原创 开发手札:关于项目管理中开发工作安排的问题
画完之后我自己顺便把交互系统模块开发完成了,按照unity插件的制作方式,开发过程中,只要迷茫了或者卡壳了,看看构架图,一下就知道怎么往下继续开发了,挺方便的。如果遇到对编码质量有一定要求的项目(非一把梭撸完代码打包丢出去不管了),需要有一定可维护性,我觉得不妨做每个模块开发之前花一两个小时设计下构架图,事半功倍。再站在开发的角度,构建一份详细的模块构架设计图就更好了,这样不仅可以给开发提供编码的思路和规范,也可以保证最终交付的代码大差不差,所以返工会减低很多。
2024-09-04 11:11:04
281
原创 dnf手游版游玩感悟
所以当UI策划和UI设计师完成UI模块的设计后,UI程序根据实际的UI界面业务功能,将一个UI模块划分为永远不动的静态元素(如各个背景)+一直在动的活动元素(如动态生成的物品),配合UI对象池的使用。当然已经生成生成好的复杂UI界面,在退出时也可根据UI管理器的调度策略,并不销毁,而是移动坐标到视口外,再次使用则可快速加载。地下城战斗系统这块,则是我的知识盲区了,虽然我做过卡牌战斗系统,但是和dnf这种手感的格斗游戏比起来,简直小巫见大巫,我一直觉得就手感这一块,没有超越dnf的格斗游戏。
2024-06-03 16:23:06
729
原创 C for Graphic:遮罩显示(一)
这里设置渲染立方体剖面材质的renderqueue>球体renderqueue,同时设定ZTest Greater,这样就能显示出立方体被球体遮挡的区域,就能形成填充剖面。这个用于立方体,置换立方体蒙版区域的stencilvalue,用于显示球体。因为模板测试位于图形流水线片段处理阶段,所以看到的效果就如同球体投影到平面上遮罩显示一样,我们想要立体感的话可以用两种方案。这个技术和以前切水果游戏一样,无非切水果的剖面纹理使用了相应的水果内部纹理。模板缓冲一般用于遮罩渲染的功能,其原理很以前聊过(
2024-05-14 17:19:32
460
3
原创 开发手札:Unity+NetMQ集成使用注意事项
netmq算是一个轻量级消息库,一个子模块的通讯通道需要用上netmq,根据topic区分通信信道,因为没有区分大小写导致消息不通,浪费了几个小时。本身网络传输都是二进制形式的,我居然很随意的没有关注字母大小写进行消息订阅,导致测试和调试bug浪费几个小时。
2024-04-17 20:01:52
558
原创 Bug及异常:unity场景角色移动卡墙壁的问题
后面测试出来,缩放应用变换(3dsmax是重置变换)成(1,1,1),同时unity场景不要进行缩放,包围盒碰撞计算就没问题了。突然想起来,高中时候打穿越火线,很多卡墙角卡箱子bug,是不是可能模型和场景的缩放比例导致包围盒计算出现问题?我以为是meshcollider和角色spherecollider在凹面计算有问题。
2024-04-12 15:33:53
755
1
原创 开发手札:unity2022+vscode1.87联合开发
在现在的公司干了五年多了,五年前配置的内网开发机,i7 8700+16g+1t hdd+gtx1080已经卡爆了,特别是硬盘掉速严重,开机开软件没有一两分钟都反应不过来,同时公司原则上只有新员工才配新电脑,老员工电脑只要不是当场爆炸就继续用。试了下VisualStudio或Rider用起来硬盘基本50%-100%之间跳动,写一句代码可以卡十几秒,索性把vscode配置起来继续使用。不得不说,时间的力量是很强大的,同时熵增理论适用于任何地方。拷贝到内网后,释放到同样的位置,就可以使用了。
2024-03-07 13:03:07
759
原创 开发手札:Github Timeout 22
今天(2024.01.26日),提交github又出现了ssh connect timeout errorcode 22,不论是创建新的sshkey还是配置.ssh/config都没用。更新提交都可以用了。
2024-01-26 10:10:05
770
原创 HDRP图形入门:RTHandle未知问题
当时没感觉有问题,后面同事说这效果好奇怪,好黄?起初我以为我shader颜色计算出问题了,查了半天不是。我百度google查了仅有不多有关RTHandle的帖子,并没找到相关问题,不过有个博主说复制一份RTHandle使用,我尝试做了一下,果然ok了。我自己把它理解为一个动态的RT,和RT一样的使用,当然写代码用起来很容易。正好电脑看奥本海默,全程尿点十足,就一边看一边把之前整合HDRP遇到的问题说一下。如果大家写渲染功能,碰到类似的问题,不妨Copy一份RTHandle。
2023-11-16 20:49:08
890
原创 辅助工具:关节绳(2)
需要做一个仿真功能,找到以前的圆柱体和关节绳网格构建的算法做点修改。 修改了网格构建参数的计算方式,如下: 以每个骨骼节点的本地坐标系进行网格参数计算,相应修改: 1.圆周坐标计算按start本地坐标系进行计算(start本地坐标系的xy轴位于平面G,z轴为平面G的法向量) 2.考虑一系列仿真计算在世界坐标系进行的,所以顶点坐标以世界坐标系计算,再转换到本地坐标 修改代码如下: 效果如下: 好,有时间继续。
2022-12-05 23:36:02
370
原创 开发手札:脚本命名空间自定义
最近要管理两个开发小组的开发流程,使用我常年持续整合的开发框架,保证开发小组项目代码的统一性。 同时为了方便不同项目合并的操作性,参考了当年刚入行做棋牌平台棋牌游戏的方式,使用脚本名和命名空间进行区分。 重写unity创建脚本,增加一个快捷创建功能,如下:using System.Collec
2022-05-19 16:24:10
417
原创 几何向量:二维平面非平行直线相交(修正)
今天突然发现以前做平面非平行直线相交是有问题的,和以前博客关联太多了,必须得专门写一篇纠错。 只能说以前刚好没碰到这种情况,太神奇了,代码如下: /// <summary> /// 计算两射线交点 /// </summary> /// <param name="p1"></param>
2022-05-13 16:20:00
666
原创 开发手札:Unity与Android交互(Unity2019+)
又要整android原生功能了,这次是使用unity2019+版本和as4+版本。和之前的一篇Unity2018+AS3+交互是不一样的,所以再次记录一下。 我会将操作写的很详细,标识也会很细致。 准备工具: 1.Unity
2022-04-28 09:20:28
5143
2
原创 入门图形学:VR畸变后处理
最近真的忙,项目需求大改,晚上还要复习成人英语考试。 新增了“一键生成VR”需求,在现有框架上预编译同步普通键鼠和VR手柄的操作、同步PC和VR的各种接口使用等,业务开发人员通过派生、调用新的基类和API做流程功能,然后使用编辑器功能一键生成VR和PC双端场景并完整运行,同时业务功能也是大改,日边还回响部门领导对我们项目经理喷的“都是错的!做的都是错的!!!”。&
2022-04-23 23:37:31
2569
2
原创 入门图形学:图形喷涂(一)
最近想实现一系列的喷涂绘制功能,感觉挺有用的。 首先就是普通的喷涂绘制,利用材质纹理进行绘制操作,如下: 假设上面是纹理uv,我们鼠标射线击中muv,根据radius算出绘制的外接矩形rect,然后根据圆弧到圆心距离判断进行圆形涂色。这里唯一需要注意的就是纹理像素的边界问题了,不要越界,如下:
2022-02-13 20:48:32
829
3
原创 入门图形学:动态地形(二)
把动态地形着色部分写了。 之前我们已经实现了网格控制部分,但是着色确实有问题的,如下: 一眼就看得出来,法向量是错的,因为我们构建平面网格的时候法向量全赋值:normals[index] = new Vector3(0, 1, 0); &
2022-01-13 22:15:10
790
2
原创 几何向量:二维射线与直线相交
刚好用到二维射线与直线相交,顺便记录一下。 问题如下: 二维平面中存在射线bp和直线ac,计算bp与ac的交点p1,计算原理很简单,通过直线方程组求解即可,如下: 将射线bp和直线ac的方程参数k1、k2、d1、d2计算出
2022-01-10 21:16:43
1313
5
原创 入门图形学:动态地形(一)
要搞一个无限动态地形,本来这种和场景相关的功能我都是不管的,美术同事搞个插件即可,毕竟专业人员。 不过同事搞的插件有问题,在地形拼接对不齐,改拼接参数也改不好,于是任务落我头上了,刚好...
2022-01-07 15:36:36
2363
原创 几何向量:RuntimeTransformMovement
以前一直用的runtime transform gizmos插件,今天说操作有问题,要改,效果如下: 看出问题了吧?插件移动操作三维和二维不匹配,导致鼠标和轴错位(以前我们操作都不在意这个问题,现在才说要改) RTG插件确实不错,支持TRS操作和回退功能,我实在不想换插件了。一大早百度找RTG
2021-12-24 16:51:06
2453
1
原创 辅助工具:关节绳
为了快速上线能用的功能,暂时直接使用unity自带的joint关节完成了线缆的功能。 需求构建一个支持物理属性的线缆绳索功能,如下: 我们想象P0-P7为刚体骨骼结点,一根绳索由7截刚性线段组成,首先构建这种结构,如下:using System.Collections;using Syst
2021-12-23 20:26:26
1970
原创 辅助工具:圆柱体绘制
最近处理动态网格生成,二维用CanvasRender,三维用meshfilter,这个属于常规操作。 当然具体的细节还是很多的,这里以我觉得比较有代表性的三维圆柱体网格动态创建为例。 假设三维空间中存在两个点,以这两个点为端点生成圆柱体。...
2021-12-20 20:36:21
1610
2
原创 几何向量:空间圆
记录一下空间圆的生成功能。 已知空间两端点f和t,求f所在平面F,半径为r的圆,如下: 求动点p(x,y,z)则可以得到圆,那么开始构建相应的方程组,首先计算平面F,如下: 接下来通过向量fp模长等于r,构建方程:&nb
2021-12-20 14:25:54
6225
原创 入门图形学:UI抗锯齿
刚好需要解决一下UI抗锯齿的问题,顺便记录一下。 比如如果绘制了这种多边形: 使用CanvasRenderer绘制(以前聊过不再赘述),可以看得出来锯齿挺严重的,所以需要使用抗锯齿技术。 一般我们设置全局抗锯齿都是基于最终画
2021-12-06 20:49:53
2306
原创 开发手札:unity warning as error
最近一个月做AR项目碰到各种问题,真是一个月项目,花三周配置调试,当然最后问题都解决了。 不过有个东西居然我才知道,哈哈哈哈,所以记录一下。 因为我最近都在做图像方面处理,涉及到了一些unsafe code,和微软的MR插件,所以用到了插件中一个csc.rsp文件(我都没打开查看过,想着信任微软
2021-11-18 12:00:04
2461
原创 入门图形学:图像二值化
最近要做图像处理,二值化处理,顺便来记一篇博客。 在图像处理上,一般的图像(彩图)携带信息过多,用于计算处理方面就不适合,需要将图像进行灰度化->二值化。 1.灰度化 图像编码分为RGB、YUV两种常用的编码方式,一般
2021-10-31 23:32:11
4331
1
原创 几何向量:Gerstner
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-10-06 16:02:19
681
2
原创 入门图形学:Texture3D
这次我们学习一下texture3d(又名三向纹理贴图,3d纹理贴图等)。 照例先上官方: 百度百科 UnityManual MicrosoftDocs
2021-09-12 12:17:50
5218
原创 入门图形学:雪地特效(一)
黑神话悟空里面的雪地感觉就是个活的,交互效果非常好,如下:这雪地,动一下凹一点,配合角色的动作,显得就很灵动。当然雪地的效果实现原理不难,高度贴图+曲面细分就能做出来,我之前做的角色面部造型(捏脸)就类似这种效果,下面先简单的实现一下。...
2021-09-06 22:00:41
3037
2
Scheuermann_HairSketchSlides.pdf
2020-12-01
androidstudio gradle-5.4.1-all.zip
2020-08-14
Unity5Google Protobuf解析工具,支持android/ios泛型列表参数正反序列化
2017-05-14
Unity5json解析工具,支持android/ios泛型列表参数正反序列化
2017-05-14
c# ftp下载文件总是偶现报错怎么回事
2017-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人