- 博客(34)
- 收藏
- 关注
原创 Unity urp实现红外效果(分层渲染,特效覆盖)
一、找renderer asset:菜单栏中点击Edit->Project Setting->Graphics->Default Render Pipeline->点击PC_RPAsset(你的可能不一样名字)二、复制并修改renderer data:找到renderer Asset中的renderer List中第一个renderer data,然后复制 ,命名为PC_Renderer_Infrared。在camera中选择renderer为 PC_Renderer_Infrared。
2025-03-19 16:24:08
1039
原创 unity 粒子系统实现碰撞检测(collision)且使粒子不受力
我在网上搜索到文章说将设置都置0,并且不选择三个Multiply就可以使得粒子不受力,但是我尝试后还是不行,所以决定用代码的方式修改粒子,让其保持属性。因为trigger虽然不会使粒子受力,但是在触发回调函数中,只能够获得被触发的粒子,较难获得激活物体。需求:通过碰撞检测的方式,获得粒子碰撞到的物体,并且碰撞之后,粒子的运动方向,旋转等物理性质都保持不变。勾选Collision ,碰撞对象层级可以在Collides With上选择。如图,选择之后,粒子只能碰撞到 Layer为EnemyRoot的物体。
2025-01-24 13:55:25
675
原创 unity 粒子系统设置触发
5、Visualize Bounds勾选上之后会看到粒子的盒子(可以理解为collider box,但是如果collision没被勾选,就不具备碰撞能力,只不过可视)4、Collider Query Mode 设置为All:表示列表中所有对象都是触发器。Disable表明列表中都不是触发器;3、将想要触发的方式(Inide、Outside、Enter和Exit)选择为”Callback“,其他默认为”Ignore“以上设置后的效果:当粒子的Bounds接触到以上列表中物体的collider时,会被激活。
2025-01-24 08:56:36
503
原创 unity中常用的物体移动方式
·用于将一个物体从当前位置移动到目标位置。API:代码示例:二、利用监听键盘进行实时的位置变化移动通过改变物体的属性,直接设置物体的位置,可以在方法中监听用户输入(如键盘按键)来实现物体的实时移动。代码示例:三、通过刚体进行单向移动()用于物体在物理模拟下进行移动。此方法不会直接设置物体的位置,而是通过物理引擎平滑地将物体移动到新位置。API:代码示例:四、通过刚体的力进行牵引移动()使用可以通过施加一个力来推动物体,适用于需要物理响应的移动方式(例
2025-01-07 16:09:49
407
原创 unity中异步和协程的区别
协程适合于处理帧间等待,或者需要使用每帧变化的物体位置信息。高级替代:unitask替代异步,unirx替代协程。异步适合于需要长时间等待的情况,比如。
2025-01-06 16:58:17
227
原创 unity 用代码控制物体围绕hinge joint旋转
Debug.Log($"当前角度:{currentAngle}");2.设置弹簧(这一方式可以实现物体通过关节移动)
2024-12-31 17:46:39
286
原创 unity Physics.Raycast方法
是 Unity 提供的一个物理射线检测方法,用于从一个点沿某个方向发射一条射线,检测是否与物体(带有Collider的物体)发生碰撞。
2024-12-30 15:57:37
604
原创 unity 粒子系统:用脚本控制粒子系统开始和结束
粒子系统的类型是:ParticleSystem;开始方法是:Play();结束方法是:Stop()勾选循环播放(looping)
2024-12-30 11:10:13
487
原创 rayfire for unity:使用bomb 或者gun摧毁物体
不能设置为inactive,这样会不可破碎,设置为dynamic,运行之后因为子物体的collider不是很贴合,所以会稍微错位,尝试之后,sleeping是最合适的类型。(2)子物体需要挂载collider。我尝试挂载mesh collider,无法破碎,换成box collider才行。·Object type=Mesh root ,因为父对象为空,下面才有子对象,并且子对象不是树状结构。·type = concrete(默认)。物体很坚硬,比较难碎片化,挑场合。这样在运行期间,物体才可以碎片化。
2024-12-27 16:13:16
382
原创 rayfire for unity :Activator组件
by local Position:Position List记录的是后一个位置相对于前一个位置的偏移量,并且动画开始时激活器的位置,就是点击运行时激活器的位置,不会自动将激活器移动到第一个position List位置上。(4)Scale Animation:运行过程中,激活器的最终尺寸,默认是1,表明运行过程中激活器的尺寸不发生改变。作用是,在运行前保存激活器的多个位置信息,运行后,系统会自动移动激活器。(1)Type:激活的类型,包括进入碎片时激活和离开碎片时激活。
2024-12-26 11:18:33
308
原创 rayfire connectivity组件 (rayfire for unity)
collapse中的type对应上面的类型;end对应上面最后的值;duration(持续时间)表明崩塌总共持续的时间值越大,上面的滑动条滑地越慢。当损毁物体(比如柱子)的中部,上部保持悬浮,此时需要给物体挂载rayfire connectivity组件。(3)为了避免稍微一打破连接就整体损坏的情况发生,需要为物体添加不屈部分。首先:在Rayfire Rigid组件中,勾选Unyielding。:表明瓦解的最小尺寸,如果碎片尺寸小于这个阈值,那么就会被激活。图片中的蓝色部分就是自动生成的一个聚集体。
2024-12-26 10:34:18
331
原创 unity:Ray Fire
的补充1.Rayfire Rigid组件挂载该组件,并且设置核心参数,实现:运行之后按下空格键,物体下落到地面,并且被损坏。对于一个物体,不需要有碎块,直接将Demolition设置成Runtime,并且挂载collider组件后,在运行期间。只需要给该物体一个力,物体就会破碎。运行前:不带碎片子物体;object Type是mesh,demolition type是Runtime;运行后:物体破碎表示碎片可以被再次碎片化的次数,默认是1(表明:碎片产生后,数量就不再改变,不再可分)。
2024-12-25 17:46:16
1267
原创 unity-UI 常用的UI组件
比如在TextMeshPro中增加Content Size Fitter组件, 并且垂直适应设置成Preferred Size(自适应成最佳尺寸)。效果:在运行过程中,当文本内容很多时,TextMeshPro的垂直尺寸会变大。适用于:运行过程中,ui物体(比如Text)中的内容数量不确定,需要在运行过程中,动态确定ui物体的尺寸。
2024-12-23 10:21:06
235
原创 unity UI 面板(Panel)
当ui界面上,控件太多,为了分区管理,可以使用面板:在uiCanvas的不同区域新增Panel,确定其锚点,然后以Panel为父物体,新增子ui物体。这样无论屏幕怎么变换大小,ui物体的相对位置是保持不变的。
2024-12-23 10:14:05
170
原创 unity UI Button(按钮)
拖入函数所在脚本所挂载的物体(这里是Canvas,不一定是Button本身),再选择:脚本名.函数名。点击按钮之后,就会执行该函数。explicit代表自定义,通过设置,可以确定在运行过程中,按钮之间的连接顺序。精灵就是图片,如果想在ui上使用图片,需要将图片的纹理类型设置成Sprite。1.过渡(一般选择颜色或者Sprite精灵)高亮颜色:(鼠标/射线)悬浮时,显现的颜色。选择可视化之后,可以看每个按钮直接的关系。按下颜色:被选中,即被按下时的颜色。绑定函数后,可以点击按钮,调用函数。
2024-12-23 09:39:16
248
原创 UI中的锚点和轴心
物体的position是相对于锚点而言的。并且锚点的形式改变(一个点,两个点、四个点)时,物体的position的含义也会改变。将锚点分成四个点,确定四条边的优点是,当屏幕大小发生改变时,内容在屏幕的占比,和相对位置不变。可以理解为物体的中心点。物体的旋转和缩放,以及相对于锚点的位置,都是由轴心确定。包含四个数值:最小x,y;物体上的小蓝点就是轴心。
2024-12-23 09:14:33
168
原创 unity基础
可以用于判断两个向量的方向夹角;如果大于0,说明夹角小于90;等于0,夹角等于90;小于0,夹角大于90。则用于需要平滑过渡的场景,例如动画、物体移动、镜头跟随等,确保在两个位置或状态之间平稳过渡。
2024-12-19 18:07:16
540
原创 unity 脚本生命周期以及控制脚本的执行顺序
将要先执行的部分放到awake方法中,另外一个放在start方法张。假设现在有两个脚本,都实现了start方法。
2024-12-19 14:18:47
97
原创 Unity C# Delegate(委托)、Event(事件)、Action和Func的区别和联系
赋予使用者过多权限。比如可以被直接赋值:delegate1 = delegate2;会导致delegate1容器中的函数丢失。
2024-12-19 11:29:29
226
原创 c# 实现IComparable接口,使用sort对自定义类排序
默认情况下,CompareTo是基于升序,与此对应的sort也是升序,即当前值大于传入值,返回正;如果想要通过sort实现逆序,那么修改CompareTo的返回值即可,即当前值大于传入值,返回负。自定义类实现IComparable接口时,需要实现CompareTo方法,此方法返回一个int值。
2024-12-19 10:25:39
143
原创 c# 委托和事件
定义:可以理解为函数容器,可以储存一个函数(单播)和多个函数(多播)使用步骤:(1)声明委托类型;(2)实例化委托;(3)委托绑定函数;(4)调用委托单播委托是调用委托时只会执行一个函数。
2024-12-18 19:06:35
206
原创 unity xr交互:自定义手柄按键动作
将脚本绑定到Camera上,并且拖入创建的InputActionReference(在XRI中找)依次点击Right Interaction->Action 中+号。功能:通过按右手柄a、b按键,实现camera(头盔)上下移动。1.创建XR InputActionReference。
2024-12-18 14:34:00
301
原创 unity使用天空盒
4.可以将材质球直接拖入场景中,也可以拖入main Camera的Skybox组件(需要添加)中。直接将从资源商店下载的.exr文件拖入Scene场景中(靠下的位置)3.将exr文件拖入材质球的Cubemap参数中。2.修改材质的shader为Cubemap。
2024-12-16 13:49:05
272
原创 c++字符串分割汇总
https://blog.youkuaiyun.com/Hsuesh/article/details/114190471?ops_request_misc=&request_id=&biz_id=102&utm_term=cpp%E5%88%86%E5%89%B2%E5%AD%97%E7%AC%A6%E4%B8%B2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-114190471.142^v82^ins
2023-04-11 14:13:42
78
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人