首页 > 其他分享 >Sprite padding, innerUV, outerUV的解释

Sprite padding, innerUV, outerUV的解释

时间:2023-07-28 23:34:12浏览次数:31  
标签:Sprite 像素 padding 空白 outerUV border innerUV size

1) Rect rect;

Sprite Mode为Single时: x, y总是为0; width, height为裁掉空白像素前的大小

2) Vector2 textureRectOffset;

左下角裁掉了多少空白像素

3) Rect textureRect;

x, y为Sprite左下角的坐标(图集左下角为原点); width, height为裁掉空白像素后的大小

4) Vector4 padding = UnityEngine.Sprites.DataUtility.GetPadding(sp);

上下左右裁掉的空白像素大小

5) Vector4 outerUV = UnityEngine.Sprites.DataUtility.GetOuterUV(sp);

左下角和右上角在图集上的uv值

6) Vector4 border;

9宫格4个区域的大小

7) Vector4 innerUV = UnityEngine.Sprites.DataUtility.GetInnerUV(sp);

innerUV.xy = outerUV.xy - paddingUV.xy + borderUV.xy

innerUV.zw = outerUV.zw + paddingUV.zw - borderUV.zw

8)Vector2 minSize = UnityEngine.Sprites.DataUtility.GetMinSize(sp);

minSize.x = border.x+border.z

minSize .y = border.y+border.w

9) Bounds bounds = sp.bounds;

center为裁掉空白像素前的中心的坐标(以pivot为原点),extends总是为长,宽的一半

center = (0.5 - pivot) * 裁掉空白像素前的大小 / 像素每世界空间单位

extends = 裁掉空白像素前的大小 * 0.5 / 像素每世界空间单位


图集示例

下面的图集大小为512x512

 

下面的图片中红色区域为outer对应的区域,绿色区域为inner对应的区域

1, 无9宫,无空白像素裁剪

 

rect: [(0, 0), size:(238x105), (238, 105)]
textureRectOffset: (0, 0)
textureRect: [(0, 338), size:(238x105), (238, 443)]
padding: (0, 0, 0, 0), paddingUV: (0, 0, 0, 0)
outerUV: (0, 0.6601563, 0.4648438, 0.8652344)
border: (0, 0, 0, 0), borderUV: (0, 0, 0, 0)
innerUV: (0, 0.6601563, 0.4648438, 0.8652344)
minSize: (0, 0)
bounds: center:(0, 0, 0), extends:(1.19, 0.525, 0.1), size:(2.38, 1.05, 0.2)
pivot: (119, 52.5)

 

2, 有9宫,无空白像素裁剪

 

rect: [(0, 0), size:(177x204), (177, 204)]
textureRectOffset: (0, 0)
textureRect: [(0, 0), size:(177x204), (177, 204)]
padding: (0, 0, 0, 0), paddingUV: (0, 0, 0, 0)
outerUV: (0, 0, 0.3457031, 0.3984375)
border: (35, 43, 38, 40), borderUV: (0.06835938, 0.08398438, 0.07421875, 0.078125)
innerUV: (0.06835938, 0.08398438, 0.2714844, 0.3203125)
minSize: (73, 83)
bounds: center:(0, 0, 0), extends:(0.885, 1.02, 0.1), size:(1.77, 2.04, 0.2)
pivot: (88.5, 102)

 

3, 无9宫,有空白像素裁剪

 

rect: [(0, 0), size:(128x128), (128, 128)]
textureRectOffset: (25.07612, 7.07612)
textureRect: [(0.07612038, 206.0761), size:(77.89713x113.8478), (77.97325, 319.9239)]
padding: (25.07612, 7.07612, 25.02675, 7.076118), paddingUV: (0.0489768, 0.01382055, 0.04888037, 0.01382054)
outerUV: (0.0001486726, 0.4024924, 0.1522915, 0.6248513)
border: (0, 0, 0, 0), borderUV: (0, 0, 0, 0)
innerUV: (-0.04882813, 0.3886719, 0.2011719, 0.6386719)
minSize: (0, 0)
bounds: center:(0, 0, 0), extends:(0.64, 0.64, 0.1), size:(1.28, 1.28, 0.2)
pivot: (64, 64)

 

4, 有9宫,有空白像素裁剪

 

rect: [(0, 0), size:(200x190), (200, 190)]
textureRectOffset: (12.07612, 14.07612)
textureRect: [(179.0761, 183.0761), size:(165.8477x152.8477), (344.9239, 335.9239)]
padding: (12.07612, 14.07612, 22.07613, 23.07613), paddingUV: (0.02358617, 0.02749242, 0.04311743, 0.04507056)
outerUV: (0.3497581, 0.3575706, 0.6736795, 0.6561013)
border: (50, 53, 52, 51), borderUV: (0.09765625, 0.1035156, 0.1015625, 0.09960938)
innerUV: (0.4238281, 0.4335938, 0.6152344, 0.6015625)
minSize: (102, 104)
bounds: center:(0, 0, 0), extends:(1, 0.95, 0.1), size:(2, 1.9, 0.2)
pivot: (100, 95)

 

标签:Sprite,像素,padding,空白,outerUV,border,innerUV,size
From: https://www.cnblogs.com/sailJs/p/17534893.html

相关文章

  • CSS Sprites + 圆角
    初步介绍当然,我知道现在有成千上万个关于用CSS处理圆角的教程,但不管怎么说,我仍然想把这篇文章展示给您。也希望您会发现这篇文章会非常有用。需要重点指出的是,这篇教程彻底地应用高级CSS技术,但是,我会尽力使初学者看起来简单。CSS3在这里还没有得到完全的应用,所以,知道现在,我会保......
  • android:padding="15dp
    Android中的padding属性解析在Android开发中,我们经常会使用到布局文件来定义界面的结构和外观。其中,android:padding属性是一个非常常见的属性之一,用于设置控件的内边距。本篇文章将为大家介绍android:padding属性的使用方法以及相关知识点。1.android:padding属性的作用androi......
  • 3. Q_ 对内联元素设置_padding_top_和_padding_bottom_是否会增加它的
    Q:对内联元素设置padding-top和padding-bottom是否会增加它的高度?(原题是Doessettingpadding-topandpadding-bottomonaninlineelementaddtoitsdimensions?)A:答案是不会。同上题比较纠结,不太明白这里的dimensions指的是到底是什么意思?放置一边,咱们来分析下。对于......
  • Android 的Margin和Padding属性以及支持的长度单位
    Android的Margin和Padding跟Html的是一样的。如下图所示:黄色部分为Padding,灰色部分为Margin。通俗的理解Padding为内边框,Margin为外边框对应的属性为android:layout_marginBottom="25dip"android:layout_marginLeft="10dip"android:layout_marginTop="10dip"an......
  • 手撕卷积神经网络历险记 三、padding操作图解
     在国内访问 Docker 官方的镜像,一直以来速度都慢如蜗牛。为了快速访问Docker官方镜像都会配置三方加速器,目前常用三方加速器有:网易、USTC、DaoCloud、阿里云。现在Docker官方针对中国区推出了镜像加速服务。通过Docker官方镜像加速,国内用户能够以更快的下载速度和......
  • CSS 图片加载提前占位 padding-top、padding-bottom
    今天聊一个图片加载提前占位的一个问题......
  • HTML cellpadding与cellspacing属性
    9.1.6HTMLcellpadding与cellspacing属性先介绍一些概念巢(cell)--表格的内容巢补白(表格填充)(cellpadding)--代表巢外面的一个距离,用于隔开巢与巢空间巢空间(表格间距)(cellspacing)--代表表格边框与巢补白的距离,也是巢补白之间的距离引用网址:http://www.dreamdu.com/x......
  • [SpriteKit] 制作瓦片地图小游戏
    概述SpriteKit制作瓦片地图游戏,深入了解2D游戏制作过程说实话这个2D游戏实战的入门看的我脑浆子都沸腾了,好多新的概念涌入,没做过游戏开发的我表示真的难以接受,吸收效率与之前相比也下降好多,不过越往后学,就能够加深对之前知识的掌握,这可能也是看书的好处吧......
  • [SpriteKit] 系统框架中Cocos2d-x制作小游戏ZombieConga
    概述使用SpriteKit实现一个简单的游戏,通过一个游戏来进行SpriteKit的入门,熟练2D游戏的API,也可以更好的结合在iOS应用中.详细今天我们进入一个全新的系列,先熟悉SpriteKit,然后再看实战的游戏案例。一、了解SpriteKit本期的内容就是使用SpriteKit实现一个简单的游......
  • 使用Graphics.Blit更改Sprite的颜色
    原理:利用publicstaticvoidBlit(Texturesource,Materialmat,intpass=-1);的mat参数:对材质的着色器进行后处理,来达到更改颜色的效果。使用:需要更改qunzi_2的颜色,更改颜色为随机,只需要提供sprite和材质球即可,效果如下:C#代码:#region更换Sprite的颜色publ......