private void NetworkAddFleetToWorld(int fleetID, Vector2 position, int fleetType, PhotonPlayer player) { if (PhotonNetwork.isMasterClient) { fleetID = HighestFleetID; } BufferedFleetList.Add(new BufferedFleet(fleetID, position, (FleetType)fleetType, player)); if (!PhotonNetwork.isMasterClient) { // erase id also on clients fleetID = HighestFleetID; return; } photonView.RPC("NetworkAddFleetToWorld", PhotonTargets.OthersBuffered, fleetID, position, fleetType, player); }
public void AddBufferedFleetsToWorld(BufferedFleet bufferedFleet) { var fleetTile = TileList.Find(t => t.Position == bufferedFleet.Position); if (fleetTile.Fleet != null) { return; } var fleetParent = new GameObject("Fleet of: " + bufferedFleet.Player).transform; fleetParent.position = fleetTile.TileParent.position; fleetParent.SetParent(GameObject.Find(Tags.Fleets).transform); #region Instantiate units var units = new Unit[6]; for (int i = 0; i < units.Length; i++) { var unitParent = new GameObject("Unit: " + i).transform; fleetParent.rotation = Quaternion.Euler(Vector3.up * (i * -60 - 30)); unitParent.position = fleetTile.TileParent.position + Vector3.forward * 0.6f; unitParent.SetParent(fleetParent); } fleetParent.rotation = Quaternion.identity; #endregion var newFleet = new Fleet(bufferedFleet.ID, bufferedFleet.Player, fleetParent, (FleetType)bufferedFleet.FleetType, units); FleetList.Add(newFleet); fleetTile.Fleet = newFleet; BufferedFleetList.Remove(bufferedFleet); }