上次說到「Texture不能是肉體」,但是我們仔細詳讀上次所分享的..
"WuFeng Chiang"關於Sprite的文章時可以發現:
「RawImage 也使用了 Canvas Renderer,但是不是使用 Image Script,而是 Raw Image Script,而 Raw Image Script 接受的圖片類型是 Texture,而不是 Sprite。」
還有「RawImage 使用 Texture,Image 使用 Sprite。」
同時「RawImage 使用 Texture,但是可以把 Sprite 指定給 RawImage。」
這一切看似很混沌,這究竟是為什麼呢?
還記我們前面說過:
「Sprite就是能組合成一個畫面的一層一層2D物件。」
所以Sprite在本質上是就物件。
而在該篇文章中,可以發現 Sprite 有 Texture 的property。
也就是說,該操作其實是這樣的。
rawImage.texture = spriteObject.texture;
既然可以都用 Sprite 來顯示圖片,那為何..
還要使用RawImage,而不是..
都用Image?
根據此篇文章的延伸閱讀"Raw Image vs Image?",Image只能展示Sprite,而RawImage能展示各種texture。而雖然Sprite,但Sprite的生成與管理,例如:Sprite.Create
很耗費計算與記憶體。
原文舉了個例:如果在展示RenderTexture時使用Image而非RawImage,Sprite.Create
會在每一幀被生成時被呼叫。
這是恐怖的「方便稅」。
該原文還貼心提醒,「在有plain texture(例如:靜態圖像)的時候使用RawImage。
呼,這些概念還真難懂。
還好我們在11:55分之前寫完了,對嗎?
「什麼叫你在使用夏令時間?」