IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity官方手册之ParticleSystem_Collision模块 -> 正文阅读

[游戏开发]Unity官方手册之ParticleSystem_Collision模块

官方文档访问总是太慢了,所以完全复制出来做查询用。建议访问官方手册https://docs.unity3d.com/Manual/index.html

Collision 模块

此模块控制粒子如何与场景中的游戏对象碰撞。使用第一个下拉选单可定义碰撞设置是应用于?Planes?还是应用于?World。如果选择?World__,请使用?Collision Mode__ 下拉选单定义碰撞设置是应用于?2D 还是 3D?世界。

Planes 模块属性

属性功能
Planes 弹出菜单选择?Planes?模式。
Planes用于定义碰撞平面的变换的可扩展列表。
Visualization选择要将 Scene 视图中的碰撞平面辅助图标显示为线框网格还是实体平面。
Scale Plane用于可视化的平面大小。
Dampen粒子碰撞后损失的速度比例。
Bounce粒子碰撞后从表面反弹的速度比例。
Lifetime Loss粒子碰撞后损失的总生命周期比例。
Min Kill Speed碰撞后运动速度低于此速度的粒子将从系统中予以移除。
Max Kill Speed碰撞后运动速度高于此速度的粒子将从系统中予以移除。
Radius Scale允许调整粒子碰撞球体的半径,使其更贴近粒子图形的可视边缘。
Send Collision Messages如果启用此属性,则可从脚本中通过?OnParticleCollision?函数检测粒子碰撞。
Visualize Bounds在 Scene 视图中将每个粒子的碰撞边界渲染为线框形状。

World 模块属性

属性功能
World 弹出菜单选择?World?模式。
Collision Mode3D 或 2D。
Dampen粒子碰撞后损失的速度比例。
Bounce粒子碰撞后从表面反弹的速度比例。
Lifetime Loss粒子碰撞后损失的总生命周期比例。
Min Kill Speed碰撞后运动速度低于此速度的粒子将从系统中予以移除。
Max Kill Speed碰撞后运动速度高于此速度的粒子将从系统中予以移除。
Radius Scale2D 或 3D 的设置。
Collision Quality使用下拉选单来设置粒子碰撞的质量。此设置会影响有多少粒子可以穿过碰撞体。在较低的质量水平下,粒子有时会穿过碰撞体,但需要的计算资源较少。
????High当?Collision Quality?设置为?High?时,碰撞始终使用物理系统来检测碰撞结果。此设置是最耗费资源但也是最准确的选项。
????Medium (Static Colliders)当?Collision Quality?设置为?Medium (Static Colliders)?时,碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。请参阅下方的世界碰撞以了解与此缓存相关的更多信息。

Medium?和?Low?之间的唯一区别是粒子系统在每帧查询物理系统的次数。Medium?每帧的查询次数多于?Low

请注意,此设置仅适用于从不移动的静态碰撞体。
????Low (Static Colliders)当?Collision Quality?设置为?Low (Static Colliders)?时,碰撞使用一组体素来缓存先前的碰撞,从而在以后的帧中更快地重用。请参阅下方的世界碰撞以了解与此缓存相关的更多信息。

Medium?和?Low?之间的唯一区别是粒子系统在每帧查询物理系统的次数。Medium?每帧的查询次数多于?Low

请注意,此设置仅适用于从不移动的静态碰撞体。
Collides With粒子只会与所选层上的对象发生碰撞。
Max Collision Shapes粒子碰撞可包括的碰撞形状个数。多余的形状将被忽略,且地形优先。
Enable Dynamic Colliders允许粒子也与动态对象碰撞(否则仅使用静态对象)。
Enable Dynamic Colliders动态碰撞体是未配置为 Kinematic 的任何碰撞体(请参阅碰撞体相关文档了解有关碰撞体类型的更多信息)。
选中此选项可将这些碰撞体类型包含在粒子发生碰撞时响应的对象组内。如果取消选中此选项,粒子仅响应与静态碰撞体的碰撞。
Voxel Size体素 (voxel) 表示三维空间中的常规网格上的值。使用?Medium?或?Low?质量碰撞时,Unity 会在网格结构中缓存碰撞。此设置控制着网格大小。较小的值可提供更高的准确性,但会占用更多内存,效率也会降低。

注意:仅当?Collision Quality?设置为?Medium?或?Low?时,才能访问此属性。
Collider Force在粒子碰撞后对物理碰撞体施力。这对于用粒子推动碰撞体很有用。
Multiply by Collision Angle向碰撞体施力时,根据粒子与碰撞体之间的碰撞角度来缩放力的强度。掠射角将比正面碰撞产生更小的力。
Multiply by Particle Speed向碰撞体施力时,根据粒子的速度来缩放力的强度。快速移动的粒子会比较慢的粒子产生更大的力。
Multiply by Particle Size向碰撞体施力时,根据粒子的大小来缩放力的强度。较大的粒子会比较小的粒子产生更大的力。
Send Collision Messages如果选中此复选框,则允许从脚本中通过?OnParticleCollision?函数检测粒子碰撞。
Visualize Bounds在 Scene 视图中预览每个粒子的碰撞球体。

当其他对象围绕粒子系统时,通常情况下,粒子与这些对象相互作用才会使效果更有说服力。例如,水或碎片应该被坚固的墙壁阻挡而非直接穿过墙壁。启用?Collision?模块后,粒子可与场景中的对象发生碰撞。

通过从弹出菜单中选择?World?模式,可设置粒子系统来使其粒子与场景中的任何碰撞体碰撞。此外,也可使用?Collides With?属性根据碰撞体所在的层来禁用碰撞体。弹出菜单还有一个?Planes?模式选项,可用于向场景中添加一组不需要碰撞体的平面。此选项对于简单的地板、墙壁和类似对象非常有用,并且处理器开销低于?World?模式。

启用?Planes?模式后,可通过?Planes?属性添加一组变换(通常为空游戏对象)。平面在对象的局部 XZ 平面中无限延伸,其中以正 Y 轴表示平面的法线矢量。为了协助开发,无论对象本身是否具有任何可见的网格,平面都将在场景中显示为辅助图标。辅助图标可显示为线框网格或实体平面,也可进行缩放。但是,缩放仅适用于可视化;碰撞平面本身在场景中无限延伸。

启用碰撞后,粒子的大小有时会成为问题,因为它的图形在与表面接触时可能被裁剪。这种情况可能导致粒子在停止或反弹之前在一定程度上“下沉”到表面中。Radius Scale?属性通过定义粒子的近似圆形半径(以其实际大小的百分比形式)来解决此问题。此大小信息用于防止裁剪并避免下沉效应。

当粒子表示实体对象时,__Dampen__ 和?Bounce?属性非常有用。例如,砾石在抛出时往往会在坚硬的表面上反弹,但是雪球粒子在碰撞时可能会失去速度。Lifetime Loss?和?Min Kill Speed?有助于减少碰撞后残留颗粒的影响。例如,火球在空中飞行时可能会持续几秒钟,但在碰撞后,单独的火焰粒子应该快速消散。

如果启用了 __Send Collision Messages__,还可从脚本中检测粒子碰撞。脚本可附加到带有粒子系统的对象,也可附加到带有碰撞体的对象。通过检测碰撞,可将粒子用作游戏中的活动对象,例如飞弹、魔法和能量块 (power-up)。请参阅?MonoBehaviour.OnParticleCollision?脚本参考页面以了解更多详细信息和示例。

World Collision Quality

World Collision 模块具有?Collision Quality?属性,可将其设置为?HighMedium?或?Low。当?Collision Quality?设置为?Medium (Static Colliders) 或?Low (Static Colliders)?时,碰撞使用一组体素(3D 网格上的值)来缓存先前的碰撞,从而在以后的帧中快速重用。

该缓存由每个体素中的平面组成,其中的平面表示该位置处的碰撞表面。在每个帧上,Unity 都会检查缓存中是否有该粒子位置的平面,如果有,则 Unity 将其用于碰撞检测。否则会查询物理系统。如果返回了碰撞,则会将其添加到缓存中,以便在后续帧上快速进行查询。

这是近似算法,因此可能存在一些缺失的碰撞。可通过减小 Voxel Size 值来帮助解决这个问题;但是,这样做会占用额外的内存,效率也会降低。

Medium?和?Low?之间的唯一区别是允许系统在每帧查询物理系统的次数。Low 每帧的查询次数少于 Medium。一旦超出每帧预算,只能将缓存用于所有其余粒子。这样一来可能导致缺失的碰撞增加,直到更全面填充缓存为止。

?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 13:04:30  更:2021-11-17 13:05:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 23:41:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码