我对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组件连接。
发布您的脚本并解释/显示您如何将它附加到您的对象 – Programmer