項(xiàng)目中有些時(shí)候需要用到HorizontalLayoutGroup或者VerticalLayoutGroup來(lái)動(dòng)態(tài)設(shè)置一些文本等其他組件保證適中或者其他需求
有時(shí)候就需要?jiǎng)討B(tài)設(shè)置一些文本,使用 ContentSizeFitter 組件保證文本大小動(dòng)態(tài)設(shè)置,如圖一圖二,會(huì)用到上訴組件 保證在窗口中心, 但是如果動(dòng)態(tài)設(shè)置可能出現(xiàn)圖三的情況
原因是因?yàn)镃ontentSizeFitter這個(gè)組件計(jì)算文本RectTransform會(huì)晚一幀執(zhí)行,這個(gè)也能理解,雖然ContentSizeFitter有回調(diào),但是使用起來(lái)不是很方便,包括以前使用 組件的延遲調(diào)用enble 來(lái)使他回歸正常,但是使用這個(gè)發(fā)現(xiàn)有點(diǎn)麻瓜,于是找到了此方法
設(shè)置完成的時(shí)候 手動(dòng)調(diào)用下?Group組件
LayoutRebuilder.ForceRebuildLayoutImmediate(Group);
這樣 就會(huì)回歸正常狀態(tài)
ForceRebuildLayoutImmediate方法源碼如下:
試過(guò)這樣調(diào)用,發(fā)現(xiàn)沒(méi)什么卵用,老老實(shí)實(shí)的用上面的吧