首页 > 解决方案 > Unity2D:让多个对象围绕同一中心旋转,但从偏移位置开始

问题描述

我希望我的游戏中的三个浮动 2D 平台围绕同一个中心旋转。我已经做到了这一点:

public GameObject Object;

public float RotateSpeed;
public float Radius;

private Vector2 _centre;
private float _angle;

private void Start()
{
    _centre = transform.position;
}

private void Update()
{

    _angle += RotateSpeed * Time.deltaTime;

    var offset = new Vector2(Mathf.Sin(_angle), Mathf.Cos(_angle)) * Radius;
    Object.transform.position = _centre + offset;
}

但是,它工作得很好-仅适用于一个平台。如果我在组合中添加更多平台,它们要么都从我们围绕中心的假想圆内的相同位置开始,或者,如果我偏移它们,它们都以不同的中心旋转(如果偏移量是 x=2,那么中心也偏移 2)。如何让 3 个平台围绕同一个中心旋转,但从圆周上的 3 个不同起点开始?(比如 0°、180°、270°)还是这样?(目前,所有 3 都从 0 开始)

谢谢

编辑:

这就是我希望 ti 旋转的方式。4 个矩形是平台。它们都围绕着假想的中心旋转。它们的速度都相同,因此它们永远不会彼此靠近。而且,他们都保持直立。蓝线和红线也是虚构的。中心没有物体。希望这可以帮助

在此处输入图像描述

标签: c#unity3d

解决方案


将变量:定义private float _angle;为 public: public float _angle;

在此之后,通过单击脚本附加到的对象进入检查器并查找名为“角度”的变量。将此变量更改为每个平台的不同角度。


推荐阅读