private void OnReceivedMessage() { if (this.firstRun == false) { this.player.SetClientID(ARNetworkHub.Instance.GetClientID()); this.firstRun = true; } //process message here ARLocalMessage localMsg = ARMessageQueue.Instance.GetLatestMessage(); //ConsoleManager.LogMessage (TAG + " received message with type of " + localMsg.GetActionType ()); if (localMsg.GetActionType() == ARNetworkMessage.ActionType.SPAWN_OBJECT && !this.opponents.ContainsKey(localMsg.GetClientID())) { ConsoleManager.LogMessage(TAG + " Spawning opponent for " + localMsg.GetClientID()); ARController opponent = GameObject.Instantiate <ARController>(this.opponentCopy, this.opponentCopy.transform.parent); opponent.gameObject.transform.position = this.player.transform.position; opponent.gameObject.SetActive(true); opponent.SetClientID(localMsg.GetClientID()); this.opponents.Add(localMsg.GetClientID(), opponent); } else if (localMsg.GetActionType() == ARNetworkMessage.ActionType.MOVE) { this.opponents[localMsg.GetClientID()].MoveToDestination(localMsg.GetPosition()); //this.opponent.MoveToDestination(localMsg.GetPosition()); } }