原标题:【干货】在Unity中制作物体破碎效果
这篇教程将教大家如何在Unity中制作一个简单的碎片效果当物体撞击或销毁时,我们将物体分裂为更小的碎片来取代之前的仅仅直接“删除”物体
注意:这篇教程需要最新版本的Unity,已有一些基础的Unity经验为了稍后教程中更高级的效果,还需要一个3D模型工具
在特效嘚基础版本中,当启动时一个立方体将会被销毁只留下一些碎片真实的掉到地面上:
之后,我们将立方体换为更复杂的管状模型:
创建┅个新的Unity工程并打开一个新的场景创建一个平面来作为地面,创建一个立方体来作为可被破坏的物体然后放置一个方向光让物体更加奣显,创建两个新材质并将它们分配给地面和立方体这样我们就能区分开它们了。然后移动摄像机以便看到所有物体:
有很多种方法来“销毁”立方体现在,我们将采用最简单的的方法
创建一个新的Java脚本并命名为destructionController.js。我们将所有移除立方体和创建碎片的方法都放在这里在里边添加以下代码:
现在,将脚本添加给立方体开始游戏进行一次测试运行,立方体将会被销毁
被移除后,就像在截图中看到的┅样立方体在层级面板中也不存在了。
现在创建八个小的立方体;这些将作为当前大立方体的“碎片”给这些小立方体添加和大立方體一样的材质。(先不要担心他们的样子稍后会让它们看起来超级赞)他们看起来是这样的:
将八个立方体堆砌成一个单个的大立方体,注意它们之间不能有交叉:
给每个立方体一个刚体组件将它们的质量(mass)设置为22,激活使用重力(use gravity)并禁用动力学(is kinematic)这会使碎片使用物理特性落下。如果你想的话可以稍后自己改变这些值来做出更加适合你游戏的效果
现在将小立方体打组到一个新的空游戏对象上,并将它命名为remainCube当原来的立方体销毁时,将会被这个由小立方体组成的物体取代
将remainCube物体拖到工程文件夹中来创建一个预制。创建好之後从场景中将它删掉,这样它就可以被使用了
将之前代码完善为如下:
这将会在原来立方体的位置创建一个残片。之后原来的立方體会被移除,这会给人一种新生成的立方体还是原来立方体的错觉但是这个立方体“坏掉了”。
为了能让它工作起来我们不得不手动為立方体分配残片。点击它在检视面板会看到DestructionController脚本。有一个被叫做Remains的位置并且现在应该是空的。从工程文件夹中将remainsCube预制拖到这个位置
来一次测试运行吧!如果所有东西设置都正确,当按下空格时残片就会取代立方体。幸运的话它们应该会滚落到地面上
应该转换成類似于这种:
不幸的是,它没有保证碎片以一个好的方式滚落幸运的是,有办法来解决这个问题
创建一个新的空物体并给它一个球体碰撞器,但是不要添加刚体将残片拖到场景中,这样就可以编辑他们了将球体碰撞器添加给残片,这样它就和一些立方体有了交叉:
現在碎片会马上碰到球体,出现一个滚落效果:
根据现在创建的游戏我们不能在场景中一次提供太多的“碎片”。最直接的方法是在幾秒钟之后删除它们为了这样做,创建一个新的Java文件并命名为selfDestruct.js加入以下代码:
当物体被创建后,它将会等四秒钟然后销毁自身。将這个脚本添加给remainCube物体如果现在销毁立方体并创建残片,那么残片将会在四秒钟后销毁它们自己
这就对了!现在就有了一个当物体销毁時,可以有效的使物体破碎成更小碎片的基础现在就可以按照这个样子来使用这个特效了,不过让我们进一步来看看在更复杂的物体中怎么使用它
使用真实的物体来取代立方体
现在我们已经有了一个基础的系统,我们可以通过将立方体替换为实际物体来使效果更漂亮
將文件复制到资源文件夹中,3D模型会自动被导入以供使用在用它们之前,点击资源浏览器(AssetExplorer)中的文件以便确保资源文件是按照缩放比唎为1正确导入的(不是0.1或0.001;不然制作会变的复杂)
观察物体,在检视面板可以看到一个被称作meshfilter的区域点击它,会在工程面板得到可用網格的列表现在用这个管状模型替换那些立方体。
完整的模型使用barrel网格;小的立方体碎片需要用名字为barrel_fragment_01到barrel_fragment_08的网格这些分配好之后,将咜们的位置坐标设置为(0,0,0)(它们的轴心点已经设置好了,这样它们位置就很容易被归零了)
用一个网格碰撞器来取代之前的立方体碰撞器。移除碎片上所有的立方体碰撞器并且全部用网格碰撞器来取代。检查每一个网格碰撞器并确保每一个都添加了正确的网格(即barrel_fragment_01需要barrel_fragment_01网格等等)
上边的步骤做完之后,将所有的碰撞器设置为convex(一个非凸网格碰撞器不能和其他非凸网格碰撞器发生碰撞这是unity程序的問题)。还有要移除添加到残迹上边的球体碰撞器,这个现在已经不需要了
如果以上步骤全部设置正确,将会得到一个可以碎成8部分嘚管状模型
同样这个系统可以用于添加其他的毁坏效果。你有爆炸效果吗将它添加到残迹当中!添加一个破裂的声音。在里边添加一個粒子效果创建一个蓬松的烟雾特效。
这篇教程中向大家展示了最简单直接的制作物体破碎的效果的方式现在知道了怎么毁坏一个物體,从游戏中移除物体;在破碎之前用更小的碎片替换物体;还有就是后来碎片何如完成自身销毁
这个系统现在可以被修改或适应很多特殊的需求。当射击的时候可以放置板条箱或管状模型的碎片当飞机坠毁时可以创建一个爆炸。或者可以创建一个船分裂成两半的事故效果尽情玩耍吧!
菜鸟在线致力于移动互联网职业技能教育培训。
2014年获得海淀区政府专项基金支持。
2015年首创推出虚拟现实和H5全栈开發课程体系。
2016年课程体系全面升级,让知识创造的价值惠及更多的学生和家庭
2017年,累计输送人才近千人深受合作院校和企业好评。
公司在北京、广州、内蒙、沈阳、南京等地均已开设分中心
目前开设的课程方向涵盖互联网和虚拟现实领域的最新实用技术,有Unity3D开发、虛拟现实开发、增强现实开发、VR3D建模、次世代等
凭借对技术行业的敏锐洞悉、独特的教学模式,帮助有志于进入IT行业的年轻人实现自己嘚梦想和追求
加入菜鸟在线大家庭,您将拥有最新最全的课程体系最有保障的就业管理体系;毕业后成功就业,月薪过万不再是梦!現在报名还能享受以下福利优惠:
最近开班:7月10日南京开班,7月5日北京开班激烈抢座进行中,还没报名的小伙伴们要加快了!
咨询请撥打:400-877-8190我们将给您做最详细的解答!
报名请拨打:,我们将优先为您安排班级宿舍!
福利:推荐人将获得500元/人的奖励被推荐者将享受減免福利。
如需获取其他帮助欢迎留言!谢谢您对我们的支持!
目前100000+人已关注加入我们