天天看點

Unity基礎知識—UGUI (一)UGUI的公有元件 Rect Transform

文章目錄

  • UGUI的公有元件 Rect Transform
    • 屬性
    • 方法
    • 使UI跟随螢幕分辨率變化自适應
    • 畫布渲染器
      • 屬性
      • 方法
      • 靜态方法

UGUI的公有元件 Rect Transform

Unity基礎知識—UGUI (一)UGUI的公有元件 Rect Transform

Pos (X, Y, Z):矩形的樞軸點相對于錨點的位置

Width/Height:矩形的寬度和高度

Left, Top, Right, Bottom:矩形邊緣相對于其錨點的位置,可以将其視為錨點定義的矩形内的填充

Anchors:矩形左下角和右上角的錨點

①Min:矩形左下角的錨點定義為父矩形大小的一部分,0,0對應于錨定到父級的左下角,而1,1對應于錨定到父級的右上角

②Max:矩形右上角的錨點定義為父矩形大小的一部分,0,0對應于錨定到父級的左下角,而1,1對應于錨定到父級的右上角

Pivot:矩形繞其旋轉的瞄點的位置,定義為矩形本身大小的一部分,0,0對應于左下角,而1,1對應于右上角

Rotation:圍繞X,Y和Z軸的對象圍繞其樞軸點的旋轉角度(以度為機關)

Scale:在X,Y和Z次元上的縮放比

屬性

名稱 作用
anchoredPosition 為矩形軸點(Pivot)與與錨點中心(Anchor)點之間的相對坐标,與父節點無關
anchoredPosition3D 為矩形軸點(Pivot)與與錨點中心(Anchor)點之間的相對坐标(3D坐标),與父節點無關
anchorMax
anchorMin 矩形左下角的錨點定義為父矩形大小的一部分,0,0對應于錨定到父級的左下角,而1,1對應于錨定到父級的右上角
offsetMax 父對象RectTransform中右上角錨定的規範化位置
offsetMin 父對象RectTransform中左下角錨定的規範化位置
pivot 在RectTransform中旋轉的中心點
rect 矩形的位置(x,y)和長寬(width和height)
sizeDelta 如果錨點在一起,則sizeDelta與size相同。如果錨點位于父對象的四個角中的每個角落,則sizeDelta是矩形與其父對象相比要放大或縮小多少

方法

名稱 作用
ForceUpdateRectTransforms 強制重新計算RectTransforms内部資料
GetLocalCorners(Vector3 [] fourCornersArray) fourCornersArray 角填充的數組,每個角均提供其局部空間值。傳回的4個頂點的數組是順時針方向。它從左下開始,然後旋轉到左上,然後右上,最後到左下
GetWorldCorners(Vector3 [] fourCornersArray) 同上,不過擷取的是世界空間中計算出矩形的角
SetInsetAndSizeFromParentEdge(RectTransform.Edge edge,float inset,float size) 設定此矩形相對于父矩形的指定邊的距離,同時還設定其大小 edge 要從其插入的父矩形的邊緣 inset 插入距離 size沿插圖相同方向的矩形大小
SetSizeWithCurrentAnchors(RectTransform.Axis axis, float size) axis 沿其指定的軸 size沿指定軸的所需尺寸 。 使RectTransform計算的rect為指定軸上的給定大小

使UI跟随螢幕分辨率變化自适應

畫布渲染器

Unity基礎知識—UGUI (一)UGUI的公有元件 Rect Transform

屬性

名稱 作用
absoluteDepth 渲染器相對于根畫布的深度
relativeDepth 相對于父畫布的渲染器深度
cull 低消耗的界面顯隐,bool值
hasMoved 如果發生任何會使生成的幾何圖形的位置無效的更改,則為True
hasPopInstruction 啟用“渲染堆棧”彈出繪畫調用。使用層次結構進行渲染時,渲染器可以插入“ pop”。渲染所有子級後,将執行pop指令。
hasRectClipping 如果已在此渲染器上啟用了矩形裁剪,則為True
materialCount 此渲染器可用的材質數
popMaterialCount 此渲染器可用的内部遮罩材質數

方法

名稱 作用
Clear 删除所有緩存的頂點
DisableRectClipping 禁用此CanvasRenderer的矩形裁剪
EnableRectClipping EnableRectClipping(Rect rect),在CanvasRendered上啟用矩形裁剪。指定矩形外部的幾何将被裁剪(不渲染)
GetAlpha 擷取渲染器的目前Alpha
GetColor 擷取渲染器的目前顔色
GetMaterial 擷取配置設定給CanvasRenderer的目前Material
GetPopMaterial 擷取配置設定給CanvasRenderer的目前Material。内部用于遮罩
SetAlpha(float alpha) 設定渲染器的Alpha。将與UIVertex alpha和Canvas alpha相乘
SetAlphaTexture(Texture texture) texture 要傳遞的紋理, 将在_AlphaTex屬性下傳遞到着色器的Alpha紋理
SetColor(Color color) color 渲染器乘以顔色 設定渲染器的顔色。将與UIVertex顔色和Canvas顔色相乘
SetMaterial (Material material, int index) / (Material material, Texture texture) material 用于渲染的材料 ,texture 材質紋理覆寫 ,index材料索引 。 設定畫布渲染器的材料。如果指定了紋理,則它将用作“ MainTex”而不是材質的“ MainTex”
SetMesh(Mesh mesh) 設定此渲染器使用的網格
SetPopMaterial (Material material, int index) 設定畫布渲染器的材料,内部用于遮罩
SetTexture(Texture texture) 設定此渲染器的材質使用的紋理

靜态方法

AddUIVertexStream(List verts, List positions, List colors, List uv0S, List uv1S, List normals, List tangents);

不知道幹啥的,求告知

verts:要拆分的UIVertex清單

positions:頂點位置的目标清單

colors:頂點顔色的目标清單

uv0S:不清楚

uv1S:不清楚

normals:垂直法線的目标清單

tangents:頂點切線的目标清單

CreateUIVertexStream(List verts, List positions, List colors, List uv0S, List uv1S, List normals, List tangents, List indices)

将一組頂點元件轉換為UIVertex流

SplitUIVertexStreams(List verts, List positions, List colors, List uv0S, List uv1S, List normals, List tangents, List indices)

給定UIVertex的清單,将流分成其元件類型

繼續閱讀