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();
    }
Exemple #2
0
    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");
        }
    }
Exemple #3
0
    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();
    }
Exemple #4
0
 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> >();
 }