拉伸的时候四周的切片被拉伸,中央的图片保持不变。
可以用于某些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