如何做視頻網(wǎng)站旗下賬號(hào)怎么樣做網(wǎng)站推廣
Unity的布局組件Horizontal Layout Group是很好用的,當(dāng)然也包括其它布局組件也一樣好用。
比如要實(shí)現(xiàn)多按鈕開關(guān)自動(dòng)水平排列,那么就可以使用它了。
首先我們?yōu)榘粹o創(chuàng)建個(gè)父物體(我這里使用了Scroll View中的Content作為父物體),并添加Horizontal Layout Group組件,如下圖:
然后在下面創(chuàng)建了多個(gè)按鈕組件,每個(gè)組件都使用Toggle,方便可以實(shí)現(xiàn)點(diǎn)擊交互。設(shè)置Horizontal Layout Group的參數(shù)如上,那么就可以實(shí)現(xiàn)自主排列了。(其中Horizontal Layout Group的配置可以參考:Unity UGUI控件之Horizontal Layout Group-CSDN博客)
效果如下:
但是這樣遠(yuǎn)遠(yuǎn)不夠的,比如我們用代碼控制點(diǎn)擊當(dāng)前按鈕時(shí)會(huì)放大1.2倍,效果就變成下面這樣了:
這明顯不是我們想要的效果,按鈕與按鈕之間都交接在一起了。
大家會(huì)不會(huì)有個(gè)疑問,我們都使用了Horizontal Layout Group并勾選了Use Child Scale,按理應(yīng)該會(huì)按子對(duì)象的大小自動(dòng)排列好呀。但實(shí)際上這里并沒有如我們所想。
解決辦法就是重新再設(shè)置下Use Child Scale選項(xiàng),那么問題就可迎刃而解了。具體使用如下代碼:
transform.parent.GetComponent<HorizontalLayoutGroup>().childScaleWidth = false;
transform.parent.GetComponent<HorizontalLayoutGroup>().childScaleWidth = true;
這里要先設(shè)置childScaleWidth 為false,再設(shè)置為True,就相當(dāng)于重新刷新下組件的設(shè)置,最終效果如下:
這應(yīng)該就是我們想要的效果了。
Unity 使用Horizontal Layout Group和Toggle制作多個(gè)水平開關(guān)按鈕實(shí)現(xiàn)自動(dòng)排列和單個(gè)點(diǎn)擊放大后的自動(dòng)排列。_嗶哩嗶哩_bilibili