/// <summary> /// sends a message to the client /// </summary> /// <param name="pNetworkObject"></param> /// <param name="pClient"></param> public void SendObjectToClient(NetworkObject pNetworkObject, IClient pClient) { int i = 1; foreach (IClient client in clients.Where(x => x != pClient)) { //Spawn data to send SpawnMessageModel spawnMessageData = new SpawnMessageModel { networkID = i, resourceID = pNetworkObject.resourceId, x = pNetworkObject.gameObject.transform.position.x, y = pNetworkObject.gameObject.transform.position.y }; //create the message using (Message m = Message.Create( NetworkTags.InGame.SPAWN_OBJECT, //Tag spawnMessageData) //Data ) { //Send the message in TCP mode (Reliable) pClient.SendMessage(m, SendMode.Reliable); i++; } } }
/// <summary> /// Spawn object if message received is tagged as SPAWN_OBJECT /// </summary> /* <param name="sender"></param> * /// <param name="e"></param> */ private void SpawnGameObjects(object sender, MessageReceivedEventArgs e) { if (e.Tag == NetworkTags.InGame.SPAWN_OBJECT) { //Get message data SpawnMessageModel spawnMessage = e.GetMessage().Deserialize <SpawnMessageModel>(); //Spawn the game object string resourcePath = NetworkObjectDictionnary.GetResourcePathFor(spawnMessage.resourceID); GameObject go = Resources.Load(resourcePath) as GameObject; go.GetComponent <NetworkObject>().id = spawnMessage.networkID; Instantiate(go, new Vector3(spawnMessage.x, spawnMessage.y, 0), Quaternion.identity); } }
/// <summary> /// Send a message to the client to spawn an object into its scene /// </summary> /// <param name="pClient"></param> public void SendObjectToSpawnTo(NetworkObject pNetworkObject, IClient pClient) { //Spawn data to send SpawnMessageModel spawnMessageData = new SpawnMessageModel { networkID = pNetworkObject.id, resourceID = pNetworkObject.resourceId, x = pNetworkObject.gameObject.transform.position.x, y = pNetworkObject.gameObject.transform.position.y }; //create the message using (Message m = Message.Create( NetworkTags.InGame.SPAWN_OBJECT, //Tag spawnMessageData) //Data ){ //Send the message in TCP mode (Reliable) pClient.SendMessage(m, SendMode.Reliable); } }