- 博客(89)
- 收藏
- 关注
原创 Unity红点系统笔记
注意到引起红点的节点引起红点时,它相应的UI可能不存在,比如玩家刚进入游戏看见邮箱按钮的红点。红点Mono通过检查器配置自己的路径,开始时红点Mono把自己路径的节点加入管理器的总字典,但是不会把路径里自己的父节点加入。如果要尽快写一个简单的测试案例,就在主界面放一个按钮,有红点,按下弹出一个面板,上面有一个按钮,有红点。需要所有有红点的控件形成一个树结构,玩家没打开任何面板时看到的是树根,一般是主界面上的一些按钮,树叶是打开几层后不能再展开的按钮。红点是从叶向根传的,节点需要知道它的父节点。
2025-11-17 18:20:09
478
2
原创 Unity UI框架笔记
假设我想让面板一开始不存在场景里,第一次是加载,关闭时失活,以后打开都只激活。加载面板需要先判断这个面板加载过没有,然后决定加载还是激活。如果用静态方法加载,这个方法不能重写,为了避免每个面板写一遍,只能写在面板基类里。提供加载面板的方法,包括从Resources和AB包加载,包括全屏面板和部分面板。为此需要面板预制体的路径和资源名,需要一个方法知道当前哪些面板在显示,可以是查看一个面板类的单例是否存在,也可以用一个字典存储显示的面板。
2025-11-16 18:18:47
378
原创 Unity小地图功能(纯UI,不加相机)
需要移动的是小地图,需要计算的是小地图的位置。找地图上两个点,得到场景里这两个点的世界位置(x、z坐标)和地图上的点在中心时小地图的局部位置,建立对应关系。小地图一般不会显示整个地图,小地图图片在遮罩里是移动的。如果玩家图标在遮罩里也是移动的,机制就比较复杂,把玩家图标固定在中心是个比较简单的机制。保证所有地图在相机的旋转有统一的标准,比如默认是世界z轴朝相机上方。这里倍率项是加号,尽管玩家在世界的移动方向和小地图的移动方向相反,但计算倍率时倍率已经是负数。旋转朝向,也有地图旋转和玩家旋转两种机制。
2025-11-05 09:43:34
558
原创 Blender骨骼笔记
原因:可能是骨骼有Deform层和target层,这两层分布完全一样,设计是target层没有权重,用来控制deform层,重新自动绑骨时给两层都加了权重。作用和父子级关系类似,优先级低于父子级关系,就是说一个骨骼有父级且是连接的,那么“复制变换”就会失效。alt+p清空父级等效于骨骼属性-关系-父级点x,断开骨骼连接等效于不勾选相连项。2.而如果把顶点组的顶点移除,被移除的顶点会失去权重。修改骨骼的父子关系:编辑模式,骨骼属性-关系-父级。此模式调整的是骨骼的原始变换,骨骼不会控制模型。
2025-10-29 16:53:57
468
原创 Unity开门关门功能
门脚本挂在“门框”上(门开关时交互触发区域不能变),有一个枚举或bool标记当前是开启还是关闭,有门模型开启、关闭状态的旋转欧拉角Vector3。在Update里检查如果是开启就Lerp到开启的Vector3,关闭就Lerp到关闭的Vector3。玩家开门关门就是转换这个开关状态。在玩家的交互检测里检查门的开关状态,决定交互显示的是开门还是关门,开门关门后立即重新检测交互。
2025-10-29 00:57:26
139
原创 Blender FPS动画工作流
FPS手臂动画的特点是:枪(骨架末端)的旋转规则,位置需要精细调整,而胳膊(骨架中间)旋转不规则,是典型的适用反向动力学的情形。FPS手臂动画基于反向动力学,通过控制手的位置旋转,而非大臂小臂。为此在做动画前要先搭建一套由控制骨骼和约束组成的框架。
2025-10-28 08:39:47
321
原创 Powershell笔记
function 函数名{param([类型]$参数名1,[类型]$参数名2,[类型]$参数名3=默认值函数体函数调用函数名 -参数名1 值 -参数名2 值 -参数名3 值。
2025-10-21 15:19:46
256
原创 Unity Addressables笔记
可以公开,从编辑器拖一个资源进去。另有AssetReferenceGameObject、AssetReferenceSprite、AssetReferenceTexture、AssetReferenceT<>等可引用具体类型资源。
2025-10-18 22:32:05
334
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
370
原创 Unity FairyGUI笔记
跨引擎UI工具,首先我想到,做好的面板不合适要在工具里调整,重新导出、导入,是否需要两个软件和代码编辑器都开着?如果再开一个教程的浏览器,内存是否够用?要么只开一个,两个软件轮流打开?
2025-09-27 19:18:38
425
原创 Java笔记
整数没有无符号类型。字符串String(开头大写).boolean单独用4字节,数组里1字节。常量分为实例的常量和静态常量。位右移>>保留最左边符号位。>>>左边补0。
2025-09-26 13:56:09
422
原创 Unity物理系统笔记
一开始我以为RaycastHit.transform是命中的碰撞体的根对象,如果给人物的chest加碰撞体,射线命中了这个碰撞体,Debug.Log(hit.transform)输出的是这个人物的名字RaycastHit.collider是命中的碰撞体,Debug.Log(hit.collider)输出的是碰撞到的部位的名字。2024.4.29今天又发现_hit.transform打印的是身体部位的名称。2024.7.27今天又发现_hit.transform打印的是人物的名称。2024.8.15。
2025-09-18 17:40:36
240
原创 问题记录~!@#$%^&*(+_(*)&&$%#@!!!~@#!$@%^&*()_+__)*(^*%$#@!#@$%^&*(*&^&$%#@!~@@$%^&*()(*^%$#@!~@$%%^&*$%^
在标题X上右键-修改样式-段落。
2025-09-09 12:18:20
172
原创 C++笔记
特性内存地址 (硬件)指针 (软件)本质无类型的数字带类型的内存引用目的标识位置安全访问数据操作直接读写类型检查+解引用+运算必要性物理存在防止错误+提供语义指针类型是编程语言在无类型的内存物理层之上建立的类型安全层确保数据被正确解释防止非法内存操作使指针算术有意义提供编译时类型检查这就是为什么虽然内存地址本身无类型,但我们仍需声明指针类型——它是连接底层硬件和高级抽象的桥梁。
2025-08-15 22:07:08
1158
原创 C#笔记#$@%#$^&^*)&*^%$#!@!~@!#@$#%$^&*$%#@@!!~!$%$%@#$!@#~!@!#$@%#^#$%@!$%#$^$%^$#@#!@$%#^&%^$@#!@%#^$
2025-08-14 18:08:06
822
原创 算法题笔记
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。如果遍历数组,把数放到另一个数组而不是哈希表,数组无法瞬间找到目标值,时间复杂度还是降不下来,内存占用也多了。它们的区别是遍历数由小到大还是由大到小。
2025-08-13 11:37:08
499
原创 Visual Studio问题记录
dotnet.exe` 编译时退出并返回错误代码 **`-2147450730`**(十六进制 `0x80008076`),通常表示 **.NET 运行时初始化失败**或 **依赖项加载冲突**。- 打开 **Visual Studio Installer** → 选择对应版本 → `修改` → 勾选 **“.NET 桌面开发”** 组件 → 修复安装。| **现象** | **优先排查方向** |
2025-06-06 22:42:25
1193
原创 使用反射对任意对象进行二进制序列化的程序
进行网络通信时,或者希望本地存储文件加密时,可以用二进制序列化。序列化时要把类的基本类型字段一个个序列化,遇到成员类要把成员类的基本类型成员也序列化。这样每个类都要有一个专门的序列化程序。想到列表可以改变长度,可以先声明一个byte列表,把字段序列化后加到列表后面,全部加完后变成数组。
2025-06-05 22:02:29
216
原创 Unity性能优化笔记
**遮挡剔除(Occlusion Culling)**:通过预计算或运行时检测,跳过对相机视野中**被其他物体完全遮挡的物体**的渲染,从而减少 Draw Call 和 GPU 负载。- 点击 **Bake** 生成遮挡数据,完成后会在场景中生成 **Occlusion Culling Data** 文件。- 在 **Bake** 选项卡中,确保 **Occlusion Culling** 功能已启用。- 移动相机,被地形遮挡的物体会显示为**红色(未渲染)**,可见物体为**绿色(已渲染)**。
2025-06-04 12:29:59
1352
原创 Blender cycles烘焙贴图笔记
把旧材质全删除,新建一个材质newMat,给所有顶点指定,给新材质使用烘焙结果,uv贴图使用newUV,得到了结果。烘焙之前枪托是有贴图的,不知道为什么烘焙之后没有了。操作流程大概是:新建一个新的uv贴图newUV(uv贴图的本质就是每个顶点都有的二维坐标,允许在多个uv贴图间切换,就是修改每个顶点的uv坐标);然后用Cycles烘焙,旧材质渲染的结果,也就是每个顶点的颜色,会根据它们在newUV的坐标烘焙到newTex的相同坐标。但是我还是不理解上面的着色器两个节点组是断开的,怎么知道它们的执行顺序?
2025-05-19 08:45:38
1690
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅