public void Create(IndexPair indexRange) { TileHelper.ClearAllTiles(); TileHelper.maxIndex = new IndexPair(indexRange.X, indexRange.Y); for (int y = 0; y < indexRange.Y; y++) { for (int x = 0; x < indexRange.X; x++) { var tile = Instantiate(tilePrefab, tilesRoot); // NOTE : 실제 위치 설정 var pos = tile.transform.localPosition = new Vector3( (x + y * 0.5f - y / 2) * (HexMetrics.innerRadius * 2f), 0f, y * (HexMetrics.outerRadius * 1.5f)); // NOTE : 좌표계 설정 tile.Setup(new IndexPair(x, y)); TileModel.tiles.Add(tile); // NOTE : 라벨 설정 Text label = Instantiate <Text>(cellLabelPrefab); label.rectTransform.SetParent(gridCanvas.transform, false); label.rectTransform.anchoredPosition = new Vector2(pos.x, pos.z); label.text = tile.Coordinates.ToStringOnSeparateLines(); label.tag = "TileUI"; TileModel.tileLabels.Add(label); } } Debug.Log(TileModel.tiles.Count); // TODO : 타일 환경설정은 새로운 좌표계에 맞춰서 리팩토링 for (int i = 0; i < allContinentTiles.Length; ++i) { allContinentTiles[i] = new List <Tile>(); } foreach (var firstContinentTileIndex in firstContinentTileIndexs) { CreateRandomContinent(firstContinentTileIndex); } SetupTerrainType(); SetupClimateType(); SetupFeatureType(); TileDataJsonConverter.SetTileTerrainData(TileModel.tiles); for (int i = 0; i < allContinentTiles.Length; ++i) { var currentContinentName = TilePropertyInfo.ContinentNames[i]; var currentContinent = allContinentTiles[i]; Debug.Log($"{currentContinentName} : {currentContinent.Count}"); } }
public override void OnInspectorGUI() { if (GUILayout.Button("create tile map")) { tileCreater.ReCreateMap(); } if (GUILayout.Button("delete all tiles")) { TileHelper.ClearAllTiles(); } serializedObject.Update(); foreach (var property in serializeProperty) { EditorGUILayout.PropertyField(property); } serializedObject.ApplyModifiedProperties(); }
private void OnDisable() { TileHelper.ClearAllTiles(); }