Unity3D_实时地形变化

时间:2014-01-17 09:28:24
【文件属性】:

文件名称:Unity3D_实时地形变化

文件大小:1.96MB

文件格式:UNITYPACKAGE

更新时间:2014-01-17 09:28:24

Unity3d,地形,Terrain

几个星期前,我在想,能否使用Unity来进行地形的实时变化?比如说,如果发生爆炸,它能否在地形中显示一个气泡?我认为学习更多高级的Unity中的地形特征将会是一个好的项目。 这要比我预想的更具挑战性,因为很难在执行这些操作时获得帧率来保持稳定。使用一些技巧,最终实现了我预想的效果。 示例是这样工作的。脚本随机产生“shell”并很快掉落到地面。每一个shell都依附着一个onTrigger对撞机。如果它和拥有 TerrainDeformer组件的地形相冲突的话,shell将告诉组件它的位置和爆炸的作用力。shell然后实例化一个爆炸(explosion)(由Ben Throop great Detonator framework提供),然后移除它自身。 TerrainDeformer脚本然后将那个位置翻译成相对地形的正确位置,并修改heightmap(地形高度)和alphamap(地形纹理)。一点儿数学知识用来在影响圆周内部查找所有的heightmap和alphamap位置。 被用于在影响范围重绘质地的纹理,是从基于传递到脚本(Terrain Deformation Texture Num)中的数字顺序索引值的地形纹理列表中选择的。在这个例子中,它被设置为1,因此它将使用列表中的第二个纹理来重绘质地。 在创建你自己的地形时,有必要将地形的高度设置为大于0米,从而形成弹坑。我建议深度至少为3米。这可以通过将地形高度设为大于3米的任何值,然后点击Terrain->Flatten Heightmap并输入3米。 出于执行的原因,保持你的Terrain Size为small是非常重要的,以及更重要的是保持Heightmap Resolution为low。在这个例子中,设置为33。 目前版本没有想缺乏地形边缘检测的局限性,并提供多个地形。这个例子表明它不仅能够工作,而且不会有大的性能损失。 感谢Calin创建一个泥土纹理。 为检测示例, 为获得源码(unitypackage), 源码要求:Unity 2.6 以及 Detonator Framework。


网友评论

  • 好东西,但是没导入进去
  • 谢谢楼主的分享,好东西
  • 非常感谢,可以借鉴很多
  • 效果十分好,我用的4.2成功导入,谢谢分享
  • 预期的效果实现了,给我的项目提供了思路,下一步把导弹做成铲子就可以做挖掘效果了。
  • 示例效果还行,但是自己导入使用的时候还是各种出错= =
  • 感谢,太值得借鉴学习了
  • 好东西,但是没导入进去....
  • 朋友,太感谢你的源码了!刚刚初学,收获不少!
  • 还不错,就是打出来的都是一样的坑。
  • 好东西,但是没导入进去....
  • 不错,可以借鉴下,做出更深点的东西
  • 朋友,太感谢你的源码了!刚刚初学,收获不少! 我是最新版4。0导入运行没有任何问题!
  • 高版本表示没成功导入
  • 示例的效果确实挺赞的,但是,应该是版本的问题,高级版本的Unity打不开。