Rect Transform

Rect Transform屬性

Rect Transform組件是Transform組件的2D佈局對應組件。當Transform表示單個點時,Rect Transform表示一個可以放置UI元素的矩形。如果Rect Transform的父變換也是Rect Transform,子矩形變換也可以指定相對於父矩形的位置和大小。

屬性:

  • anchoredPosition:這個RectTransform的Pivot相對於錨點的位置(當四個錨在一起時)。

    錨固位置是考慮錨點的RectTransform的pivot的位置。錨的基準點是錨的位置。如果錨沒有在一起,Unity會使用樞軸位置作爲參考來估計四個錨的位置。

  • anchoredPosition3D:這個RectTransform的Pivot相對於錨點的3D位置

  • anchorMax:面板Anchors的Max值,爲右上角錨柄在父RectTransform中相對比例位置

  • anchorMin:面板Anchors的Min值,爲右上角錨柄在父RectTransform中相對比例位置

    相對比例位置:(0.5,0.5)爲父物體正中心,(0,0)爲父物體Rect左下角,(1,1)爲父物體Rect右上角,其他是一樣的比例算法

  • offsetMax:矩形右上角相對於右上角錨柄的偏移量。

  • offsetMin:矩形左下角相對於左下角錨柄的偏移量。

  • pivot:旋轉、大小和縮放修改發生在主軸Pivot點周圍,因此Pivot的位置會影響旋轉、調整大小或縮放的結果。(那個小圓圈)

  • rect:在Transform的局部空間中計算出的矩形。

  • sizeDelta:這個RectTransform的大小相對於錨之間的距離。

  • ForceUpdateRectTransforms:強制recttransform內部數據的重新計算。

  • GetLocalCorners(Vector3[] fourCornersArray):在變換的局部空間中得到計算矩形的角。

    得到的是:矩形四個角相對於軸心Pivot的位置(四個角依次爲:左下-左上-右上-右下)

  • GetWorldCorners(Vector3[] fourCornersArray):在變換的世界空間中得到計算矩形的角。

    得到的是:矩形四個角相對於UICanvas左下角點的位置(待測試驗證)(四個角依次爲:左下-左上-右上-右下)

  • SetInsetAndSizeFromParentEdge(Edge edge, float inset, float size):設置該矩形相對於父矩形指定邊緣的距離,同時設置其大小。

    使該矩形的edge邊離父矩形的edge邊inset距離,高度/寬度爲size

  • SetSizeWithCurrentAnchors(Axis axis, float size):使所計算的RectTransform爲指定軸上的給定大小。

    不改變Rect的Pivot位置和座標,不改變錨點位置,設置Rect的寬和高


綜上所述:

1.使UI自適應父物體大小位置:

rect.anchorMin = new Vector2(0,0);
rect.anchorMax = new Vector2(1,1);//對其錨柄
rect.offsetMin = new Vector2(0,0);
rect.offsetMax = new Vector2(0, 0);//調整間距

2.注意,一些RectTransform計算是在計算UI頂點之前在框架的末尾執行的,以確保它們與整個框架中執行的所有最新更改保持一致。這意味着在Start回調和first Update回調中還沒有第一次計算它們。

您可以通過創建一個Start()回調並向其添加**Canvas.ForceUpdateCanvases()**方法來解決這個問題。這將迫使Canvas不是在框架的末尾更新,而是在調用該方法時更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章