創作內容

1 GP

Unity資料蒐集 ─ GUITexture

作者:悠浪貓│2014-11-17 19:54:37│巴幣:2│人氣:1326
為了寫自己的UI元件庫

搞這東西搞老半天啦,差點被玩死了

__________________________________________

GUITexture 小簡介


座標

場面上的物件座標跟攝影機的位置是兩回事,就算物件不動

你拉著攝影機到處跑也不會影響到她顯示的位置,她的座標永遠是攝影機的相對座標

而她的座標以螢幕左下到右上使用的參數是 0 ~ 1

座標起點為螢幕左下,GUITexture 的座標對準點也是 Texture 的左下

意思就是座標歸零的時候圖是服貼左下角的




Pixel Inset

貼圖的偏移值

GUITexture 運算完 object 的 transform 之後,會再根據這個值來移動和縮放

她是根據 transform 的設定下,再"額外"去對 x.y.width.height 做基於 Pixel 大小的增減

至於為什麼要這樣

在介紹Texture 時有額外的說明




Texture

物件內部的Texture,可以根據自己喜好來替換

很單純

但這個地方卻是整個GUITexture的核心,也是最好玩的地方


當你從列表中 Create 一個 GUITexture 之後

你可以發現她的 Scale X 和 Y 都是歸零的

而她主要用來設定位置和大小的是使用它內部的 Pixel Inset


為什麼呢

因為 GUITexture 乘載 Texture 大小是根據螢幕而定的

不管你給的 Texture 大小如何,她都會自動縮放成螢幕大小

所以你用 Editor 去創建 GUITexture 的時候她才會預設 Scale 是 0

然後再利用 Pixel Inset 去修正成想要的大小

因為我們一般在設定UI都是用 pixel 大小去設定,用 Scale 去設定大小並不直觀


所以!

我這個用 AddComponent 的玩家被玩死了

我還莫名其妙為什麼我 Add 和直接拉的差這麼多這麼噁心,還以為出Bug了!

因為 GameObject 預設 Scale x 和 y 是 1 阿!

而 Editor 拉出來的 GUITexture 會好心的幫你歸 0 .................


所以我們要怎麼用程式來做呢?

很簡單

創出要掛 GUITexture 的 GameObject之後,請果斷的把她Scale X,Y 歸 0

然後 Add GUITexture

接著新增一個 Rect 指定給 GUITexture 的 Pixel Inset

最後你只要改這個 Rect 就行了,不需要再去碰 GUITexture 的 Pixel Inset

因為 GUITexture 的 Pixel Inset 是指向這個 Rect 的

改這個 Rect 就會改到 GUITexture 的 Pixel Inset




OnMouse 函式群

GUITexture 這個 Component 本身就具有偵測滑鼠事件的功能

所以在附掛的 Script 中可以直接使用 OnMouseDown 之類的所有 Function

當滑鼠觸發的時候會自動 call


_________________________________________

祝大家玩的愉快


Have a nice Day
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2658755
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★magicyeats 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:遊戲製作日誌 [ 57 ... 後一篇:遊戲製作日誌 [ 58 ...

追蹤私訊切換新版閱覽

作品資料夾

Lobster0627全體巴友
大家可以多多來我的YT頻道看看哦(*´∀`)~♥https://www.youtube.com/@lobstersandwich看更多我要大聲說53分前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】