目录
关键说明
Unity 设置如下
代码如下
生成和部分数值生成
角度转向量
计算背景范围
关键说明
效果图如下 来自红警ol游戏内的截图
思路:确定中心点为圆的中心点 然后 计算每个的弧度和距离
Unity 设置如下
没什么可以说的主要是背景图设置
代码如下
生成和部分数值生成
// 角度的个数也就是图片的数量
int angleCount = 3;
// 最大的角度 数量加 * 每个角度的个数
float maxAngle = angleCount * 50;
float offsetAngle = maxAngle * 0.5f;
// 全部的图片
Image[] allImage;
// 背景的弯形图
Image BgImage;
for (int i = 0; i < angleCount; i++)
{
//单个角度
float itemAngle = i * 50 - offsetAngle;
Vector3 v3Num = ToVector2(itemAngle) * 150;
allImage[i].localPosition = v3Num;
}
BgImage.FillAmount = CalculationBackground();
角度转向量
private static Vector2 ToVector2(float angle) { return new Vector2(Mathf.Sin(angle / Mathf.Rad2Deg), Mathf.Cos(angle / Mathf.Rad2Deg)); }
计算背景范围
private static float CalculationBackground()
{
// 需要占用的角度
float angleNum = 50 * (angleCount - 1);
// 圆一周的角度为360
return angleNum / 360;
}