Unity的C#编程教程_7_制作炸毁物体的效果

  • Asset store 搜索 Crash Crate,免费下载素材
  • 把整体的 Object 和 碎片 Object 都加入场景
  • 创建 C# Script,命名为 Crate(条板箱的意思),挂载到整体箱子的下面
  • 把碎片箱子反激活,进行隐藏
  • 我们希望在按下 空格键的时候,可以把箱子炸掉
  • 打开脚本
  • 创建一个 public 游戏对象变量 fracturedCrate,然后进入编辑窗口把碎片箱子拖进去
  • PS:这里最好调整一下碎片箱子和整体箱子的坐标做到匹配
  • 然后删除场景中的碎片箱子
  • 下载官方的粒子素材,里面由爆炸效果
  • 爆炸效果拖入场景,把 Loop 勾选去除(所有组件都要去掉勾),不要循环,只要一次爆炸,应用到预制件
  • 在脚本里加上公共变量 explosionEffect,把爆炸效果预制件拖进去,场景中的删除
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Crate : MonoBehaviour
{
    public GameObject fracturedCrate;
    public GameObject explosionEffect;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Instantiate(explosionEffect, transform.position, Quaternion.identity);
            // 生成爆炸效果,同样位置,保持不旋转
            //Instantiate(fracturedCrate, transform.position, Quaternion.identity);
            // 生成碎片箱子,在同样的位置,保持不旋转

            GameObject fracturedCrateObj = Instantiate(fracturedCrate, transform.position, Quaternion.identity);
            // 生成碎片箱子的游戏对象,并赋值到一个变量
            Rigidbody[] allRigidBodies = fracturedCrateObj.GetComponentsInChildren<Rigidbody>();
            // 获取所有子对象的刚体,注意这里 Components 的 s 不能少了!
            // 放入一个列表中

            if (allRigidBodies.Length > 0) // 判断成功获取了刚体
            {
                foreach(var body in allRigidBodies)
                {
                    body.AddExplosionForce(1000, transform.position, 1);
                    // 施加一个爆炸的力量,1000牛顿,位置就在当前位置,辐射半径为 1
                }
            }

            Destroy(gameObject);
            // 消除整体箱子
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值