protected void SetCubeTexture(AtlasDataList atlasData, string imageName) { var imageData = atlasData.GetImageData(imageName); this.GetComponent <Renderer>().sharedMaterial = atlasData.GetMaterial(); var mesh = this.GetComponent <MeshFilter>().mesh; var uv = new Vector2[24]; var leftTop = new Vector2(imageData.offsetX, imageData.offsetY + imageData.scaleY); var rightTop = new Vector2(imageData.offsetX + imageData.scaleX, imageData.offsetY + imageData.scaleY); var leftBottom = new Vector2(imageData.offsetX, imageData.offsetY); var rightBottom = new Vector2(imageData.offsetX + imageData.scaleX, imageData.offsetY); // front uv[2] = leftTop; uv[3] = rightTop; uv[0] = leftBottom; uv[1] = rightBottom; // top uv[4] = leftTop; uv[5] = rightTop; uv[8] = leftBottom; uv[9] = rightBottom; // back uv[6] = leftTop; uv[7] = rightTop; uv[10] = leftBottom; uv[11] = rightBottom; // bottom uv[15] = leftTop; uv[14] = rightTop; uv[12] = leftBottom; uv[13] = rightBottom; // left uv[19] = leftTop; uv[18] = rightTop; uv[16] = leftBottom; uv[17] = rightBottom; // right uv[23] = leftTop; uv[22] = rightTop; uv[20] = leftBottom; uv[21] = rightBottom; mesh.uv = uv; mesh.Optimize(); mesh.RecalculateNormals(); }
private void SaveJson(Rect[] rectInfos) { if (rectInfos == null) { return; } List <AtlasData> _rects = new List <AtlasData>(); for (int i = 0; i < rectInfos.Length; ++i) { if (_targetTextures[i] != null) { var info = new AtlasData(); info.imageName = _targetTextures[i].name; info.offsetX = rectInfos[i].x; info.offsetY = rectInfos[i].y; info.scaleX = rectInfos[i].width; info.scaleY = rectInfos[i].height; _rects.Add(info); } } AtlasDataList atlasInfo = new AtlasDataList(); atlasInfo.name = _atlasName; atlasInfo.infos = _rects.ToArray(); string json = JsonUtility.ToJson(atlasInfo); string resultPath = GetResultPath(eAtlasType.JSON); if (resultPath == null || resultPath == string.Empty) { return; } try { var file = File.Open(resultPath, FileMode.Create, FileAccess.Write); var binary = new BinaryWriter(file); binary.Write(json.ToCharArray()); file.Close(); } catch (IOException e) { EditorUtility.DisplayDialog("Save", e.ToString(), "Ok"); } }
private void DisplaySettingBox() { GUILayout.BeginVertical("Box", GUILayout.Width(MENU_WIDTH)); _settingScrollPos = EditorGUILayout.BeginScrollView(_settingScrollPos, GUILayout.Width(MENU_WIDTH + 25)); GUILayout.Label("Map Data", EditorStyles.boldLabel); _mapName = EditorGUILayout.TextField("Map Name: ", _mapName); _mapSize = EditorGUILayout.Vector2Field("Map Size", _mapSize); if (GUILayout.Button("New")) { InitMapEditor(_mapSize); InitTileTexture(); } if (GUILayout.Button("Save")) { SaveMapData(); } if (GUILayout.Button("Load")) { LoadMapData(); } if (GUILayout.Button("Load Tilemap")) { DataManager.LoadData(new AtlasDataFactory <AtlasType_Tile>("TileAtlas")); _tileRawData = DataManager.Get <AtlasDataList <AtlasType_Tile> >(); _tileAtlasTexture = _tileRawData.GetMaterial().mainTexture as Texture2D; } DisplayPlaceObjectTab(); DisplayObjectInfoTab(); DisplaySelectTileListTab(); EditorGUILayout.EndScrollView(); GUILayout.EndVertical(); }
private void LoadTileMap() { DataManager.LoadData(new AtlasDataFactory <AtlasType_Tile>("TileAtlas")); _tileAtlasTexture = Resources.Load("Atlases/TileAtlas", typeof(Texture2D)) as Texture2D; _tileRawData = DataManager.Get <AtlasDataList <AtlasType_Tile> >(); }