Skip to content

Instantly share code, notes, and snippets.

@mzandvliet
Created October 3, 2015 14:55
Show Gist options
  • Save mzandvliet/5d31f84394608c9f5ba4 to your computer and use it in GitHub Desktop.
Save mzandvliet/5d31f84394608c9f5ba4 to your computer and use it in GitHub Desktop.
private void OnClientAddPlayer(NetworkMessage netmsg) {
var msg = netmsg.ReadMessage<AddPlayerMessage>();
Debug.Log("Spawning object for player: " + msg.playerControllerId);
/* First, create instance and spawn it */
var instance = (GameObject)Instantiate(_playerPrefab, Vector3.zero, Quaternion.identity);
NetworkServer.AddPlayerForConnection(netmsg.conn, instance, msg.playerControllerId);
/* Then add role-specific components and resolve dependencies, if prefab needs it */
var simulator = instance.GetComponent<PlayerSimulation>();
simulator.GameClockFixed = _gameClockFixed;
var network = instance.GetComponent<PlayerNetwork>();
var server = instance.AddComponent<PlayerServer>();
server.GameClockFixed = _gameClockFixed;
server.GameClock = _gameClock;
server.Simulation = simulator;
server.Network = network;
var dedicated = instance.AddComponent<PlayerDedicated>();
dedicated.Network = network;
dedicated.Server = server;
instance.name += "_server";
LayerUtil.SetLayerRecursively(instance.transform, LayerMask.NameToLayer("Server"));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment