- 博客(63)
- 收藏
- 关注
原创 Unity Shader(更新中)
参考书籍:UnityShader入门精要(冯乐乐著)参考视频:Bilibili《Unity Shader 入门精要》写在前面:前置知识需要一些计算机组成原理、线性代数、Unity、图形学的基础
2025-05-22 15:05:51
1054
原创 Unity 中实例化预制体的完整过程
Prefab 是一个模板,用于保存一个或多个的Gameobject的完整结构和配置(包括组件、子物体、脚本参数),不直接存在于场景中,需要通过实例化具体生成对象, 在编辑器中直接拖拽Prefab到场景中(自动生成实例): Gameobject是通过Prefab生成的具体对象,存在于场景中,仅存在于场景或运行时内存中,不会作为独立文件保存,若需保存到场景中,需手动拖拽到场景并保存场景文件。静态加载:资源会被直接打包到场景或预制体中,无法动态加载。内存占用:资源会随场景加载自动加载,可能导致内存浪费。
2025-03-20 10:48:05
781
原创 Unity中的委托和事件(UnityAction、UnityEvent)
UnityEvent为我们提供了三个方法对事件进行注册注销和调用,UnityEvent是一个类,当我们设置为public时Unity会自动为我们进行实例化,但是如果是private私有时,就需要手动。传入的是一个UnityAction,UnityAction是Unity封装定义的一个委托,这里我们需要知道函数其实就是一个委托所以我们可以正常传入函数。什么是多播委托,委托中可以存储多个函数,我们在调用这个委托时及多播委托,委托支持以下俩种用法,比较建议使用。🎒什么是委托,委托的关键字是。
2024-12-19 17:53:27
2420
原创 Unity性能优化(简略版)
一、规范美术的资源比如对于没有透明通道的图片美术导出时就不需要带透明通道,因为RGB和RGBA压缩的内存大小有一倍的差距降低模型面数,降低模型骨骼数量,降低贴图大小二、UI的Draw Call优化通过打图集减少DrawCall次数Canvas会打断合批Text也算一次DrawCall也会打断合批Mask也会打断合批,使用RectMask2D可以避免直接修改Image的Color属性会造成Rebulid,可以通过修改材质的Color属性来避免三、批处理静态批处理:将相同材质的物体
2024-11-01 17:39:54
526
原创 Unity核心1 -- 未更新完
法线贴图是在物体的凹凸表面都做上对应的法线,为了减少性能消耗将精模模型降低面数形成低模,利用在精模上生成的法线贴图,用在低模上计算光照阴影等效果,提升性能保证效果。纹理不仅可以用于模型贴图,还可以用在天空盒和反射探针,纹理形状设置用在两种模式之间的切换。默认纹理,大部分导入的贴图都是该类型。Nomal map (法线贴图模式)编辑器中或GUI中使用的纹理。2D游戏或者UGUI中使用。Cookie(光源剪影)纹理只需要单通道格式。
2024-10-21 02:10:55
528
原创 10.map or multimap
map相对于set区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一个值被称为键值key,pair的第二个值被称为实值value。map也是以红黑树为底层实现机制,根据key进行排序。
2024-01-27 04:12:49
408
原创 9.set or multiset
创建一个类,类重载符号(),定义时调用bool operate() (Mkey m1,Mkey m2) //Mkey是一个类,x是Mkey属性。
2024-01-27 04:11:29
399
原创 7.priority_queue
priority_queue<类型, 容器, 比较器> pque类型:要储存的数据类型容器:储存数据的底层容器,默认为vector<类型>,保持默认即可比较器:比较大小使用的比较器,默认为less<类型>// 大根堆// 小根堆。
2024-01-27 04:09:45
468
原创 3.vector
容量与容器大小的概念是不同的,容器大小表示当前容器元素个数,容量表示当前不用扩容可一共存的元素个数。会重新申请一块更大的空间,将原本数据拷贝到新的空间,释放旧数据空间,再插入那个新元素。 擅长在尾部添加或删除元素,时间复杂度为。当插入新元素时,空间不足了,那么。大以默认值填充新位置,比原本。指向的数据,如果越界抛出异常。指向的数据,如果越界直接报错。重新指定容器长度,比原本。在容器末尾插入一个元素。删除容器末尾的一个元素。小删除超出容器的元素。返回容器最后一个元素。删除迭代器位置的元素。
2024-01-27 04:04:49
439
原创 2.string
string 的 += 运算符,将会在原字符串原地尾接字符串。而 + 了再 = 赋值,会先生成一个临时变量,在复制给 string。通常字符串长度可以很长,使用 + 字符串很容易就 TLE。查找字符串最后一次出现的位置(下标),从后往前找。查找字符串第一次出现的位置(下标),从前往后找。
2024-01-27 04:01:44
424
原创 11月题单
洗白的迷宫跳转链接T167831 洗白的迷宫要点深度优先搜索, 记得维护路径!!(不会返回原路)代码#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const int N = 60;typedef...
2023-11-20 22:29:00
52
原创 23-24(1)第2次线上赛
星号阵列27跳转链接4310:星号阵列27要点考察曼哈顿距离,这个知识点以前写过了:AcWing 曼哈顿距离. 菱形菱形,直角三角形,最常用的就是曼哈顿距离质数-1跳转链接4311:质数-1要点和曼哈顿距离一样也是老知识点了,跳转一个以前写过的链接:AcWing 约数. 完全数 如果d是x的约数那么x/d也是x的约数,所以判断质数枚举到根号x即可需要注意的是如果求x的所有...
2023-10-29 23:30:00
58
原创 sstream
<sstream> 定义了三个类:istringstream、ostringstream 和stringstream,分别用来进行流的输入、输出和输入输出操作。定义:stringstream 变量名>>,<<像箭头就是流的流向,可以将流流入或流出,这里巧妙的运用了流的流出,将流流出到变量中就类似于控制台输入变量,都会以空格为结尾。stringstream...
2023-09-12 21:04:00
72
原创 ue蓝图通信
通过角色蓝图进行通信,将被调用的蓝图类创建变量于角色蓝图中,调用的蓝图通过获取。创建一个自定义事件,这个自定义事件可以在自身的蓝图/关卡蓝图中调用。创建完变量后公开并且编译,在细节面板中用吸管吸取对应蓝图类即可。后进行类型转换得到被调用的蓝图类,建议提升为变量。用于判断变量是否有效,可以避免变量为空而报错。在A蓝图中创建B蓝图变量即可在A蓝图中调用B。蓝图类调用关卡蓝图中的自定义事件。只需要选中后代理进入关卡蓝图即可。
2023-09-09 23:35:16
276
原创 AcWing 1230. K倍区间
res是根据当前cnt数组存的个数计数的,那么我们想想第i个数模是0,那么它除了和前i个数组成n个k倍区间,是不是自己也单独是一个k倍区间,所以所有模为0的数的真正的区间个数都是n+1,所以直接给cnt[0]初始化为1,那么所有模为0的数在累加res时都会自动+1。那为什么要用这种动态数组,因为我们的本意是在1~i-1中找到和i模数相同数的个数,正常情况要找这个个数我们一般会想到用俩重循环,但是这是非常浪费的,所以我们开一个数组cnt来存个数,一边走一边加,这样就可以一直。k-1的个数情况,即。
2023-09-06 01:02:53
74
原创 算法 -- 数学
x的y次方使用函数pow(x,y)例如 2的10次方 pow(2,10)pow函数也可以用来开根号,例如开2次方根其实就是二分之一次方例如 16开4次方根 pow(16,1.0/4)输出注意输出是要求保留n位有效数字还是保留n位有效小数位cout 输出浮点数默认保留6位有效数字printf 可以自定义保留的小数位一个方法:四舍五入精确到整数printf("%.0lf",n)...
2023-07-10 20:40:00
74
原创 蓝图-数组
最终位置移动到目标位置多少百分比,0 ~ 1,例如只移动的一半距离返回0.5。最终位置和初始位置是否重合,重合返回true,否则返回false。产生碰撞后初始位置距离最终位置两点直线距离,如果没有碰撞返回 0。选中时,初末位置中间有物体将因为碰撞结果而不能到达目标位置。产生碰撞后的最终位置,如果没有产生碰撞返回 0 0 0。返回碰撞到碰撞体的那个组件,例如子弹射击不同身体部位。是否产生碰撞,产生返回true,否则返回false。产生碰撞后,实际应该到达的目标位置。产生碰撞后,物体的初始位置。
2023-07-01 21:12:50
720
原创 蓝图-位置空间变换
最终位置移动到目标位置多少百分比,0 ~ 1,例如只移动的一半距离返回0.5。最终位置和初始位置是否重合,重合返回true,否则返回false。产生碰撞后初始位置距离最终位置两点直线距离,如果没有碰撞返回 0。选中时,初末位置中间有物体将因为碰撞结果而不能到达目标位置。产生碰撞后的最终位置,如果没有产生碰撞返回 0 0 0。返回碰撞到碰撞体的那个组件,例如子弹射击不同身体部位。是否产生碰撞,产生返回true,否则返回false。产生碰撞后,实际应该到达的目标位置。产生碰撞后,物体的初始位置。
2023-06-30 20:33:33
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人