根据角度获取圆形上某个点的坐标
圆上某个点坐标的计算公式:
x = c e n t e r X + r a d i u s ∗ c o s ( a n g l e ∗ P I / 180 ) \ x = centerX + radius * cos(angle * PI / 180) x=centerX+radius∗cos(angle∗PI/180)
y = c e n t e r Y + r a d i u s ∗ s i n ( a n g l e ∗ P I / 180 ) \ y = centerY + radius * sin(angle * PI / 180) y=centerY+radius∗sin(angle∗PI/180)
centerX centerY 圆的中心点
radius:半径
angle:旋转角度(起始方向为 3 点钟方向)
示例:动态改变按钮位置
本案例将按钮的位置设计成围绕着生成器旋转排列。当按钮数量为 3 时,就每隔 120° 放一个按钮,当按钮数量为 4 时,就隔 90° 。
代码示意:
// 根据防御塔数量决定按钮的旋转角度
for (int i = 0; i < _createBtnList.Count; i++)
{
// 计算旋转角度
float angle = 360 / _createBtnList.Count * i + 90;
// 使用公式算出按钮坐标
//x = centerX + radius * cos(angle * 3.14 / 180)
//y = centerY + radius * sin(angle * 3.14 / 180)
_createBtnList[i].position = new Vector3(100 * Mathf.Cos(angle * Mathf.PI / 180), 100 * Mathf.Sin(angle * Mathf.PI / 180), 0);
}
通过遍历按钮列表 List _createBtnList ,计算每个按钮的旋转角度,再根据角度计算出按钮的坐标。最后再给这个角度增加90°,让起始坐标从 3 点钟方向变为 12 点钟方向。
最终效果
更多内容请查看总目录【Unity】Unity学习笔记目录整理