我正在尝试使角色跳到两个分之间。这两个点分开不同,在不同的高度处。
i具有使用vector3.movetowards在ienumerator中的vector3.movetowards的字符。但是,我该如何进行修改y轴,以使角色在弯曲的路径上移动以看起来好像跳跃?
角色需要在每个点上完全降落,所以我不能使用物理。
谢谢!: - (
图像示例
如果您可以调整要跳跃的峰值发生的位置(因此曲线不是完全圆形,而是弧形(,例如因此跳跃的峰值更靠近目的地。
查看您给定的图像,我建议使用弹丸运动的方程式在给定时间内使用给定开始速度(VO(和给定 angle(theta(。
如果您不熟悉弹丸方程,请在此处查看:https://en.wikipedia.org/wiki/projectile_motion
在 dramencement 中,您会找到这样的2个等式:
x = vo * t * cos(theta(
y = vo * t * sin(theta(-0.5 * g * pow(t,2(
因此,在Update
函数中,不要将对象直接移动到目标,而是沿弹丸运动进行临时目标,您可以使用上述两个方程进行计算。然后,您可以使用
Vector3.MoveTowards(curPosition,new Vector3(x,y,0),step);
考虑到z
值为0。