Unity简单方法实现圆周运动
前言
首先,我们利用Unity API中的Transform.RotateAround来实现简单的圆周运动。但是这个实现,仅仅是使物体发生位移,我们还需要让物体在运动时朝着圆周运动的运动方向。
RotateAround
Transform.RotateAround方法使一个游戏对象绕着某点进行绕圆移动。
function RotateAround (point : Vector3, axis : Vector3, angle : float) : void
- point:圆心/中心点
- axis:旋转轴,绕着哪个轴进行旋转
- angle:每一帧旋转的角度
例:
square.RotateAround (point :pointObj.transform.position , axis : Vector3.up, angle : Time.deltaTime*angle)
A、B点分别为物体-'square'在绕pointObject位置旋转过程中的两个不同时刻所处的位置。
在A、B两点上,square物体的朝向(Rotation)不发生变化,始终保持原Rotation。
朝向运动切线
思路:以旋转中心为垂足,作‘旋转中心的位置-square物体位置’的垂线
我们可以通过Cross得到一个向量的垂直向量。
代码如下:
square.forward = Vector3.Cross(pointObj.transform.position-square.position,Vector3.up);
叉乘得到的是一个向量(Vector3.Cross
),我们可以通过左手定则来判断方向。通过指向圆心的向量(pointObj.transform.position-square.position
)*平面法向量(Vector3.up
)。得到园的切线(square.forward
)。
作者:Miracle
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/unity_technologyshare/1355/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/unity_technologyshare/1355/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
0
打赏
海报
Unity简单方法实现圆周运动
前言
首先,我们利用Unity API中的Transform.RotateAround来实现简单的圆周运动。但是这个实现,仅仅是使物体发生位移,我们还需要让物体在运动时朝着圆周运动……
文章目录
关闭