unity识别地形材质

前段时间有一个小需求,模拟汽车烟尘烟尘尾迹仿真的算法,其中有一部分是需要判断汽车行驶的地形材质,根据地形材质来实现不同的效果,感觉这个功能还不错,于是拿出来给大家分享与交流。

其中借鉴了一个大佬的方法:http://answers.unity3d.com/questions/34328/terrain-with-multiple-splat-textures-how-can-i-det.html

因为公路马路等一些地形是用的模型,于是最开始我的思路是在汽车轮胎下面发出射线,将模型设定标签,来进行检测。但是由于还有地形(Terrain)刷的草地、沙漠等地形通过射线无法判断,冥思苦想之后,终于在网上找到了一个很好的方法。

 public Terrain terrain; // 定义一个指定地形
        //在当前的地形上返回一个指定点的相对混合的纹理的一个数组
        //返回的数组中的长度将等于已经添加到地形的材质数组
        //worldPos 目标的坐标,在项目里指汽车坐标
    public float[] GetTextureMix(Vector3 worldPos)
    {
        
        TerrainData terrainData = terrain.terrainData;
        Vector3 terrainPos = terrain.transform.position;
        //Debug.Log(terrainData);
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值