Unity 弧形图片位置和背景裁剪

目录

关键说明

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;
}

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值