【Unity】UGUI動態適配Text尺寸大小
阿新 • • 發佈:2021-01-01
技術標籤:UGUI
Text.preferredWidth /Text.preferredHeight : Text的最優寬度/高度,保持當前高度/寬度不變,計算最優寬度/高度
在Text.text賦值字串後,計算字串的最優高度或寬度,可動態調整Text尺寸大小
例如,限制Text的最大和最小寬度,自動調整高度:
public class Test : MonoBehaviour { //Text最小/最大寬度 private int textSizeMinWidth = 100; private int textSizeMaxWidth = 500; int index = 0; private void Update() { if(Input.GetMouseButtonDown(0)) { index++; Text targetText = GetComponent<Text>(); string contentStr = ""; for(int i = 0; i < index; i++) { contentStr += "測試"; } SetTextSize(targetText,contentStr); } } private void SetTextSize(Text targetText,string contentStr) { if(targetText == null) return; targetText.text = contentStr; //寬高都不縮放 if(targetText.preferredWidth <= textSizeMinWidth) return; //寬度縮放,高度不變 if(targetText.preferredWidth <= textSizeMaxWidth) { targetText.rectTransform.sizeDelta = new Vector2(targetText.preferredWidth,targetText.rectTransform.sizeDelta.y); return; } //寬度最大,高度縮放 //設定最大寬度 targetText.rectTransform.sizeDelta = new Vector2(textSizeMaxWidth,targetText.rectTransform.sizeDelta.y); //設定最優高度 int textSizeHeight = Mathf.CeilToInt(targetText.preferredHeight); targetText.rectTransform.sizeDelta = new Vector2(textSizeMaxWidth,textSizeHeight); } }