unity常见的两种简单易上手的移动方式

第一,使用transform的translate进行移动。

使用方法:对象.transform.translate(方向向量*normalized * Time.deltaTime * speed);

normalized是将这个方向向量归一化,即模长等于1,这是为了控制速度等于后面的speed,如果不加也能够实现移动,但是速度不便于控制。Time.deltaTime是每一帧的时间,speed是你定义的速度,假设为10f,这样你就可以朝着这个方向以10f每秒的速度进行移动。

可以实现的效果如下:

transform.translate的移动

这个就是运用了transform.translate的方式进行实现的,不过其中还加入了贝塞尔曲线进行实现,所以会自动的平滑的移动,采用了路径点法的思想,后续会介绍贝塞尔曲线和路径点法。

这里面就是将贝塞尔曲线上面的点储存在了一个数组里面,然后根据点的坐标减去自己的坐标,形成一个向量,normalized进行归一化,然后每到达下一个点就index++,即拿出下一个点,每一个点的距离够短,所以有平滑的感觉。

第二,使用rigidbody的moveposition进行移动。

使用方法:先获取某个对象的rigidbody组件,命名为rb,rb.moveposition(position),对象会平滑的移动到position这个位置上,建议搭配unity自带的输入系统使用。

rigidbody.moveposition的移动

这个视频中人物的移动就是运用了刚体(rigidbody)的moveposition的移动方式,也能够很平滑的进行移动。

这样就能够实现平滑的移动,关于unity自带的操作系统,详细可以去看一看unity里面的官方文档,能有更好的理解。

以上的两种方式都是较为简单并且比较常用的移动方式,当然还有很多移动的方式,后续会添加进来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值