Unity3D动态地形网格一

这篇博客介绍了如何使用Unity3D动态创建地形网格,通过高度图生成地形,并提供了源码。文章展示了从无到有创建一个基础地形面片的过程,包括设置材质、高度图,以及绘制网格的方法。作者提到,这个脚本可以作为起点,供需要扩展地形功能的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          
         最近一直都在搞flash3D,好像有点对不起朋友们了。这次简单的写一个动态创建地形网格的脚本给大家分享一下。        这次是第一部分,仅仅实现了通过高度图动态生成地形的部分。假如以后有心情和时间,再来慢慢的补充多通道刷地形材质、动态刷地形和保存高度图等的功能吧。以前我都不喜欢公开脚本源码,都是一个个部分的单独讲解然后让朋友们自己去组合起来的,但最近时间实在是不多,所以还是直接提供源码,然后在源码上面写注释,大家自行的观看吧。源码在最下面。更多内容,
        
        首先直接把脚本拖到某物体上面,运行,就会出现了上图所示的一个面片。这是因为为了方便大家测试,我在start里面调用了下面的SetTerrain方法。这个方法会创建一个默认的地形面板。长宽是100*100,段数是50*50,高度是-10米到10米的。
        当然了,我们真正用的时候,是使用重载的SetTerrain方法自己制定长宽高和段数这些数值的,把start里面的方法注释掉就行了。
现在由于没有指定默认的地面材质和高度图,所以我写了个警告提示。



这两个变量就是材质和高度图了,大家可以自行想办法去赋值。我现在写成public只是为了方便赋值测试,最好还是写get/set方法赋值。
还有一点,现在没有做地面的多通道材质,所以只是用了一个默认的shader。以后假如需要混合通道材质,改这个shader。


好,先不管以后了,把一个有草地纹理的材质球付给脚本。
出来了一个草地
我随便的用黑白图刷了一个高度图,然后扔进脚本。

注意的是,作为高度图的图片,是需要设置读写权限的,不然获取不到像素的颜色
出现了一个小小的山坡了。
其实我这个脚本并不是必须针对黑白图的,我随便拿了一张木箱子贴图,一样可以做高度图的,这是因为我是做了灰度处理的,最后获取的是该图片像素点上的灰度值。
看,地形出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值