public void Init(TileData mapData, TileAndWorldCoordConversion conversion)
 {
     this.mapData    = mapData;
     this.conversion = conversion;
     this.instMap    = new List <GameObject> [mapData.MapSize.x - 1, mapData.MapSize.y - 1];
     for (int i = 0; i < mapData.MapSize.x - 1; i++)
     {
         for (int j = 0; j < mapData.MapSize.y - 1; j++)
         {
             instMap[i, j] = new List <GameObject>();
         }
     }
     for (int x = 0; x < mapData.MapSize.x - 1; x++)
     {
         for (int y = 0; y < mapData.MapSize.y - 1; y++)
         {
             //UpdateIdx(new Vector2Int(x, y));
             UpdateTileIdx(new Vector2Int(x, y));
         }
     }
 }
Beispiel #2
0
    void Awake()
    {
        const float TILE_SCALE = 1.0f;

        tileData         = new MapUtil.TileData();
        tileData.MapSize = tileMapSize;

        commandSystem = new MapUtil.CommandSystem();

        var conversion = new MapUtil.TileAndWorldCoordConversion(tileData, TILE_SCALE);

        tileRenderer.Init(tileData, conversion);

        tileRaycaster.tileAndWorldConversion = conversion;
        tileRaycaster.tileData = tileData;

        cliffDrawSystem.Init(tileData, commandSystem);

        //Sync Camera Scale to TileDataMap Size..
        this.UpdateAsObservable().Subscribe(_ =>
        {
            cameraController.MovableBoundarySize = new Vector2(tileData.MapSize.x, tileData.MapSize.y);
        });


        debugTileGridSystem.TileData   = tileData;
        debugTileGridSystem.conversion = conversion;

        //Preview보여질 영역은 Tile영역보다 10%더 많이 보여야 함.
        float bigSize = tileData.MapSize.x * TILE_SCALE;

        if (tileData.MapSize.y * TILE_SCALE > bigSize)
        {
            bigSize = tileData.MapSize.y * TILE_SCALE;
        }
        Debug.LogFormat("bigsize={0}", bigSize);
        mapPreviewSystem.SetPreviewSize(bigSize * 1.1f);
    }