c# - 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 个矩形是平台。它们都围绕着假想的中心旋转。它们的速度都相同,因此它们永远不会彼此靠近。而且,他们都保持直立。蓝线和红线也是虚构的。中心没有物体。希望这可以帮助
解决方案
将变量:定义private float _angle;
为 public: public float _angle;
。
在此之后,通过单击脚本附加到的对象进入检查器并查找名为“角度”的变量。将此变量更改为每个平台的不同角度。
推荐阅读
- python - 从 Python Selenium 中的特定标签获取文本
- python - 如何使用三次或更高次数的多项式曲面回归拟合一组 3D 数据点?
- c# - 多个光线投射,只有两个在工作
- javascript - 从零开始的 jQuery 一页
- wordpress - 每当我尝试在 wordpress 的 function.php 文件中添加 js 函数时,它都会出现内存错误
- javascript - 反应复合组件 - 如何反应孩子?
- python - 倒计时假期
- angular - PrimeNG DataTable 以编程方式选择行复选框
- java - duplicate-finder-maven-plugin:1.2.1:check -> 添加 Hibernate 依赖后发现重复的类/资源
- powershell - PowerShell 将输出发送到电子邮件