unity新粒子系统的碰撞和触发

unity中新的粒子系统中碰撞:
首先勾选粒子系统属性面板上的collision,然后勾选send collision messages,就可以从代码中检测粒子的碰撞了;
这里捡几个重要的属性说明一下:
dampen 抑制 取值范围0-1,当为1时,粒子碰到碰撞器后会消失;
bounce 反弹 让粒子碰到碰撞器后反弹回去;
colliders with 选择可以发生碰撞的层;
这里写图片描述

unity中的粒子系统中的触发:
勾选属性面板上的triggers;
colliders 将要与粒子发生触发条件的对象放这;
inside 在触发器内部;
outside 在触发器外部;
exit 离开触发器;
enter 进入触发器;
ignore 忽略粒子 kill 干掉粒子 callback 代码控制粒子
radius scale 调大数值可以增加触发器范围;
这里写图片描述

代码来了:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ParticleCollider : MonoBehaviour {

    //发生粒子碰撞的回调函数
    private void OnParticleCollision(GameObject other)
    {
        print(other.name);
    }
    //粒子触发的回调函数
    private void OnParticleTrigger()
    {
        //只要勾选了粒子系统的trigger,程序运行后会一直打印
        print("触发了");

        //官方示例,拿来说明
        ParticleSystem ps = transform.GetComponent<ParticleSystem>();

        List<ParticleSystem.Particle> enter = new List<ParticleSystem.Particle>();
        List<ParticleSystem.Particle> exit = new List<ParticleSystem.Particle>();
        //particleSystemTriggerEventType为枚举类型,Enter,Exit,Inside,Outside,对应粒子系统属性面板上的四个选项
        int numEnter = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
        int numExit = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Exit, exit);
        //进入触发器,粒子变为红色
        for (int i = 0; i < numEnter; i++)
        {
            ParticleSystem.Particle p = enter[i];
            p.startColor = Color.red;
            enter[i] = p;
        }
        //退出触发器 粒子变为蓝绿色
        for (int i = 0; i < numExit; i++)
        {
            ParticleSystem.Particle p = exit[i];
            p.startColor = Color.cyan;
            exit[i] = p;
        }

        ps.SetTriggerParticles(ParticleSystemTriggerEventType.Enter,enter);
        ps.SetTriggerParticles(ParticleSystemTriggerEventType.Exit,exit);
    }

}

这里写图片描述

Unity中,粒子系统是一种强大的特效工具,可以创建各种动画效果,包括粒子碰撞。要在粒子系统中实现粒子之间的碰撞效果,你可以使用以下步骤: 1. 创建一个粒子系统:在Unity的Hierarchy视图中点击右键,选择"Effects",然后选择"Particle System"来创建一个粒子系统。 2. 配置粒子系统:通过Inspector视图调整粒子系统的属性。你可以设置颜色、大小、速度等等。确保启用了碰撞选项,这样粒子之间才能发生碰撞。 3. 添加碰撞模块:在Inspector视图中,展开"Particle System"的组件列表,找到"Collision"模块。启用该模块后,你可以配置碰撞的参数,如碰撞形状、碰撞力、碰撞事件等。 4. 配置碰撞形状:在"Collision"模块中,你可以选择不同的碰撞形状,如球体、盒体、平面等。根据你的需求选择适当的形状,并调整其大小和位置。 5. 调整碰撞参数:在"Collision"模块中,你可以调整碰撞力、弹力、摩擦力等参数来定义粒子之间的碰撞效果。根据你的需求进行调整,实现期望的碰撞效果。 6. 处理碰撞事件:在"Collision"模块中,你可以指定碰撞事件的响应。例如,当粒子发生碰撞时,你可以播放音效、触发特定的动画或粒子效果等。根据你的需求来处理碰撞事件。 通过以上步骤,你可以在Unity中实现粒子之间的碰撞效果。记得调整参数以获得最佳的视觉效果,并根据需求处理碰撞事件。祝你成功!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值