0. Graphic家族的类图
1. Image
1.1 Source Image
ImageEditor.cs
中找到关于Source Image
的代码
而m_SpriteContent
与m_Sprite
有关
在Imagg.cs
中, 如果SourceImage
使用的不是默认的贴图, 则使用的是overrideSprite
属性, 它返回字段activeSprite
而在mainTexture
属性中, 使用到了activeSprite.texture
. 在这里注意到mainTexture
没有set
方法, 说明无法动态更改Image
的mainTexture
属性, 若要动态修改图片, 可以使用RawImage.texture
1.2 Color
在设置图片顶点的时候, 已经把color给应用了
1.3 Material
在Graphic.materialForRendering
中获得应用的材质
在 Graphic.UpdateMaterial
中应用
1.4 RaycastTarget
在Graphic中
该属性在GraphicRaycaster
中的Raycast
被使用
1.5 Image Type
//todo
1.5.1 Simple
1.5.2 Sliced
1.5.3 Tiled
1.5.4 Filled
1.6 PreserveAspect
控制纵横比, 在Image.GetDrawingDimensions
中用到
1.7 SetNativeSize
重新设置图片的大小
2. RawImage
2.1 Texture
2.2 Color
2.3 Material
2.4 RaycastTarget
2.5 UVRect
UV是贴图的坐标, (X, Y) = (0, 0) , 表示图片的左下角, W, H表示图片的宽, 高
若XYWH都是0.5, 则效果如下左图
相关代码如下
3. Text
Text中关于网格计算填充的方法是OnPopulateMesh
//获得文本的边框信息
Vector2 extents = rectTransform.rect.size;
//获得文本的相关设置
var settings = GetGenerationSettings(extents);
//填充文本的网格
cachedTextGenerator.PopulateWithErrors(text, settings, gameObject);