Unity Scroll View在使用佈局的情況下自動更改大小,聊天室佈局
阿新 • • 發佈:2018-12-10
問題:
很多時候我們需要在一個scroll view裡面,content的大小隨內容的大小變換,同時content還要使用layout group來使下面保持一定的規格排列,比如上面的vertical layout group,再同時,還需要下面的子物體的大小隨自己的子內容來動態改變
例如聊天框 便捷任務框
之前我想只用這兩種方式來解決,後來發現,使用layout group之後子物體不能再使用content size fitter,雖然在editor狀態是沒問題的,但是動態生成之後,會產生布局混亂的狀態,後來我用程式碼計算寬度手動設定,但是這種方法太蠢,再查詢了很多資料後,找到了一種完美的解決方案
public GameObject obj; // Use this for initialization void Start () { GameObject obj1 = Instantiate(obj, transform); obj1.GetComponentInChildren<Text>().text = "asddddddddddddddddddddddddddddddddddd"; GameObject obj2 = Instantiate(obj, transform); obj2.GetComponentInChildren<Text>().text = "asddddddddddddddddddddddddddddddddddasdfsafadssaaaaaaaaaad"; GameObject obj3 = Instantiate(obj, transform); obj3.GetComponentInChildren<Text>().text = "asddddddddddddd"; GameObject obj4 = Instantiate(obj, transform); obj4.GetComponentInChildren<Text>().text = "asddddddddddddddd4444444444444444444444444ssssssssssssssssssssdddddddddddddddddddd"; GameObject obj5 = Instantiate(obj, transform); obj4.GetComponentInChildren<Text>().text = "asddddddddddddddddddd"; GameObject obj6 = Instantiate(obj, transform); obj4.GetComponentInChildren<Text>().text = "asddddd\n一二三\nCoder"; }
實現效果,類似於聊天室