文章目录

  • 一,实现思路
  • 二,粒子效果的实现
  • (1)子弹拖尾特效的实现
  • (2)枪口火焰特效的实现
  • (3)碎屑飞溅特效的实现
  • (4)子弹碰撞爆炸波特效的实现
  • (5)子弹碰撞特效的实现
  • 三,子弹与物体碰撞触发粒子特效的实现
  • (1)设置子弹预制体与被碰撞物体的参数
  • (2)子弹碰撞物体触发特效代码的实现
  • 四,最终效果


一,实现思路

使用粒子系统制作子弹拖尾特效与子弹碰撞特效,碰撞碎屑飞溅特效。在子弹生成的时候,将拖尾粒子效果置于子弹的子物体集中,保证拖尾粒子效果能跟随子弹物体一起运动,然后在子弹碰撞到物体的时候,在子弹位置生成碰撞特效与碎屑飞溅特效

二,粒子效果的实现

(1)子弹拖尾特效的实现

新建一个粒子系统对象,重命名为BulletTailE,修改参数值如下图

Unity FPS计算方式 unity fps教程_粒子系统

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_02


Unity FPS计算方式 unity fps教程_Unity FPS计算方式_03


Unity FPS计算方式 unity fps教程_粒子系统_04


Unity FPS计算方式 unity fps教程_Unity FPS计算方式_05


Unity FPS计算方式 unity fps教程_重命名_06

子弹拖尾特效实现效果如下图

Unity FPS计算方式 unity fps教程_重命名_07

(2)枪口火焰特效的实现

新建一个粒子系统对象,重命名为OpenFireP,修改参数值如下图

Unity FPS计算方式 unity fps教程_粒子系统_08

Unity FPS计算方式 unity fps教程_unity_09

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_10


Unity FPS计算方式 unity fps教程_粒子系统_11


Unity FPS计算方式 unity fps教程_重命名_12

Unity FPS计算方式 unity fps教程_重命名_13


Unity FPS计算方式 unity fps教程_c#_14


Unity FPS计算方式 unity fps教程_unity_15

枪口火焰特效实现效果如下图

Unity FPS计算方式 unity fps教程_unity_16

(3)碎屑飞溅特效的实现

新建一个粒子系统对象,重命名为ExplosionDetritus,修改参数值如下图

Unity FPS计算方式 unity fps教程_重命名_17


Unity FPS计算方式 unity fps教程_粒子系统_18


Unity FPS计算方式 unity fps教程_Unity FPS计算方式_19


Unity FPS计算方式 unity fps教程_粒子系统_20

Unity FPS计算方式 unity fps教程_unity_21


Unity FPS计算方式 unity fps教程_unity_22

Unity FPS计算方式 unity fps教程_重命名_23

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_24


碎屑飞溅特效实现效果如下图

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_25

(4)子弹碰撞爆炸波特效的实现

新建一个粒子系统对象,重命名为ExplosionEffect,修改参数值如下图

Unity FPS计算方式 unity fps教程_unity_26


Unity FPS计算方式 unity fps教程_粒子系统_27


Unity FPS计算方式 unity fps教程_Unity FPS计算方式_28

Unity FPS计算方式 unity fps教程_unity_29


Unity FPS计算方式 unity fps教程_unity_30


Unity FPS计算方式 unity fps教程_Unity FPS计算方式_31


子弹碰撞爆炸波特效实现效果如下图

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_32

(5)子弹碰撞特效的实现

将碎屑飞溅特效设置为爆炸波特效的子物体,使两个特效合成为子弹碰撞特效,效果如下图

Unity FPS计算方式 unity fps教程_c#_33

三,子弹与物体碰撞触发粒子特效的实现

(1)设置子弹预制体与被碰撞物体的参数

给子弹预制体添加刚体与碰撞体组件,并将碰撞体组件的IsTrigger选项点开,然后给被碰撞物体添加碰撞体组件,详细设置如下图

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_34


Unity FPS计算方式 unity fps教程_粒子系统_35

(2)子弹碰撞物体触发特效代码的实现

代码如下

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

public class BulletScript : MonoBehaviour
{
   
    public GameObject BulletTPrefab;//子弹拖尾特效预制体
    public GameObject ExplosionPrefab;//子弹爆炸特效预制体
    void Start()
    {
        GameObject BulletTail = Instantiate(BulletTPrefab);
        BulletTail.transform.parent = transform;
        BulletTail.transform.rotation = transform.rotation;
        BulletTail.transform.localPosition = new Vector3(0, 0, 0);//在指定坐标生成子弹
    }

   
    void Update()
    {
      
    }
    
    private void OnTriggerEnter(Collider other)//当物体接触到另外一个刚体时触发
    {
     
        GameObject ExplosionEffect = Instantiate(ExplosionPrefab,transform.position,transform.rotation);
        Destroy(ExplosionEffect, 2);

    }
   
}

把该脚本挂载于子弹预制体

四,最终效果

Unity FPS计算方式 unity fps教程_Unity FPS计算方式_36