UNET連線遊戲(一){FPS基本設置&重生點}

本篇使用的是5.3版後有UNET的UNITY
目標:基本連線遊戲機制+多個重生點
1.準備工作

  • 首先將預先準備的場景匯入
    unet-basic_game-001
  • 接著Assets右鍵>ImportPackage>Characters 把人物控制器匯入
    unet-basic_game-002
    *將FPSController拉到場景上

  • 幫控制器掛上Capsule賦予型體
    unet-basic_game-003
  • 幫FPSController掛上如下圖兩個Network功能,並按下Apply將設定保存至Prefab
    unet-basic_game-004
    *詳細步驟請見(UNET基礎介紹)
  • 創建一個空物件重新命名為NetworkManager,並掛上如下圖兩個Network功能,刪除場景上的FPSController後,從資源庫拉到NetworkManager裡的PlayerPrefabs(再SpawnInfo中)
    unet-basic_game-005
    *詳細步驟請見(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
    unet-basic_game-006
  • 複製重生點並且分散到場景內
    unet-basic_game-008
  • 設定NetworkManager裡的出生點類型,完全隨機或者不重複
    unet-basic_game-007
  • 這樣就完成一個有基本功能的FPS連線內容了
    unet-basic_game-009
    *來一張海灘照

下期預告:UNET連線遊戲(二){讓子彈飛一毀}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *