コード例 #1
0
    /// <summary>
    /// Genetate the A1_Tile or the water tile from a sprite sheet image that contais all the tile
    /// </summary>
    /// <param name="frame1"></param>
    /// <param name="frame2"></param>
    /// <param name="frame3"></param>
    /// <param name="rule_tiles"></param>
    /// <param name="wBlock"></param>
    public static void Generate_A1_Water_Tile_SS(string source_File_Path, string frame1, string frame2, string frame3,
                                                 Dictionary <byte, int> rule_tiles, int wBlock)
    {
        //create the auto tile for the animation water
        string atile_path = string.Format(@"{0}/_{1}/{2}.asset", Tiles_Utility.Auto_Tile_Folder_Path, Path.GetFileNameWithoutExtension(source_File_Path), Path.GetFileNameWithoutExtension(frame1));
        string dir        = string.Format(@"{0}/_{1}", Tiles_Utility.Auto_Tile_Folder_Path, Path.GetFileNameWithoutExtension(source_File_Path));

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
        //A1_Water_Tile atile = new A1_Water_Tile();
        A1_Water_Tile atile = ScriptableObject.CreateInstance <A1_Water_Tile>();

        if (File.Exists(atile_path))
        {
            atile = AssetDatabase.LoadAssetAtPath <A1_Water_Tile>(atile_path);
        }

        EditorUtility.SetDirty(atile);

        if (atile != null)
        {
            atile.frame1 = new Sprite[256];
            atile.frame2 = new Sprite[256];
            atile.frame3 = new Sprite[256];
            object[] vars1 = AssetDatabase.LoadAllAssetsAtPath(frame1);
            object[] vars2 = AssetDatabase.LoadAllAssetsAtPath(frame2);
            object[] vars3 = AssetDatabase.LoadAllAssetsAtPath(frame3);

            int cc = 0;
            foreach (var kvp in rule_tiles)
            {
                Sprite tmp1 = vars1[kvp.Value + 1] as Sprite;
                Sprite tmp2 = vars2[kvp.Value + 1] as Sprite;
                Sprite tmp3 = vars3[kvp.Value + 1] as Sprite;
                if (cc == 0) //setting the sprite for the tile palette
                {
                    cc++;
                    atile.sprite  = tmp1;
                    atile.preview = tmp1;
                }
                atile.frame1[kvp.Key] = tmp1;
                atile.frame2[kvp.Key] = tmp2;
                atile.frame3[kvp.Key] = tmp3;
            }
        }
        if (File.Exists(atile_path))
        {
            AssetDatabase.SaveAssets();
        }
        else
        {
            AssetDatabase.CreateAsset(atile, atile_path);
        }
    }
コード例 #2
0
    /// <summary>
    /// Genetate the A1_Tile or the water tile from the 3 single image tile
    /// </summary>
    /// <param name="tile_path1"></param>
    /// <param name="tile_path2"></param>
    /// <param name="tile_path3"></param>
    /// <param name="rule_tiles"></param>
    /// <param name="wBlock"></param>
    public static void Generate_A1_Water_Tile(string source_File_Path, string frame1, string frame2, string frame3,
                                              Dictionary <byte, int> rule_tiles, int wBlock)
    {
        //create the auto tile for the animation water
        string atile_path = string.Format(@"{0}/_{1}/{2}.asset", Tiles_Utility.Auto_Tile_Folder_Path, Path.GetFileNameWithoutExtension(source_File_Path), Path.GetFileNameWithoutExtension(frame1));
        string dir        = string.Format(@"{0}/_{1}", Tiles_Utility.Auto_Tile_Folder_Path, Path.GetFileNameWithoutExtension(source_File_Path));

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        A1_Water_Tile atile = ScriptableObject.CreateInstance <A1_Water_Tile>();

        if (File.Exists(atile_path))
        {
            atile = AssetDatabase.LoadAssetAtPath <A1_Water_Tile>(atile_path);
        }

        EditorUtility.SetDirty(atile);

        if (atile != null)
        {
            atile.frame1 = new Sprite[256];
            atile.frame2 = new Sprite[256];
            atile.frame3 = new Sprite[256];
            string[] tiles1 = Directory.GetFiles(frame1, "*.png");
            foreach (var fTile in tiles1)
            {
                Tiles_Utility.//set the image importer setting
                Set_Impoter_Settings(fTile, wBlock);
            }

            string[] tiles2 = Directory.GetFiles(frame2, "*.png");
            foreach (var fTile in tiles2)
            {
                //set the image importer setting
                Tiles_Utility.Set_Impoter_Settings(fTile, wBlock);
            }

            string[] tiles3 = Directory.GetFiles(frame3, "*.png");
            foreach (var fTile in tiles3)
            {
                //set the image importer setting
                Tiles_Utility.Set_Impoter_Settings(fTile, wBlock);
            }

            int cc = 0;
            foreach (var kvp in rule_tiles)
            {
                Sprite tmp1 = AssetDatabase.LoadAssetAtPath <Sprite>(tiles1[kvp.Value]);
                Sprite tmp2 = AssetDatabase.LoadAssetAtPath <Sprite>(tiles2[kvp.Value]);
                Sprite tmp3 = AssetDatabase.LoadAssetAtPath <Sprite>(tiles3[kvp.Value]);
                if (cc == 0) //setting the sprite for the tile palette
                {
                    cc++;
                    atile.sprite  = tmp1;
                    atile.preview = tmp1;
                }
                atile.frame1[kvp.Key] = tmp1;
                atile.frame2[kvp.Key] = tmp2;
                atile.frame3[kvp.Key] = tmp3;
            }
        }
        if (File.Exists(atile_path))
        {
            AssetDatabase.SaveAssets();
        }
        else
        {
            AssetDatabase.CreateAsset(atile, atile_path);
        }
    }