使用Time.deltaTime使用Sin和Cos旋转对象

时间:2019-02-09 22:37:25

标签: c# unity3d math

我想知道如何将time.deltaTime对象移动到只能在圆周上移动。

在这种情况下,我要处理一个围绕播放器旋转的相机。

    _GoalX += Input.GetAxis("Mouse X");

    float y = _PlayerHeight;
    float x = Mathf.Cos(_GoalX);
    float z = Mathf.Sin(_GoalX);
    transform.localPosition = new Vector3(x, y, z);

不应将相机立即放置在最终位置,而应随着时间的推移在播放器周围的圆周上移动。

我不能使用Vector3.Lerp(startvector,targetvector),因为那样摄像机可能会进入播放器。

1 个答案:

答案 0 :(得分:0)

在更新中,您可以这样做:

void update(){
angle += RotateSpeed * Time.deltaTime;
Vector3 offset = new Vector3(Mathf.Sin(_angle)* xRadius, _PlayerHeight, Mathf.Cos(_angle)* zRadius);
transform.position = _centre + offset;
}