private void LoadMap(RxMap map) { if (map == null) { return; } var caseX = Width / map.Data.Width; var caseY = Height / map.Data.Height; var caseOffsetX = caseX / 2; var caseOffsetY = caseX / 2; var mapOffsetX = -Width / 2; var mapOffsetY = -Height / 2; // Remove old cases if (_cases.Count > 0) { for (int i = _cases.Count - 1; i >= 0; i--) { var child = _cases[i]; NetworkServer.Destroy(child); _cases.RemoveAt(i); } } // Create new cases for (int i = 0; i < CurrentMap.Cases.Count; i++) { var currentCase = CurrentMap.Cases[i]; var casePosX = mapOffsetX + (currentCase.X * caseX) + caseOffsetX; var casePosY = mapOffsetY + (currentCase.Y * caseY) + caseOffsetY; var prefab = GetCasePrefabByType(currentCase.Type); if (prefab == null) { continue; } prefab.transform.localPosition = new Vector3(casePosX, 0, casePosY); prefab.transform.localScale = new Vector3(caseX, (caseX + caseY) / 2, caseY); SpawnCorrector corrector = prefab.GetComponent <SpawnCorrector>(); corrector.Scale = prefab.transform.localScale; _cases.Add(prefab); NetworkServer.Spawn(prefab); } }
public void GetMap() { var map = new Map { Width = 5, Height = 5, Cases = new List <Case> { // 0 new Case { X = 0, Y = 0 }, new Case { X = 1, Y = 0 }, new Case { X = 2, Y = 0 }, new Case { X = 3, Y = 0 }, new Case { X = 4, Y = 0 }, // 1 new Case { X = 0, Y = 1 }, new Case { X = 1, Y = 1 }, new Case { X = 2, Y = 1 }, new Case { X = 3, Y = 1 }, new Case { X = 4, Y = 1 }, //2 new Case { X = 0, Y = 2 }, new Case { X = 1, Y = 2 }, new Case { X = 2, Y = 2 }, new Case { X = 3, Y = 2 }, new Case { X = 4, Y = 2 }, // 3 new Case { X = 0, Y = 3 }, new Case { X = 1, Y = 3 }, new Case { X = 2, Y = 3 }, new Case { X = 3, Y = 3 }, new Case { X = 4, Y = 3 }, // 4 new Case { X = 0, Y = 4 }, new Case { X = 1, Y = 4 }, new Case { X = 2, Y = 4 }, new Case { X = 3, Y = 4 }, new Case { X = 4, Y = 4 }, } }; //var json = JsonConvert.SerializeObject(map); if (map != null) { CurrentMap = new RxMap(map); } }