当前位置: 首页 > article >正文

unity3D雨雪等粒子特效不穿透房屋效果实现(粒子不穿透模型)

做项目有时候会做天气模拟,模拟雨雪天气等等。但是容易忽略一个问题,就是房屋内不应该下雨或者下雪,这样不就穿帮了嘛。

下面就粒子穿透物体问题做一个demo。

正常下雨下雪在室内的话,你可以看到,粒子是穿透建筑的。

那要怎么模拟真实的雨雪天气,不让粒子穿透房屋建筑呢?

一:设置建筑物

1.把房子的层级改成层(BuildingLayer),如下图所示

2.给房子加碰撞 BoxCollider或者MeshCollider都可以,按自己的需求选择添加即可。

二:设置粒子

拿下雪的粒子为例,按下面设置:

1.type:选择World

2.Dampen:抑制(0~1),选这个为1时(完全抑制),碰撞之后,阻止了粒子,可以使碰撞的粒子消失

3.Bounce:反弹(0~2),选完这个之后,可以让产生碰撞的粒子以某个角度反弹出去

4.Lifetime Loss:生命周期损失(0~1),碰撞之后让粒子损失百分比的生命周期,为1时(生命周期完全损失),可以使粒子消失

5.Min Kill Speed:最小清除速度,设置值越大,粒子发生碰撞之后被移除的速度越快,当达到某个值之后,可以近似碰撞之后立即消失

6.Collides With:可碰撞范围,设置可以与该粒子系统碰撞的层,这里我们选择之前添加的建筑层BuildingLayer

7.Collision Quality:碰撞质量,设置发生碰撞的碰撞概率大小,选项三项从上到下由高到低,越低碰撞到的概率就越低

8.Send Collision Messages:发送碰撞信息。

建筑物和粒子都设置完之后,就可以看到室外是鹅毛大雪,室内却没有雨雪的完美效果,如下图窗外飘雪~~:

拓展:

如果想看到粒子和建筑的碰撞信息,也很简单:

在建筑物上新建一个脚本如下图所示

运行查看控制台输出


http://www.kler.cn/news/331267.html

相关文章:

  • 在一个克隆的仓库中设置远程仓库并同步最新的更改
  • SpringBoot实现的师生健康信息管理平台
  • [Docker学习笔记]Docker的原理Docker常见命令
  • flink:java集成flink实现流数据处理(一)
  • Linux——环境变量
  • 获取unity中prefab的中文文本内容以及和prefab有关的问题
  • C++拾趣——绘制Console中圆形进度
  • Redis: 集群环境搭建,集群状态检查,分析主从日志,查看集群信息
  • 查看 Git 对象存储中的内容
  • 【数据结构】图的最小生成树
  • C/C++ 中的未定义行为(Undefined Behavior, UB)
  • Win10之解决:设置静态IP后,为什么自动获取动态IP问题(七十八)
  • SSL VPN | Easyconnect下载安装使用 (详尽)
  • QT入门知识----2024.8.21-9.28
  • MongoDB快速实战与基本原理
  • 【LeetCode每日一题】——17.电话号码的字母组合
  • 【易上手快捷开发新框架技术】nicegui组件button用法庖丁解牛深度解读源代码IDE运行和调试通过截图为证
  • 深入理解 CSS 浮动(Float):详尽指南
  • B 私域模式升级:开源技术助力传统经销体系转型
  • C(十)for循环 --- 黑神话情景