nav分隔線 nav分隔線

如何用Unity製作「怪物追蹤玩家」功能

icon_fb icon_twitter icon_google
如何用Unity製作「怪物追蹤玩家」功能

文、查理

 

 

玩遊戲的時候常常不小心會跟敵人遭遇,對到眼的一瞬間,怪物就窮追不捨的跟著玩家。

 

這樣的功能要如何製作呢?

會不會非常的困難?

需要寫非常多的程式嗎?

 

如果使用Unity製作,只要幾行程式碼,就可以完成了,也不需要做太多的設定,這都是因為Unity提供了非常強大的循路追蹤功能,首先我們可以做一個簡單的場景來做測試。

 

 

 

 

第一個部分:建立一個簡單的測試場景

 

1. 建立一個簡單的平面物件,當作地板

Game Object >> 3D Object >> Plane

 

2. 建立一個方塊作為玩家與怪物之間的障礙物

Game Object >> 3D Object >> Cube

 

3. 建立一個膠囊物件,作為玩家

Game Object >> 3D Object >> Capsule

 

4. 建立一個球體,當作怪物

Game Object >> 3D Object >> Sphere

 

 

 

 

5. 新增三個材質球,分別設定為:

紅色,指定給怪物物件

藍色,指定給玩家物件

灰色,指定給地板及障礙物

然後分別把這些物件,排列在適當的位置,這時候我們可以新增一個玩家控制的程式碼,如下:

 

void FixedUpdate () {

 

                float h = Input.GetAxisRaw ("Horizontal");

                float v = Input.GetAxisRaw ("Vertical");

 

                movement = new Vector3 (h , 0, v );

                movement = movement.normalized * Time.deltaTime * speed;

 

                playerRigidbody.MovePosition (transform.position + movement);

        }

 

完成之後,再將程式碼拖曳到玩家物件上,播放測試看看,按下鍵盤的方向鍵,即可開始移動我們的玩家物件。

 

怪物追蹤玩家的功能,主要需要設定三個部分:

 

第一部分,就是我們的地形設定

 

開啟共用功能static,同時選取地板及障礙物,在Inspector屬性欄的右上方,勾選static,再開啟選單Windows >> Navigation,開啟追蹤功能視窗,在Bake的標籤上點一下,再點擊右下方的Bake,即可快速完成烘焙地形可追蹤範圍。

 

 

第二個部分,點選怪物物件

 

開啟選單Component >> AI >> Nav MeshAgent,新增一個怪物追蹤的程式碼,程式碼輸入如下:

using UnityEngine.AI;

 

public GameObject player;

 

void Start () {

 

                player = GameObject.Find ("Player");

}

 

void FixedUpdate () {

 

                GetComponent<NavMeshAgent> ().SetDestination (player.transform.position);

 

}

 

再把這個程式碼,拖曳給怪物物件,按下播放鍵之後,就可以控制玩家移動,怪物會一直朝著玩家的位置移動。

 

🔸 學完簡單的追蹤功能,來看看如何用跨平台遊戲開發製作遊戲引擎:Unity跨平台引擎應用

 

 

 

 

FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan

痞客邦Blog:http://lccnetvip.pixnet.net/blog

本網站使用相關網站技術以確保使用者獲得最佳體驗,通過使用我們的網站,您確認並同意本網站的隱私權政策。欲了解詳情,請參閱 隱私權政策