关于碰撞检测的主要配置我们看图中的Collision:

第一项:因为是一个,所以这里我选择的是World

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

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

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

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

第五项(Collides With):可碰撞范围,设置可以与该粒子系统碰撞的层

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

第七项(Send Collision Messages):发送碰撞信息,与下面这个方法有关

[csharp] view plaincopy

  1. // 需要处理的碰撞信息,放在被撞的物体身上  
  2. //(官方案例)给碰撞的物体添加粒子移动方向的力
  3. public ParticleSystem part;
  4. public List<ParticleCollisionEvent> collisionEvents;
  5. void Start()
  6. {
  7. part = GetComponent<ParticleSystem>();
  8. collisionEvents = new List<ParticleCollisionEvent>();
  9. }
  10. void OnParticleCollision(GameObject other)
  11. {
  12. int numCollisionEvents = part.GetCollisionEvents(other, collisionEvents);
  13. Rigidbody rb = other.GetComponent<Rigidbody>();
  14. int i = 0;
  15. while (i < numCollisionEvents)
  16. {
  17. if (rb)
  18. {
  19. Vector3 pos = collisionEvents[i].intersection;
  20. Vector3 force = collisionEvents[i].velocity * 10;
  21. rb.AddForce(force);
  22. }
  23. i++;
  24. }
  25. }

总结一下以上可以使粒子消失的方法有以下三种:

(1)设置Dampen为1;

(2)设置Lifetime Loss为1;

(3)设置较大的Min Kill Speed值

OnParticleCollision() 函数。

MonoBehaviour.OnParticleCollision(GameObject)

当粒子碰撞了collider非Trigger就会触发绑定了该脚本的 OnParticleCollision 函数。

这个可以用于游戏对象被粒子击中时应用伤害到它上面。

对了,还要把特效的Particle System 中的Collision组件里的Send Collision Messages 的对勾打上,才能使函数生效哦!

同一帧中即使一个粒子系统的多个粒子对象均与碰撞体对象发生碰撞,碰撞体对象也只会接收到一条碰撞消息,也就是OnParticleCollision只会被调用一次。

还可以利用ParticleCollisionEvent数组来处理多个粒子对象碰撞事件事件

Unity粒子部分所带的结构体属性解析

//结构体ParticleCollisionEvent包含的属性

public struct ParticleCollisionEvent

{

[Obsolete("collider property is deprecated. Use colliderComponent instead, whichsupports Collider and Collider2Dcomponents.")]

public Collider collider {get; }

public Component colliderComponent {get; }

public Vector3 intersection {get; }//碰撞的点在空间中的坐标

public Vector3 normal {get; } //粒子入射碰撞点的法线方向(eg:如果粒子从X轴正方向入射,则normal输出为(1,0,0),反之负方向为(-1,0,0))

public Vector3 velocity {get; }//粒子碰撞时的三维速度向量

}

Unity3D粒子系统碰撞器抑制、反弹相关推荐

  1. Unity3D --对撞机/碰撞器 介绍

    碰撞器一般都用作触发器而用,刚体一般用作真实碰撞. 静态对撞机:一个对象有对撞机组件,没有刚体组件. 这种情况在场景中的静态物体应用较多,比如墙体,房屋等静止不动的物体. 物理引擎假设静态对撞机是不会 ...

  2. 【unity基础_Day15】 灯光系统、粒子系统、车轮碰撞器、TimeLine时间轴

    一.灯光系统 Windos--Lighting--LightExplorer 可以直接查看场景中所有的灯光以及参数,方便环境灯光多的场景的操作 二.粒子系统 Unity粒子系统简介_悲欢离合的博客-C ...

  3. Unity3d bounds包围盒 和collider碰撞器区别

    Bounds 外包围盒 Bounds 叫作外包围盒.边界框.外扩矩形.是struct 结构体.而我们获得Bounds的主要途径有三种:Render,Collider,Mesh. Render.boun ...

  4. unity粒子系统碰撞

    粒子系统中有一项是collision,与粒子系统之外的产生碰撞mode选择world,其他参数含义如下 (Dampen):抑制(0~1),选这个为1时(完全抑制),碰撞之后,阻止了粒子,可以使碰撞的粒 ...

  5. 关于Unity中的刚体和碰撞器的相关用法(一)

    1.创建一个3D工程 2.构造项目文件目录 3.保存场景为game_scene到文件夹scenes中 4.创建一个Plane平面类型的GameObject节点和一个Sphere球体类型的GameObj ...

  6. Unity 碰撞器和触发器的理解

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...

  7. 深入理解Unity刚体(Rigidbody)、碰撞器(Collider)、触发器(Trigger)

    来自:http://blog.csdn.net/monzart7an/article/details/22739421 刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unit ...

  8. Unity 2.Space Shooter(碰撞器Collider,WebGL,刚体中属性,(定时)实例化、销毁游戏对象,触碰OnTriggerEnter/Exit,爆炸效果,音频,文字,定时调方法)

    目录 项目介绍 WebGL发布 游戏对象设置 灯光.相机 背景 移动游戏对象 Debug 制作子弹 射击动作 清理离开边界的游戏对象 制作危险物 添加爆炸,移动小行星,作为预制件 创建游戏控制器 循环 ...

  9. 详解Unity中的车轮碰撞器Wheel Collider

    前言 碰撞体组件定义了物体的物理性状,Unity中有一系列基本碰撞体,我们可以使用它们组合成任意形状,但除了基本碰撞体之外,Untiy还提供了诸如车轮(Wheel).网格(Mesh).地形(Terra ...

最新文章

  1. [算法] [常微分方程] [欧拉法 改进欧拉法 经典R-K算法]
  2. 将php-fpm添加至service服务
  3. SQL Server 相关create操作语句
  4. linux下的setenv使用
  5. (221)FPGA芯片结构组成
  6. 从iPhone SE到产品精神——一个科技记者的自述
  7. 程序开发剖解圣经(006)
  8. Ubuntu 16.04LTS+NVIDIA@GT620M+CUDA6.5环境搭建总结
  9. HTML5的骨架是什么,HTML5 骨架
  10. T32 simulator
  11. kubernetes入门之Downward API
  12. Web(ics-07)
  13. 腾讯云服务器基础操作
  14. Linux基础和命令大全
  15. [R语言基础]——数据处理实例
  16. 2.4.2 死锁的处理策略-预防死锁(破坏互斥条件、破坏不可剥夺条件、破坏请求和保持条件、破坏循环等待条件)
  17. java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...
  18. 一文了解,大数据就业薪资怎么样?
  19. 学习Java最好选择哪本书?
  20. ubuntu18.04安装微信和wineQQ

热门文章

  1. 小米9拍照黑科技:基于NAS的图像超分辨率算法
  2. pack_padded_sequence 和 pad_packed_sequence
  3. Java反射机制的基本概念与使用_Java进阶之reflection(反射机制)——反射概念与基础...
  4. matlibplot 一张图画多个曲线_一文读懂磁滞回曲线
  5. android获取apk名称_安卓逆向——APK安装流程
  6. SpringBoot 项目war包部署 配置外置tomcat方法
  7. arm中断保护和恢复_ARM中断返回的详细分析
  8. jQuery给输入框绑定键盘事件
  9. PL/SQL Developer中如何格式化SQL
  10. Linux——进程管理