本篇使用的是5.3版後有UNET的UNITY
目標:基本連線遊戲機制+多個重生點
1.準備工作
- 幫控制器掛上Capsule賦予型體
- 幫FPSController掛上如下圖兩個Network功能,並按下Apply將設定保存至Prefab
*詳細步驟請見(UNET基礎介紹) - 創建一個空物件重新命名為NetworkManager,並掛上如下圖兩個Network功能,刪除場景上的FPSController後,從資源庫拉到NetworkManager裡的PlayerPrefabs(再SpawnInfo中)
*詳細步驟請見(UNET基礎介紹)
2.撰寫網路控制程式
- PlayerController.cs 加入以下腳本到FPSController上
using UnityEngine; using UnityStandardAssets.Characters.FirstPerson; using UnityEngine.Networking; public class PlayerController: NetworkBehaviour { private FirstPersonController fpsController; private Transform playerCameraTransform; private Camera playerCamera; private AudioListener playerAudioListener; void Start() { if(!isLocalPlayer){ fpsController = GetComponent<FirstPersonController>(); playerCameraTransform = transform.FindChild("FirstPersonCharacter"); playerCamera = playerCameraTransform.GetComponent<Camera>(); playerAudioListener = playerCameraTransform.GetComponent<AudioListener>(); if (fpsController) { fpsController.enabled = false; } if(playerCamera) { playerCamera.enabled = false; } if(playerAudioListener) { playerAudioListener.enabled = false; } } } }
*目的:關閉非本地端控制者的一些程式腳本,例如第一人稱控制器、攝影機、聲音監聽…等
- 創建重生點:建立空物件→更名為SpawnPoint→加入Network>NetworkStartPosition
- 複製重生點並且分散到場景內
- 設定NetworkManager裡的出生點類型,完全隨機或者不重複
- 這樣就完成一個有基本功能的FPS連線內容了
*來一張海灘照
下期預告:UNET連線遊戲(二){讓子彈飛一毀}