void SetupMultiplayerGame() { NetworkProvider.Instance.updateListener = this; _myParticipantId = NetworkProvider.Instance.GetMyPlayerId(); List <NetworkPlayer> allPlayers = NetworkProvider.Instance.GetAllPlayers(); _opponentScripts = new Dictionary <string, NetworkedCarController>(allPlayers.Count - 1); _finishTimes = new Dictionary <string, float>(allPlayers.Count); for (int i = 0; i < allPlayers.Count; i++) { string nextParticipantId = allPlayers[i].PlayerId; _finishTimes[nextParticipantId] = -1; Debug.Log("Setting up car for " + nextParticipantId); Vector3 carStartPoint = _trackController.SpawnPoint(i); if (nextParticipantId == _myParticipantId) { CarController car = myCar.GetComponent <CarController>(); car.SetCarChoice(i + 1, true); car.SpawnAtStart(i); } else { GameObject opponentCar = (Instantiate(opponentPrefab, carStartPoint, Quaternion.identity) as GameObject); NetworkedCarController opponentScript = opponentCar.GetComponent <NetworkedCarController>(); opponentScript.SetCarNumber(i + 1); _opponentScripts[nextParticipantId] = opponentScript; } } _lapsRemaining = 3; _timePlayed = 0; guiObject.SetLaps(_lapsRemaining); guiObject.SetTime(_timePlayed); _multiplayerReady = true; }
public void UpdateReceived(string senderId, int messageNum, float posX, float posY, float velX, float velY, float rotZ) { if (_multiplayerReady) { NetworkedCarController opponent = _opponentScripts[senderId]; if (opponent != null) { opponent.SetCarInformation(messageNum, posX, posY, velX, velY, rotZ); } } }