吃鸡空投掉落射线检测,粒子系统产生红色信号烟

1.首先将飞机和空投模型导入Unity,添加进场景视图.
2.给飞机添加飞行动画,(由于飞机只飞行一次 将Culling Mode勾选成Cull Completely)
3.给飞机和空投添加碰撞框,并勾选飞机碰撞框的 Is Trigger 用于下列脚本

射线检测和碰撞脚本如下

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

public class jiangluo : MonoBehaviour {
    Rigidbody rb;     //定义刚体组件
    GameObject obj1;  //获取俩物体
    GameObject obj2;

    void Start(){
    rb.GetCompenent<Rigidbody>();
    rb.useGravity = false; //运行开始时  不勾选重力

    obj1 = GameObject.Find("CarePaKage_01");  //将场景中查找到的空投和降落伞赋给obj1和obj2
    obj2 = GameObject.Find("ParachuteCare");

    obj1.GetComponent<MeshRenderer>().enabled = false;  //开始时将俩物体的渲染给关闭
    obj2.GetComponent<MeshRenderer>().enabled = false;
    }
    void Update(){
    Ray myray = new Ray(transform.position,Vertor3.down);  //建立一条射线(有起点和方向朝下)
    RaycastHit hit;
    if(Physics.Raycast(myray,out hit,8))  //射线检测长度为8
    {
    Debug.DrawLine(myray.origin,hit.point); //在场景中画出射线
    if(hit.collider.gameObject.tag=="ground") //如果射线检测到标签为"ground"的物体
     {
      obj2.GetComponent<MeshRenderer>().enabled = true;  //射线一旦检测, 将降落伞模型渲染打开
      rb.drag = 8; //射线一旦检测  赋予一个为8的阻力
     }
    }
   }
   void OnTriggerEnter(Collider other)
   {
   rb.useGravity = true;  //飞机与空投碰撞框相撞时 让空投重力属性为true
   obj1.GetComponent<MeshRenderer>().enabled = true;  //同时打开空投的渲染
   }
 }

将此脚本挂在空投物体上

空投箱子与地面碰撞产生特效和红色信号烟粒子系统

1.首先在Unity建立两个粒子系统 一个是箱子落地产生气浪 一个是红色烟雾信号
2.调制好粒子系统个各项属性 模拟真实效果如下
这是气浪的属性调制
只是红色信号烟的属性调制
接下来开始写箱子与地面的碰撞脚本

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

public class pengzhuang : MonoBehaviour {
    public GameObject obj;  //首先public两物体用来代表两个粒子系统
    public GameObject obj2;

    // Use this for initialization
    void Start () {
        obj.SetActive(false);  //开始时两个粒子系统的激活状态为false
        obj2.SetActive(false);
    }

    // Update is called once per frame
    void Update () {

    }
    void OnCollisionEnter (Collision col)
    {
        if(col.gameObject.tag=="ground")  //如果箱子碰撞到标签为"ground"的地面
        {
            obj.SetActive(true);  //将粒子系统激活状态变为true
            obj2.SetActive(true);
        }
    }
}

将此脚本挂在空投箱子上,并且将两个粒子系统挂在脚本上
这样就能碰撞激活粒子系统产生特效了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值