1. 程式人生 > >遊戲製作之路-憤怒的小鳥-1

遊戲製作之路-憤怒的小鳥-1

本次分享的是我做的第一款Unity遊戲,當然,是借鑑網上的教學視訊製作的。
憤怒的小鳥,是在siki學院上看的,視訊連結
因為是半年前做的東西了,記得不是很詳細,大致總結一下我的收穫。
一、開始介面的搭建
一般在遊戲製作時候呢,我們會把window/lighting/settings中的auto generate取消勾選,他是自動生成的意思,會自動更新lightmap,可能會導致我們製作遊戲的時候會卡,可以自己手動烘焙,所以一般我們取消勾選。
設定背景的時候,我們一般先會建立一個Canvas(畫布),UGUI是Unity新支援的2D介面控制元件,所有的UI控制元件都需要在包含Canvas元件的物體下邊充當子物體,我們可以在GameObject->UI下建立物體時,會自動生成Canvas以及與其對應的EventSystem控制元件。 我們的Text,image,button等ui控制元件必須要建立在Canvas下,設定背景圖就要新增image控制元件,點選inspector中rect下左上角的十字來設定錨點,按住alt點選右下角的十字就會把image的錨點擴大到它的父物體上,也就是canvas,這樣圖片的大小就會和canvas保持一致了。在這裡插入圖片描述


canvas有三種渲染模式,分別是 Screen Space - Overlay, Screen Space - Camera和World Space。
Screen Space - Overlay模式下,Canvas將作為2D影象直接渲染在螢幕上,且處於螢幕的最前方,不會受其他任何物體遮擋, 同時不受任何設定的影響,即使沒有相機也可以看到其內容。

Screen Space - Camera模式下,Canvas可以指定渲染的相機,並根據相機距離Canvas的遠近以及相機的視錐體大小進行動態縮放,最終實現在螢幕上的平鋪效果。當有物體比Canvas更接近相機時,該物體會顯示在Canvas的前方。物體距離相機比Canvas遠的物體將會被遮擋,對於一些有層級優先順序要求的畫面,我們可以選擇這個 ,比如一些例子系統或者背景的ui顯示。

World Space模式下,Canvas會像3D物體一樣位於遊戲場景中,可以設定其位置和大小,與其他3D物體具有同樣的顯示效果,在前兩個模式下,我們是不可以調整canvas的位置和大小的。
在這裡插入圖片描述
我們繼續加上小喇叭,開始遊戲等image和text控制元件,addCompone給他們新增button元件,在Onclick下掛上點選時間的C#指令碼,當你滑鼠點選控制元件時,就可以觸發你所寫的指令碼了。
二、遊戲關卡介面
建立一個新的Scene,在File/build settings中新增場景,在原來指令碼中呼叫SceneManager.LoadScene(Scene的序號),就可以實現頁面跳轉了。在這裡插入圖片描述


這是我們的遊戲關卡介面,同樣,只是canvas和其它ui控制元件的組合。
常用的Find方法獲得遊戲物體():
1、GameObject.Find(string name);
這種方法查詢好處是能查到名字為name的gameobject。缺點是不能查詢非啟用的物體。而且會逐個遍歷所有物體。比較浪費效能。不要在任何場景都有這個方法
2、GameObject.FindGameObjectsWithTag(string tag)/GameObject.FindWithTag(string tag);
這兩個方法是根據tag來查詢遊戲物體。同樣不能查詢隱藏物體,但是因為是在tag集中查詢。效能優於上面一種。
3、 Transform.Find(string name);
這個方法是查詢自身的子物體。特點是可以查詢到非啟用狀態的子物體。缺點是如果需要查詢子物體的子物體還需填寫路徑。

我們利用gameObject.getComponent<…>() (注意:這是一個方法,必須要加括號)來獲取遊戲物體下的元件,通過指令碼中對獲得的元件的設定來實現遊戲物體的動態切換。

資料型別強轉:int.parse(float num) 為float型別的num轉換為int型。
其它的都是一些基礎問題了,setActive什麼的也比較簡單,剩下的我們下一篇再說。