Unity3D小小小經驗篇 Canvas

2021-07-10 14:38:03 字數 2582 閱讀 8986

首先,ui是什麼就不用介紹了,按照unity手冊的意思就是,使用者的介面(翻譯不好,不要吐槽)。也可以說是使用者所看到的介面顯示元素。在unity5.x中,自帶了ui系統ugui,在建立ui後,如果沒有給ui加上canvas(畫布)那麼你建立的每乙個gui空間都會自動的建立在乙個畫布裡面。

那麼在講後續的東西前,要先提一下,unity中ui的繪製順序和它們出現在hierarchy的順序是一樣的。這也意味著你要調整gui控制項的順序只要調整它在hierarchy的順序就可以了。

同樣的我們也可以用過**控制gui空間的繪製順序他們分別是:transform中的setasfirstsibling():放在最上面,setaslastsibling():放在最下面和setsiblingindex(index):放在指定位置。順序在hierarchy中從上往下。

然後給button附上如下**:gameobject.transform.setaslastsibling();

至於setasfirstsibling()。效果和上面一樣,就是button如果在最下面那麼執行後就會跑到最上邊。

最後在看一下setsiblingindex(index):

給button附上如下**:gameobject.transform.setsiblingindex(2);

有沒有發現,如果我們要實現某個gui空間的隱藏是不是可以考慮將其順序放在最下面?這樣就可以簡單的實現隱藏了。然後再獲得當天空間的順序儲存起來,在要恢復的時候將順序復原即可。

獲得順序**如下:gameobject.transform.getsiblingindex()

好的,介紹完順序後我們來看下canvas的元件:

在csnvas中的randermode包含三種方式:

一:screen space – overlay

在這種方式中,ui的繪製層次會在scene之上,也就是說,在三維空間中,你建立的模型會被建立好的ui覆蓋!!

如下我們進行測試:我們建立乙個cube,可以發現,在image材質不透明的情況下,看不見cube物體。而當image材質透明才能看見。

① :我們將cube一般放在canvas裡面一邊放在外面。然而在game介面中,並不能看見cube物體

② :我們將canv面板隱藏,發現cube出現在game介面中:

二:screen space – camera

在這種方式中,ui的繪製和第一種一樣,就是方式進行改變。在canvas繪製區域會剛好在攝像機照射區域中:

那麼,我們可以將需要在ui中顯示的物體放置於canv和攝像機之間就可以顯示。同樣的,建立乙個cube進行測試

如上圖:可以清晰的發現cube出現在了game視窗中。

三:world space

在這一種方式中,canvas相當於世界中的一部分。也就是說他也是乙個gameobject,乙個可以在三維空間中改變的panel,也可以對其大小,位置進行調整。但是!他出現在game視窗的效果是要按照攝像機照射的範圍進行調整的。但是一般不是很推薦使用。

還是以cube進行測試,我們移動canvas讓其不正對攝像機。

可以在下方game視窗中發現,canvas沒有全部覆蓋視窗。

其中,在第一種和第二種的方式中,canvas是不可以調整的,只有第三種才可以進行調整。

下面我們進行下小總結:其中三種方式分別用①②③進行稱呼。

在三種canvas中都可以對ui進行編輯,其中①方式中ui是固定在game視窗上,並且處於最上層,會覆蓋後面的物體。②方式中,ui介面和攝像機之間有了距離,若物體在這個距離之間,那麼物體就會被繪製出來,反之則被覆蓋。③使canvsa變成乙個可調整的三維場景中的panel,成像原理參考gameobject。

unity3d小小白之山的製作

那就先畫乙個小山吧!超像的對不對!那我們現在開始畫山。在左上角找到gameobject 找到3d object的terrain,點選之後 scene框裡會出現 這就相當於建乙個地面吧,我們可以在這個地面上 放置人物 樹木 草 建山等等。現在開始畫山。找到inspector框 紅框裡的第乙個是 使山突...

Unity3D使用經驗總結 優點篇

一 可定製的ide環境 u3d這種all in one的設計思路,我在乙個叫神咒的 中見到過。集所有編輯器於一身。雖然神咒的編輯器不能自由擴充套件,但由於是公司內部的引擎,所以,它的使用,也很方便。比如,在場景中突然想要對乙個模型的材質進行編輯,則選中此模型,右鍵,彈出材質編輯器即可。u3d的元件式...

unity3D小小白之給移動的物體新增小尾巴

做個最簡單的示範吧 1 建立乙個cube 也可以是你自己想要的gameobject 2 點選component effects trail renderer inspector裡會出現以下內容 3 將你想要的尾巴材質 拖入element 0裡面 如果沒有新增材質球的話,出現的尾巴可能是粉紅色的一條帶...