《我的來世是個(gè)包裹》更新日志0716 : RectTransform相關(guān)
*補(bǔ)之前缺失的內(nèi)容
昨天做了海邊的程序生成場(chǎng)景動(dòng)畫。今天改進(jìn)下無光之海海中的動(dòng)畫,就是開場(chǎng)那個(gè)下沉的動(dòng)畫。想增加一些光影,更貼合劇情設(shè)定,美術(shù)細(xì)節(jié)也可以多一些。
一開始我是采用昨天那種方式,弄一個(gè)[SerializeField]字段,把一個(gè)空白的Image UI GameObject拖上這個(gè)字段。然后在程序里Instantiate,然后再改deltaSize和Sprite。之前我一直是這么做的。之所以不直接在代碼里new GameObject。是因?yàn)樾陆ǔ鰜淼腉ameObject默認(rèn)帶的是transform組件,而UI對(duì)象帶的則是RectTransform組件。
今天我想想不對(duì),不應(yīng)該是這樣的啊,照理來說所有的東西都是能純用代碼生成的。于是我試著AddComponent<RectTransform>()。果然,游戲?qū)ο蟮氖讉€(gè)組件從transform編成了RectTransform。我想了想應(yīng)該是這個(gè)原理:其實(shí)UI對(duì)象并不是基礎(chǔ)組件是RectTransform,它的基礎(chǔ)組件也是transform。只不過當(dāng)一個(gè)對(duì)象有RectTransform組件時(shí),transform組件不再顯示在IDE面板上。
這樣一來就方便多了。我不需要提前做一個(gè)空白的預(yù)制件作為輔助,直接代碼里生成就行了!
雖然可能用預(yù)制件花的時(shí)間更短……
標(biāo)簽: