public MapTileConfigBase GetTileConfig(int x, int y) { if (!IsValidTileCoord(x, y)) { return(null); } int tileData = mTileConfigDatas [x, y]; MapTileConfigType tileType = MapTileConfigBase.DecodeTileType(tileData); MapTileConfigBase ret = null; switch (tileType) { case MapTileConfigType.Block: ret = new MapTileConfigBlock(); break; case MapTileConfigType.Free: ret = new MapTileConfigFree(); break; default: break; } ret.tileCoord = new IntVector2(x, y); ret.Decode(tileData); return(ret); }