目录
关键说明
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);// 圆一周的角度为360return angleNum / 360;
}