Unity 基于UGUI的逆向九宫格图片

拉伸的时候四周的切片被拉伸,中央的图片保持不变。

可以用于某些UI处理或者图片镂空处理。

基于Unity2018.4的Image源码。

新建一个类,假设叫ScaleImage,复制所有Image的源码,修改掉报错之后,增加2个float,叫“VerticalCenter”和“HorizontalCenter”,用这2个变量来调整中央格子的位置。再将“GenerateSlicedSprite”函数做如下修改:

private void GenerateSlicedSprite(VertexHelper toFill)
{
  if (!this.hasBorder)
  {
    this.GenerateSimpleSprite(toFill, false);
  }
  else
  {
    Vector4 vector4_1;
    Vector4 vector4_2;
    Vector4 vector4_3;
    Vector4 vector4_4;
    if ((UnityEngine.Object) this.activeSprite != (UnityEngine.Object) null)
    {
      vector4_1 = DataUtility.GetOuterUV(this.activeSprite);
      vector4_2 = DataUtility.GetInnerUV(this.activeSprite);
      vector4_3 = DataUtility.GetPadding(this.activeSprite);
      vector4_4 = this.activeSprite.border;
    }
    else
    {
      vector4_1 = Vector4.zero;
      vector4_2 = Vector4
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值