教你做Unity第一個遊戲Roll A Ball(上)

Unity引擎是一個比較火熱,同時開發難度不高,易上手的遊戲引擎。有關Unity的介紹

同時以Unity為引擎的遊戲也越來越多,像王者榮耀,看火人,Rust。。。等等。

隨小編也隨著入一波坑,不過之前沒用引擎開發過遊戲,隨費了點力氣。(看官方教程,沒中文看的賊難受T_T)

OK,不多BB!

現在我就教大家做自己Unity的第一個遊戲 Roll A Ball

效果圖:

直接從項目上手

Step 0: 弄清楚我們要做個什麼遊戲

千里之行,始於足下。首先我們得知道我們要做什麼遊戲:我們是誰,應該怎麼玩,然後怎麼贏輸。

這遊戲比較簡單,如GIF所示,我們要控制一個球,球去吃小方塊,吃完就勝利。

Step 1: 創建工程

然後大家可以看到這個界面,作為新人會有點懵逼了。不急,咱就先做遊戲,先不管那麼多,而且這些東西理解起來不難。

有時候大家界面和我不一樣,那麼點右上角的Layout調整布局,找個自己喜歡的

我建議先摸索下上面的畫面,那是場景編輯器,遊戲場景中所有東西都要放在這個窗口裡面,先自己摸摸熟悉下。

Step 2: 創建遊戲物體

我們要創建個平面和小球:

在GameObject里的3D Object中:Plane是平面,Sphere是小球。

我們發現下面出現了我們剛創建的東西,下面的窗口是遊戲窗口,玩家視角

我們點擊剛創建的物體,就可以得到他們的屬性(在右邊面板)

我們添加屬性,寫腳本(我用的C#)都是在右邊的Inspector

我們感覺,顏色太白,不太好看,怎麼辦?換顏色稍微麻煩了點

然後把他拖拽到你放的遊戲物體上面

Perfect

Step 3: 讓小球動起來,並讓攝像機跟隨

(在GameObject中預設的物體都是實心的,即不可穿透模型)

我們想讓小球動,得先加個剛體組件:RigidBody

然後通過給他施加力,來控制移動。那怎麼加力?寫腳本!

終於到了代碼環節了

先說下編輯器:建議使用Visual Studio。默認的不好用,編輯器在Edit - Preferences裡面

如果沒有的話,去VS下個關聯Unity的插件

這裡的代碼可以這麼寫:

using System.Collections;nusing System.Collections.Generic;nusing UnityEngine;nnpublic class BallMove : MonoBehaviour {n private Rigidbody rd;//得到傳入的剛體組件n public float Force;//定義力度,公開訪問修飾符可以在外部修改ntvoid Start () {n //遊戲開始時執行,用於初始化n rd = this.GetComponent<Rigidbody>();nt}nntvoid Update () {n //遊戲每一幀畫面都執行一次n //下面傳入的參數為字元串,所以要寫的一毛一樣n float h = Input.GetAxis("Horizontal");//得到水平輸入,左為 1,右為 -1.下面一樣n float v = Input.GetAxis("Vertical");//得到前後輸入n rd.AddForce(new Vector3(Force * h, 0, Force * v));//給剛體(即物體)加力,接受參數為三維向量nt}n}n

對於攝像機跟隨,我們先做個簡單的,還不用滑鼠操控的那種,然後相機跟著豬腳屁股後面跑就行了。大概原理這樣:

然後對public修飾符的賦值:

第一次看見這麼賦值的,絕了,Unity 666

using System.Collections;nusing System.Collections.Generic;nusing UnityEngine;nnpublic class Follow : MonoBehaviour {n public GameObject player;//等會可以通過拖拽來賦值n private Vector3 offset;nt// Use this for initializationntvoid Start () {n offset = this.transform.position - player.transform.position;nt}nnt// Update is called once per framentvoid Update () {n this.transform.position = offset + player.transform.position;n }n}n

然後大家要達到這樣的效果:按WSAD或者上下左右可以移動

OK,先講一半,東西還是有點多的

大家多看看腳本的代碼怎麼寫的,可能聰明的你不需要下節就可以做出整個遊戲了!

小編為了美觀決定分上下,下馬上呈現!

推薦閱讀:

Unity接入多個SDK的通用介面開發與資源管理(二)
使用頂點投射的方法製作實時陰影
一個簡單的探照燈shader
Unity中的單例模式、回調函數、消息分發的使用區別?

TAG:Unity游戏引擎 | unity |