Unity 场景草的摆动与优化

场景地形如果使用mesh来做,就不能使用Unity的草系统了。因此模拟了一套草的系统,且支持草与人物的互动,即当玩家走过草堆,草会做出相应的摇摆。

首先,在场景中的草是会自己左右摇摆,这些动画都放在了顶点shader中完成。在美术做草的mesh中,加了要求。草的UV坐标有一个规则,即草根部顶点的UV坐标的y为0.

这样,在shader中,就可以通过uv坐标来判断哪些顶点需要摇摆,哪些不需要(很明显,草根的顶点是不需要摇摆的)。

先把顶点变换到世界坐标系下,调用下列函数,来改变顶点的位置。玩家与草的互动信息是保存在mesh的uv1中的,这个数据时每帧更新的。

float4 GrassRock(float4 pos, float2 uv,  float2 uv1 float dir)
{

if (uv.y > 0.99)
{

float windx = 0;

float windz = 0;

if ( dir >0 )

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值