在《【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果》(点击打开链接)提到了Unity3D的物体爆裂、炸裂、碎裂效果到底是用哪些组件去制作的,但是只是提到如果制作一个碰撞时的击碎效果,当然这也是这个组件最基本的使用,不过,在实际上,更多情况是需要直接利用代码控制一个物件是否破碎,可以称之为“条件碎裂”。那么在Unity3D中,如何做到达到条件才触发的物体爆裂、炸裂、碎裂效果呢?其实还是同样利用到这个插件。下面举一个例子说明这个效果,为了使例子更加有趣,我做了一个点碎小球的例子:

在《【Unity3D】判断是否鼠标点击物体与血条制作》(点击打开链接)我曾经完成了一个点击扣血的效果,这里是进一步,在点到血槽变空之后,小球碎裂。这里也说明,在Fracturing & Destruction中,不借助任何物体的撞击,如何用代码让小球自然破碎。

制作过程如下:

1、与《【Unity3D】判断是否鼠标点击物体与血条制作》(点击打开链接)一样摆好血条之后,导入Fracturing & Destruction插件之后,和在《【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果》(点击打开链接)同样,生成一个Fractured Object,其位置摆放、内部材质应该和小球一模一样,但这里让他上来就碎,同时生成碎片的时候,弹出的对话框,问你是否收起原物体,这里选择否。

最终场景布置如下图所示,当然这不是本文的重点,之前两篇相关文章都详细说过了。

2、下面编写如下脚本,赋予给主摄像机Main Camera或者一个自己新建的GameObject,这里我是扔给了Main Camera一个GameScript.cs。

这个脚本让达到条件才触发的物体爆裂、炸裂、碎裂效果成为可能,其主要思想是:将原物体和碎片物体重叠放置,但我们一开始就用SetActive(false)让上来就会自动碎裂的碎片物体隐藏,将其收起来,则他遇到SetActive(true)才会播放碎裂效果,不过,在他要SetActive(true)的时候,也就是原物体SetActive(false)隐藏之时。同时,在小球被点击的时候,对其授予一个向Y轴正方向,也就是向上的小速度,在Fracturing & Destruction对其进行碎片分析的时候,就将它设置为刚体,所以其由于重力的作用会自动下降,做到一个点击摇晃的效果。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;//Slider属于UI,用到这个头文件  public class GameScript : MonoBehaviour
{public GameObject Fracture;//生成的碎片public GameObject Sphere;//原来的球public Slider HPStrip;//添加血条Slider的引用  private int HP = 10;//开始为10滴血  void Start(){Fracture.SetActive(false);//开始先收起并隐藏破碎物HPStrip.value = HPStrip.maxValue = HP;//初始化血条  }void Update(){if (Input.GetMouseButtonDown(0))//鼠标左键点下  {//住摄像机向鼠标位置发射射线    Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit mHit;//射线检验    if (Physics.Raycast(mRay, out mHit)){if (mHit.collider.gameObject == Sphere)//如果点击的是球{HP--;//点到这个球,血就-1  HPStrip.value = HP; //对血条执行操作  Sphere.rigidbody.velocity = new Vector3(0, 1, 0);}}}if (HP <= 0)//如果血槽空{Sphere.SetActive(false);//原来的球消失掉Fracture.SetActive(true);//破碎物体呈现,让他开始他的表演!}}
}

当然,我们还要主摄像机指明各个物体,才能使程序正确运行,HPSlider就是血条Slider,Fracture就是插件生成的破碎物Fractured Object,而Sphere就是原来的小球:

【Fracturing Destruction】点破小球——Unity3D中达到条件才触发的物体爆裂、炸裂、碎裂效果相关推荐

  1. Unity3D中实现物体内部的碰撞检测(流体在容器内飞溅)

    Unity3D中实现物体内部的碰撞检测-流体在容器内飞溅 方法一 方法二 将流体设置在容器内部,想让其填充满,却发现粒子碰到网格就会飞溅或者穿透,想到是物体内部的碰撞检测出了问题. 在Unity3D中 ...

  2. layui table 每列加标签_【前端】layui表格中根据条件给对应的列加背景色

    [前端]layui表格中根据条件给对应的列加背景色 [前端]layui表格中根据条件给对应的列加背景色 1.效果(根据条件动态给表格加背景色) 2.代码: 在我自己的项目中,由于条件比较多,提取出了一 ...

  3. 【Fracturing amp; Destruction】Unity3D的物体爆裂、炸裂、碎裂效果

    如果要想做到如下图的爆裂.炸裂.碎裂效果特效: 自己手写可不容易,因为需要利用<[Unity3D]Mesh>(点击打开链接)将一个物体分解成多个碎片,然后再写一系列的方法.此时可以利用到U ...

  4. 【Fracturing Destruction】Unity3D的物体爆裂、炸裂、碎裂效果

    如果要想做到如下图的爆裂.炸裂.碎裂效果特效: 自己手写可不容易,因为需要利用<[Unity3D]Mesh>(点击打开链接)将一个物体分解成多个碎片,然后再写一系列的方法.此时可以利用到U ...

  5. 简要分析unity3d中剪不断理还乱的yield

    在学习unity3d的时候很容易看到下面这个例子: 1 void Start () { 2 StartCoroutine(Destroy()); 3 } 4 5 IEnumerator Destroy ...

  6. Unity3D中场景烘培步骤分享

    在这里我想分享这段时间在Unity3D中使用灯光时遇到的问题和解决方案,希望能给大家带来一些帮助,当然如果有错误之处,还希望在评论中点出,以免把人带歪了,这里以2017版为准. 那么在Unity3D中 ...

  7. unity游戏中提示信息如何实现_RPG游戏中的剧情在Unity3D中如何实现呢?

    原标题:RPG游戏中的剧情在Unity3D中如何实现呢? RPG游戏想必不用多介绍了,剧情系统是RPG游戏中必不可少的功能. 曾经听过一些朋友谈论:目前正在做一款RPG游戏,但是不知道如何实现RPG游 ...

  8. Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断

    Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断 前言 一.每次移动判断是否到达终点 二.在移动函数中判断目标位置是否为终点 三.关卡胜利后,进入下一关 四.保留GameMana ...

  9. Unity3D 中 2D_Toolkit插件下载 和 导入方法

    Unity3D 中 2D_Toolkit插件下载 和 导入方法 1.你把下载来的包放到 安装目录:Editor\Standard Packages里面. 2.然后按ctrl+9,进入asset sto ...

最新文章

  1. Linux 上网配置 修改IP
  2. 24、springboot与缓存(2)
  3. C语言里面双分号是啥意思,问什么C程序里总是提示缺少分号;,而明明有分号?...
  4. AKKA Router路由
  5. Linux内核与文件系统分析
  6. 2017.4.5 java中static关键字
  7. push bullet matlab,PushBullet(推送)下载|PushBullet(推送)安卓版v16.5.4 官方最新版_软件侠下载站...
  8. excel 趋势线的定义
  9. 北大青鸟软件工程师 ACCP6.0课程体系
  10. 自动匹配模板 一分钟搞定财务报表
  11. word文档通配符换行_Word效率指南(二)
  12. excel无法加密保存在HTML,如何excel加密后另存为后无需再输入密码/excel加密文件怎么解密?...
  13. 基于STM32硬币识别检测
  14. UVA 1645 Count——dp
  15. 如何阅读Smalltalk程序
  16. 5.3. 虚拟存储管理------页面置换算法
  17. 四川大学信息服务平台 ScuInfo网页 JSON数据解析
  18. 树莓派添加网络打印机
  19. SSM框架搭建--maven的安装和配置
  20. Guitar Pro8吉他谱中文正式版

热门文章

  1. 哥德巴赫猜想:任意大于6的偶数都可以被分解成两个素数之和
  2. 视频分辨率转码(ffmpeg)
  3. js将阿拉伯数字转换成中文的大写数字
  4. ROC曲线的通俗理解
  5. python quit函数作用_初识Python之基础知识
  6. DataBinding找不到符号,import xxx.xxx.ActivityxxxBindingImpl
  7. 【Cocos Creator 实战教程(4)】——黄金矿工(上)(节点动作、碰撞体相关)
  8. unity触发时播放音效
  9. Java对马踏棋盘问题(骑士周游问题)的实现
  10. 告别 Google Reader,告别一个时代!