html5在线网站,网站建站公司一站式服务,网站建设的大公司有哪些,品牌整合推广先说明一下我是如何用到#xff0c;有哪些处理的 用到这个组件基本上都是将列表进行排版操作的#xff0c;竖着#xff0c;或者横着#xff0c;横着用HorizontalLayoutGroup 还有一个和这个组件搭配的组件叫ContentSizeFitter 先说我是怎么发现这个组件不好用的
//本地读取…先说明一下我是如何用到有哪些处理的 用到这个组件基本上都是将列表进行排版操作的竖着或者横着横着用HorizontalLayoutGroup 还有一个和这个组件搭配的组件叫ContentSizeFitter 先说我是怎么发现这个组件不好用的
//本地读取测试数据 //StartCoroutine( FileTools.ReadData(“日常.json”, Callback)); private void Callback(string obj) { JObject keys JToken.Parse(obj) as JObject; JArray keys1 keys.GetValue(“data”) as JArray; for (int i 0; i keys1.Count; i) { JObject keys2 keys1[i] as JObject; GameObject game Instantiate(gamel, parentl); game.SetActive(true); } RebuildContextUI(); } public void RebuildContextUI() { //LayoutRebuilder.ForceRebuildLayoutImmediate(parentl1); } 上述代码 就是读取数据然后解析完了生成数据显示的item然后刷新一下layout没啥不对劲的但是就是需要手动刷新一下就像这样 private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { RebuildContextUI(); } } 然后我发现子物体下有一个这样的代码 private void Update() { neirong.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, neirong.preferredHeight); image.rectTransform.sizeDelta new Vector2(image.rectTransform.sizeDelta.x, neirong.rectTransform.rect.height heightl); } 这段代码是实时去计算text的长度然后有个竖线的图片根据text的长度去变长还是变短 这段代码其实不用实时计算的我就把他放到了start里子物体生成后text的内容也填满了根本不需要实时计算我再想是不是这个原因导致的RebuildContextUI函数不起作用。 嘿嘿还真不是艹麻爪了封装的函数不起作用会不会是ContentSizeFitter组件的问题更改下模式发现可行显隐一下VerticalLayoutGroup组件发现问题也能解决。当我把代码还原回去后吧RebuildContextUI函数改变一下 public void RebuildContextUI() { VerticalLayoutGroup verticalLayout parentl1.GetComponent(); verticalLayout.enabled false; verticalLayout.enabled true;
}
发现还是不行我艹了手动在场景里改可以代码就不行然后试试吧子物体的update的函数的内容放到start就是之前说的计算text长度的这回这个显隐就生效了。子物体显示出来后也能正常显示子物体里的text长度也没有收到影响。如果还是不行我真是麻了