usingUnityEngine;usingSystem.Collections;usingUnityEngine.UI;///
///移动完成之后的回调///
public delegate voidBezierMoveCompleteDel();public classBezierMove : MonoBehaviour
{///
///贝赛尔曲线的路径点的数量,数量越多获得的曲线越完美,但是消耗也就越大///
private int _segmentNum = 100;///
///获得贝赛尔曲线所有的路径点///
privateVector3[] _allposArry;///
///移动的速度///
private float _speed = 10;///
///所有的路径点的索引值///
private int _index = 0;///
///需要移动的目标///
privateTransform _moveTargte;///
///是否完成移动///
private bool _isMoveComplete = false;///
///初始化贝赛尔曲线所有的路径点///
/// 开始移动的位置
/// 中间点的位置,目的是改变物体移动的曲线弧度
/// 最终移动的位置
/// 需要移动的目标物体
/// 移动速度
/// 三点之间Bezier曲线上所有点的数量
public void Init(Vector3 startPos, Vector3 controlPos, Vector3 endPos,Transform moveTarget,float moveSpeed,int segmentNum=100)
{
_moveTar
Unity实现贝塞尔曲线移动

本文介绍了如何在Unity中使用贝塞尔曲线实现物体平滑移动。通过初始化贝塞尔曲线的起点、控制点和终点,获取路径上的所有点,并设置移动速度和段数,可以控制物体沿着贝塞尔曲线路径进行移动。在移动过程中,使用Slerp函数更新物体位置,直到到达曲线的终点。
最低0.47元/天 解锁文章
1042

被折叠的 条评论
为什么被折叠?



