如何用Unity製作「怪物追蹤玩家」功能 發佈日期: 2023-04-242023-04-14 作者: yijun 文、查理 玩遊戲的時候常常不小心會跟敵人遭遇,對到眼的一瞬間,怪物就窮追不捨的跟著玩家。 這樣的功能要如何製作呢?會不會非常的困難?需要寫非常多的程式嗎? 如果使用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); } 再把這個程式碼,拖曳給怪物物件,按下播放鍵之後,就可以控制玩家移動,怪物會一直朝著玩家的位置移動。 加入菜鳥救星官方Line並回覆「我想看文章」,不定期獲得更多知識吧! 不同頻道,不同知識! Facebook Instagram Youtube 分享此文:分享到 Twitter(在新視窗中開啟)按一下以分享至 Facebook(在新視窗中開啟)按一下以分享到 Telegram(在新視窗中開啟)按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)請按讚:喜歡 正在載入... 相關