Transform.RotateAround但指定结束位置



我该如何编写代码,而不是更新为每帧绕固定点旋转一定度数(Unity内置(。。。

void Update() {
myTransform.RotateAround( myFixedPoint, degreesPerFrame )
}

可以围绕固定点向最终目的地旋转

RotateAroundTowards( myCurrentPosition, myFixedPoint, myEndPosition, durationInSeconds );

它需要计算myCurrentPosition和myFixedPoint以及myEndPosition和myFixedPoint之间的半径和度数,不知何故?

我没有确切的数学函数,但这里有一个关于如何实现我认为你想要的目标的粗略概述:

  • 从固定点计算当前角度
  • 计算到终点的角度
  • 计算度数差,在私人变量中跟踪
  • 使用专用var来跟踪经过的时间。。。持续1.5秒,将双var设置为1500(ms(,并减去每帧所经过的时间
  • 使用每帧经过的时间,再加上要改变的总度数,可以查看给定帧应该旋转多远
  • 使用具有给定帧旋转度的RotateRound
  • 如果你是";"足够近";,或者时间已经过去;"啪"的一声;物体应该在哪里的旋转/位置

对于初始函数。。。查找三角形函数计算。。。从跑道上升起。。。Sin/Cos/Tan等;转换";2个点成角度。

最新更新