1. 程式人生 > >Unity 解決在不同解析度下正圓或正方形的變形問題

Unity 解決在不同解析度下正圓或正方形的變形問題

最近在遊戲開發過程中發現一個問題:在一個解析度下建立的一個正圓或正方形物體換個解析度就變成橢圓或長方形了


如圖我做的就是這樣一個計時器,數字周圍的滾輪在執行時是滾動的,一旦解析度變換影響了正圓使其變成橢圓,這樣滾輪旋轉起來就太鬼畜了

於是乎我又投靠了傳說中萬能的百度,但依舊並沒有卵用,一堆無用資訊讓我又對百度失望了,於是我自己開始想法子,還真讓我想到了。

試著想想,像這種正圓或正方形最大的特點是什麼?小學生都知道就是正方形的邊長相等,正圓的直徑相等,當然我們的Unity裡的UI是沒有圓形框的,所以實質上就是保證UI的框邊長相等。那麼我們何不在程式碼裡動態控制UI框的邊長?話不多說,上程式碼:(在Start()方法裡新增)

<span style="white-space:pre">		</span>GameObject timeScroll = this.gameObject;//獲取物體
		float width = timeScroll.transform.GetComponent<RectTransform> ().rect.width;//獲取物體的寬(或高)
		timeScroll.transform.GetComponent<RectTransform> ().sizeDelta = new Vector2 (width,width);(設定寬高統一)

很簡單的方法吧