2016-11-06 32 views
1

所以我一直在爲一個類的項目工作,我已經進入了一個我看起來無法解決的問題。我曾問教練,他和我一樣困惑。統一5.4.2 - 規模和位置實例化的UI元素

現在我剛剛嘗試設置一個簡單的用戶界面來顯示按鈕列表來選擇要加載的級別。在運行時,代碼只是創建適當的按鈕等,並將它們放置在滾動視圖的內容對象內。很簡單,對嗎?那麼,as you can see的位置和權利是完全錯誤的,由800單位

畫布設置爲屏幕空間 - 覆蓋帆布倍線器設置與屏幕尺寸,我猜是問題的規模。我已經遇到了位置和比例更大的問題(取決於屏幕大小),但是通過手動設置變換的位置和局部比例來「固定」這個問題。

但是我一直沒有找到解決辦法,所有的使用google搜索,所以我會非常感激,如果有人可以幫助我,並向我解釋問題是什麼。

下面是它爲每個級別執行的代碼。這當然很麻煩,因爲我一直在盡力弄清楚問題所在。

 Level thisLevel = levelManager.levelList [i]; 
     GameObject levelButton = (GameObject)Instantiate (menuManager.levelButtonContainerObject); 

     levelButton.transform.SetParent (menuManager.mainMenuLevelContainer.transform, false); 
     levelButton.transform.position = Vector3.zero; 
     levelButton.transform.localPosition = Vector3.zero; 
     levelButton.transform.localScale = Vector2.one; 

     RectTransform levelButtonRect = levelButton.GetComponent<RectTransform>(); 
//   levelButtonRect.position = ApplyCanvasScale (new Vector3 (0f, -50 + (-100 * i), 0f)); 
     levelButtonRect.position = new Vector3(0f, -50 + (-100 * i), 0f); 
//   levelButtonRect.position = Vector3.zero; 
     levelButtonRect.sizeDelta = new Vector2 (0f, 100f); 
     Debug.Log ("Position " + levelButtonRect.position + ", Scale " + levelButtonRect.sizeDelta); 
+0

我可能已經過早地回答。按鈕是否已成爲VerticalLayoutGroup的父項? –

+0

你如何錨定ui對象?它是中心還是伸展或...? – Bijan

回答

0

嘗試增加這些你在哪裏設置位置及規模:

levelButton.transform.offsetMin = Vector2.zero 
levelButton.transform.offsetMax = Vector2.zero