自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 UGUI随文本区域自动调整大小的文本控件

弄一个Scroll View:

2026-03-16 22:40:14

原创 Unity CG着色器实战

脸的下部有点黑,可以加一个漫反射明暗到渐变贴图u的系数,控制漫反射变黑的阈值。

2026-03-15 11:12:08 51

原创 基于泛型+反射的Excel万能导表工具

【代码】基于泛型+反射的Excel万能导表工具。

2026-03-10 23:20:42 89

原创 对ScriptableObject做一个评价

ScriptableObject下面简称SO。

2026-03-08 11:26:18 23

原创 理解裁剪空间

我以为这个着色器右上角黄色,右下角红,左上角绿,左下角黑。结果是这样的:和预期有偏差,但是上下部分交换就一样了。

2026-03-01 18:25:29 142

原创 Unity关卡配置化笔记

一个地形,它的导航网格、遮挡剔除数据都是和地形绑定的。现在的问题是生成遮挡剔除数据是直接保存在场景文件夹的,使用同一个地形的场景使用的遮挡剔除数据是一样的。导航网格数据如果在地形预制体的检查器Bake就会保存到预制体。或许应该做好一个关卡后导出配置文件,然后把关卡具体的物体都删掉,进入关卡时动态加载?

2026-02-26 18:04:48 264

原创 着色器multi_compile笔记

没有_是多选1,默认选第一个。有_是多选1或0,默认不选。

2026-02-25 10:38:01 323

原创 UI显示任务目的地标记的方法

首先我们都知道用Camera.main.WorldToScreenPoint(),这是目的地在屏幕内的情况。

2026-02-20 18:35:36 173

原创 Unity渲染问题记录

树叶摇晃应该是风的效果,消失可能是被误计算LOD距离,计算成了该剔除的距离。一开始树能显示,不太可能是着色器没包含。在场景里放一个树的预制体,不只把树用于地形工具绘制树。后来验证无效。打开树模型的Renderer,也警告开启了GPU Instancing,不能开static。那么把static关闭打包看看。无效。然后打开.spm文件,把Wind Quality改成None。又去项目设置Quality把LOD bias改成1.解决了。

2026-02-15 10:59:06 153

原创 Excel WPS表格笔记

记录一些做配表会遇到的知识。

2026-02-13 16:11:59 204

原创 UGUI制作图标不透明区域形状的按钮

继承Image,Image继承了ICanvasRaycastFilter接口,它有一个bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)方法,根据输入的屏幕坐标返回是否射线有效。这是某公司的面试题,原题是判断鼠标点击到了一个字母O的环上。重写这个方法,从输入的屏幕坐标>相对自身RectTransform的坐标>归一化的局部坐标(实际上已经是uv坐标了)>sprite空间坐标>采样像素>比较像素alpha和阈值>返回。

2026-02-08 14:15:33 184

原创 一个脚本搞懂RectTransform所有布局相关字段:anchoredPosition anchorMin anchorMax sizeDelta pivot offsetMin offsetMax

凡是非单锚点模式(AnchorMin!=AnchorMax),Pivot就会失效,变成通过上下左右边和父级的上下左右边的距离确定位置大小。可以留意这4个词的变化。anchoredPosition在非单锚点模式下比较匪夷所思,

2026-02-07 23:17:39 418

原创 Unity资源管理笔记

使用一个计数器int counter,还有记录协程总数num,每个协程完成时counter++,if(counter==num){完成回调}

2026-01-24 23:11:48 148

原创 Unity asmdef笔记

默认情况下Editor文件夹的脚本编译到Assembly-CSharp-Editor.dll,其他脚本编译到Assembly-CSharp.dll。可以在脚本的检查器查看所属的dll。改一个脚本需要重新编译它和依赖它的脚本。

2026-01-17 11:53:55 81

原创 对大型switch和多层判断的优化

写背包系统时点击物品格子,出现详情页,详情页的选项按钮根据物品种类、所属容器动态生成。这里生成选项按钮取决于的”键“有多个:物品种类、所属容器,执行的操作是生成几个按钮,写入名称、添加回调。按常规思路会写成2层判断,一个长度恐怖的函数。

2026-01-15 03:07:13 38

原创 射击游戏枪械多种自动方式的管理

在枪械的配置SO里写一个方法为autoModes列表去重。就是转换成集合再转换回来。有些枪只有半自动,有些有半自动、全自动,有些有半自动、三连发。用一个自动方式枚举的列表。

2026-01-09 12:58:34 231

原创 保存任务进度

玩家既能移除又能生成的对象,先把场景里的都收集起来销毁,再把读档里的生成;只增加不减少的对象(如敌人掉落的箱子)直接从读档里增加;不增加不减少,只改变状态的对象(NPC、任务、任务道具),根据存档里记录的状态一个个更新状态;存档最好用字典存,查询方便。只减少不增加的对象(如敌人)和读档对照,读档里没有的删除;

2026-01-08 16:03:32 575

原创 Unity阴影笔记

意思可能是先得到相机范围内所有顶点,转换到光源空间,再得到这些点x、y的最大最小值。但是如果挡住光源的物体比如一个大楼在相机外,它投射的阴影在相机内,阴影纹理应该包含这个大楼。阴影纹理判断深度那些我们都懂。我的疑惑是对于平行光,如何确定阴影贴图要覆盖的范围。和主相机的视场角决定,以主相机为中心,向平行光方向扩展出一个覆盖主相机视锥在。内所有区域的立方体,确保主相机能看到的范围内,阴影都能被正确生成。豆包提供了这个脚本,用于标识平行光源阴影视锥。动了一下相机,视锥会跟着变化,规则挺复杂。

2026-01-06 22:13:31 280

原创 程序架构笔记

事件中心是观察者模式的中心化类型,观察者模式比事件中心更广义,不使用事件中心,两个类,类B监听类A的事件,也是观察者模式。

2025-12-27 22:09:34 297

原创 Unity NetCode for GameObject笔记

网游面对的几个情况。

2025-12-26 21:32:03 219

原创 Unity生命周期函数笔记

deepseek回答:在Unity中,未激活的物体不会执行Start方法24。具体执行规则如下:‌‌‌。

2025-12-22 18:05:20 988

原创 法线贴图笔记

2025-12-21 14:25:16 195

原创 Unity CG着色器常用内置代码宝典

这里不废话,直接把着色器最常用的内置代码列出,以便快速查阅。

2025-12-21 10:52:05 232

原创 Unity添加Newtonsoft.json

安装完VS重开一下才有提示。

2025-12-13 10:45:57 273

原创 TortoiseHG

2025-11-27 11:26:15 99

原创 Unity编辑器开发笔记

不要擅自把老子的文章加vip

2025-11-25 11:06:28 389

原创 Unity红点系统笔记

注意到引起红点的节点引起红点时,它相应的UI可能不存在,比如玩家刚进入游戏看见邮箱按钮的红点。红点Mono通过检查器配置自己的路径,开始时红点Mono把自己路径的节点加入管理器的总字典,但是不会把路径里自己的父节点加入。如果要尽快写一个简单的测试案例,就在主界面放一个按钮,有红点,按下弹出一个面板,上面有一个按钮,有红点。需要所有有红点的控件形成一个树结构,玩家没打开任何面板时看到的是树根,一般是主界面上的一些按钮,树叶是打开几层后不能再展开的按钮。红点是从叶向根传的,节点需要知道它的父节点。

2025-11-17 18:20:09 512 2

原创 Unity UI框架笔记

假设我想让面板一开始不存在场景里,第一次是加载,关闭时失活,以后打开都只激活。加载面板需要先判断这个面板加载过没有,然后决定加载还是激活。如果用静态方法加载,这个方法不能重写,为了避免每个面板写一遍,只能写在面板基类里。提供加载面板的方法,包括从Resources和AB包加载,包括全屏面板和部分面板。为此需要面板预制体的路径和资源名,需要一个方法知道当前哪些面板在显示,可以是查看一个面板类的单例是否存在,也可以用一个字典存储显示的面板。

2025-11-16 18:18:47 444 1

原创 计算机图形学笔记

为了能把点的平移用矩阵乘法表示,把点矩阵和变换矩阵加一维。对向量,增加的一维是0,因为向量没有具体位置,平移对向量无意义。

2025-11-13 10:13:01 245

原创 Visual Studio笔记

VS工程最顶层的概念是解决方案(sln),解决方案包括若干项目。

2025-11-08 13:55:38 266

原创 Unity小地图功能(纯UI,不加相机)

需要移动的是小地图,需要计算的是小地图的位置。找地图上两个点,得到场景里这两个点的世界位置(x、z坐标)和地图上的点在中心时小地图的局部位置,建立对应关系。小地图一般不会显示整个地图,小地图图片在遮罩里是移动的。如果玩家图标在遮罩里也是移动的,机制就比较复杂,把玩家图标固定在中心是个比较简单的机制。保证所有地图在相机的旋转有统一的标准,比如默认是世界z轴朝相机上方。这里倍率项是加号,尽管玩家在世界的移动方向和小地图的移动方向相反,但计算倍率时倍率已经是负数。旋转朝向,也有地图旋转和玩家旋转两种机制。

2025-11-05 09:43:34 630

原创 Unity ECS笔记

教程。

2025-11-03 10:06:47 735

原创 Blender动画笔记

这样 Timeline 的范围正好能播放完整个动画序列。

2025-10-29 17:29:25 1379

原创 Blender骨骼笔记

原因:可能是骨骼有Deform层和target层,这两层分布完全一样,设计是target层没有权重,用来控制deform层,重新自动绑骨时给两层都加了权重。作用和父子级关系类似,优先级低于父子级关系,就是说一个骨骼有父级且是连接的,那么“复制变换”就会失效。alt+p清空父级等效于骨骼属性-关系-父级点x,断开骨骼连接等效于不勾选相连项。2.而如果把顶点组的顶点移除,被移除的顶点会失去权重。修改骨骼的父子关系:编辑模式,骨骼属性-关系-父级。此模式调整的是骨骼的原始变换,骨骼不会控制模型。

2025-10-29 16:53:57 609

原创 Unity开门关门功能(基于Update)

门脚本挂在“门框”上(门开关时交互触发区域不能变),有一个枚举或bool标记当前是开启还是关闭,有门模型开启、关闭状态的旋转欧拉角Vector3。在Update里检查如果是开启就Lerp到开启的Vector3,关闭就Lerp到关闭的Vector3。玩家开门关门就是转换这个开关状态。在玩家的交互检测里检查门的开关状态,决定交互显示的是开门还是关门,开门关门后立即重新检测交互。

2025-10-29 00:57:26 175

原创 Blender FPS动画工作流

FPS手臂动画的特点是:枪(骨架末端)的旋转规则,位置需要精细调整,而胳膊(骨架中间)旋转不规则,是典型的适用反向动力学的情形。FPS手臂动画基于反向动力学,通过控制手的位置旋转,而非大臂小臂。为此在做动画前要先搭建一套由控制骨骼和约束组成的框架。

2025-10-28 08:39:47 397

原创 Powershell笔记

function 函数名{param([类型]$参数名1,[类型]$参数名2,[类型]$参数名3=默认值函数体函数调用函数名 -参数名1 值 -参数名2 值 -参数名3 值。

2025-10-21 15:19:46 270

原创 零钱兑换问题

摘要

2025-10-19 15:14:21 348

原创 Unity Addressables笔记

可以公开,从编辑器拖一个资源进去。另有AssetReferenceGameObject、AssetReferenceSprite、AssetReferenceTexture、AssetReferenceT<>等可引用具体类型资源。

2025-10-18 22:32:05 356 1

原创 三数之和问题

在例子[2,-3,0,-2,-5,-5,-4,1,2,-2,2,0,2,-4,5,5,-10]出现了(2,-3,1)和(1,-3,2)的重复。也就是说不能排除k等于前面的i,i等于前面的k的情况。不可能,因为变成集合之后一定有2个数(三个相同的非0数和不可能为0),根据和为0能算出被合并的那个数,而集合相同,算出的那个数也相同。在[-7,-5,5,-6,-2,1,7,3,-4,-2,-2,-4,-8,-1,8,8,-2,-7,3,2,-7,8,-3,-10,5,2,8,7,7]又少了。

2025-10-13 20:48:08 393

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除