2017-08-26 118 views
0

我對Unity相當陌生,對網絡概念非常陌生。我試圖通過NetworkManager遊戲組件將包含自定義OnServerAddPlayer函數的NetworkManager腳本附加到空遊戲對象。但是,當我嘗試這樣做時,我收到「腳本類無法找到......確保文件名和腳本類匹配」錯誤。如何實施網絡管理員?

我的研究隱約暗示,也許只有MonoBehaviour腳本可以附加到GameObjects(?),但我一直無法找到任何明確說明這一點的地方。如果無法將NetworkManager腳本附加到GameObjects,那麼NetworkManager組件上的變量如何像startPositions和spawnPrefabs一樣引用?是否需要將該腳本附加到要調用的public override OnServerAddPlayer (NetworkConnection conn, short playerControllerId) {...}的GameObject?

預先感謝您!

編輯: 這裏是我的腳本:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.Networking; 

class PlayerManager : NetworkManager { 

    int roundRobin = 0; 
    public GameObject newPlayerParent; 
    NetworkManager manager; 

    public override void OnServerAddPlayer (NetworkConnection conn, short playerControllerId) { 
     manager = gameObject.GetComponent<NetworkManager>(); 
     Transform positionObject = manager.startPositions [roundRobin]; 
     GameObject newPlayer = GameObject.Instantiate(manager.spawnPrefabs[roundRobin], positionObject.position, positionObject.rotation, newPlayerParent.transform); 
    } 

} 

我試圖通過項目視圖中拖動到檢查用NetworkManager的,NetworkManagerHUD空對象附上腳本,NetworkDiscovery組件連接。

+0

發佈您的腳本並解釋/顯示您如何將它附加到您的對象 – Programmer

回答

0

只有繼承自Component的類可以附加到GameObject,其中包括MonoBehaviourNetworkManager確實儘管繼承MonoBehaviour,所以這不是問題。

錯誤消息是你最好的指導在這裏。確保你的班級在一個名爲PlayerManager.cs的文件中,並且在同一個班級中沒有定義其他類。