示例#1
0
        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}");
            }
        }
示例#2
0
 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();
 }
示例#3
0
 private void OnDisable()
 {
     TileHelper.ClearAllTiles();
 }