Unity2019學習:常用功能--RectTransform腳本控制

RectTransform設置遊戲對象大小位置的時候,不僅在Unity編輯器中與Transform不一樣,程序控制上也不一樣。

RectTransform作爲一個組件存在於遊戲對象上,所有控制方法和屬性都在該組件下。

RectTransform下的rect類可以獲取遊戲對象的寬(rect.width)和高(rect.height),但是不可以直接設置。

Pivot 軸心和 Anchors 錨點

RectTransform類下的pivot屬性可以用於獲取和設置遊戲對象的軸心。

RectTransform類下的anchorMin和anchorMax屬性可以用於獲取和設置遊戲對象的錨點。

通常修改軸心或者錨點都會讓UI的位置或大小發生變化。

offset 錨點偏移

錨點偏移是2個矢量,一個是從左下角的錨點到遊戲對象的左下角,一個是從右上角的錨點到遊戲對象的右上角。無論當前錨點是形成點,線或者矩形,都能通過這樣2個矢量來設置遊戲對象的位置和大小。

在這裏插入圖片描述

SetSizeWithCurrentAnchors

offset錨點偏移用於定位遊戲對象比較方便,如果只是設置大小會略顯麻煩,特別是在遊戲對象進行大小變化的是。這個時候推薦使用SetSizeWithCurrentAnchors方法來設置大小。

SetSizeWithCurrentAnchors方法的第一個參數是選擇設置寬(RectTransform.Axis.Horizontal)還是高(RectTransform.Axis.Vertical),第二個參數是具體大小。

rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 200);
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100);

anchoredPosition

anchoredPosition屬性是一個矢量,通過該矢量可以獲取及設置當前遊戲對象的位置。

首先,根據遊戲對象的軸心,計算出在錨點矩陣中的參考點位置。

  • 如果是矩陣,則參考點到軸心的矢量即爲anchoredPosition。
  • 如果是線段,則錨點矩陣減少一個維度後,參考點的對應位置到軸心的矢量即爲anchoredPosition。
  • 如果是點,則是從錨點到軸心的矢量即爲anchoredPosition。

在這裏插入圖片描述

SetInsetAndSizeFromParentEdge

SetInsetAndSizeFromParentEdge方法是以父遊戲對象的上、下、左、右4個點中的一個作爲參照,同時設置遊戲對象到該點的距離和對應方向上的值。

在這裏插入圖片描述

簡單總結

  • 在程序中,修改軸心和錨點比較容易,只是修改完以後,都需要重新設置一下游戲對象的大小和位置。
  • offset錨點偏移設置位置和大小比較方便,但是如果要實現移動或者變形動畫就比較麻煩。
  • 變形推薦使用SetSizeWithCurrentAnchors方法,移動推薦使用anchoredPosition屬性,因爲這2種做法和錨點無關,在任何情況下都能使用。
  • SetInsetAndSizeFromParentEdge可以同時設置位置和大小,但是會修改錨點。僅推薦遊戲對象原有參考本身就是父遊戲對象4邊中間的點的時候使用。

示例場景:https://download.csdn.net/download/wuyt2008/13763453

B站視頻鏈接:https://www.bilibili.com/video/BV1kh41117xH/

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