大家好

最近使用Unity 3D 的 UI  scroll rect 元件功能
但是發現我的元件 (變動性內容高度) 做好之後
上下拖拉是拖不動的
 
找一下問題發現是:
 
內容物件高度必須大於父物件
這種問題容易發生在自動高度的設定上

也就是 內容物件 的高度是自動符合父物件高度,這樣指定scroll rect 之後就會發生無法上下拖拉的問題

 
所以使用scroll rect時候要注意到子物件如果要可以被上下拖拉
子物件高度需要大於父物件
 

 
 

指定內容物件 ( 子物件) 高度可以參考:

//actionItemOrg 是列表物件的原生物件(用於複製)
//number 是有幾個物件
//sizeDelta.y * number是將內容高度指定成 actionItemOrg  個數的高度
actionItemOrg.transform.parent.gameObject.GetComponent().sizeDelta = new Vector2 (actionItemOrg.transform.parent.GetComponent().sizeDelta.x, actionItemOrg.GetComponent().sizeDelta.y * number);
 
如果設定好就會像以下這樣:

 
如果內容高度是自己指定的話
應該不太會發生像我這樣拖拉不動的問題
但是如果高度是自己定義
對於多解析度螢幕情況就會不友善
還真是需要多方調教了