mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2026-01-04 23:46:51 +07:00
fix bug with big multiple reimport
This commit is contained in:
@@ -42,7 +42,11 @@ namespace FTEditor.Editors {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ReconvertAsset(SwfAsset asset) {
|
static void ReconvertAsset(SwfAsset asset) {
|
||||||
asset.Atlas = null;
|
if ( asset.Atlas ) {
|
||||||
|
AssetDatabase.DeleteAsset(
|
||||||
|
AssetDatabase.GetAssetPath(asset.Atlas));
|
||||||
|
asset.Atlas = null;
|
||||||
|
}
|
||||||
EditorUtility.SetDirty(asset);
|
EditorUtility.SetDirty(asset);
|
||||||
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(asset));
|
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(asset));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,15 +18,15 @@ namespace FTEditor.Postprocessors {
|
|||||||
string[] moved_assets,
|
string[] moved_assets,
|
||||||
string[] moved_from_asset_paths)
|
string[] moved_from_asset_paths)
|
||||||
{
|
{
|
||||||
var asset_paths = imported_assets
|
var assets = imported_assets
|
||||||
.Where(p => Path.GetExtension(p).ToLower().Equals(".asset"));
|
.Where(p => Path.GetExtension(p).ToLower().Equals(".asset"))
|
||||||
var assets = asset_paths
|
|
||||||
.Select(p => AssetDatabase.LoadAssetAtPath<SwfAsset>(p))
|
.Select(p => AssetDatabase.LoadAssetAtPath<SwfAsset>(p))
|
||||||
.Where(p => !!p);
|
.Where(p => p && !p.Atlas);
|
||||||
foreach ( var asset in assets ) {
|
if ( assets.Any() ) {
|
||||||
var asset_copy = asset;
|
|
||||||
EditorApplication.delayCall += () => {
|
EditorApplication.delayCall += () => {
|
||||||
SwfAssetProcess(asset_copy);
|
foreach ( var asset in assets ) {
|
||||||
|
SwfAssetProcess(asset);
|
||||||
|
}
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -34,18 +34,19 @@ namespace FTEditor.Postprocessors {
|
|||||||
|
|
||||||
static void SwfAssetProcess(SwfAsset asset) {
|
static void SwfAssetProcess(SwfAsset asset) {
|
||||||
try {
|
try {
|
||||||
if ( !asset.Atlas ) {
|
EditorUtility.SetDirty(asset);
|
||||||
|
asset.Atlas = LoadAssetAtlas(asset);
|
||||||
|
if ( asset.Atlas ) {
|
||||||
|
ConfigureAtlas(asset);
|
||||||
|
ConfigureClips(
|
||||||
|
asset,
|
||||||
|
SwfEditorUtils.DecompressAsset<SwfAssetData>(asset.Data));
|
||||||
|
} else {
|
||||||
_progressBar.UpdateTitle(asset.name);
|
_progressBar.UpdateTitle(asset.name);
|
||||||
var new_data = ConfigureBitmaps(
|
var new_data = ConfigureBitmaps(
|
||||||
asset,
|
asset,
|
||||||
SwfEditorUtils.DecompressAsset<SwfAssetData>(asset.Data));
|
SwfEditorUtils.DecompressAsset<SwfAssetData>(asset.Data));
|
||||||
asset.Data = SwfEditorUtils.CompressAsset(new_data);
|
asset.Data = SwfEditorUtils.CompressAsset(new_data);
|
||||||
asset.Atlas = LoadAssetAtlas(asset);
|
|
||||||
if ( asset.Atlas ) {
|
|
||||||
ConfigureAtlas(asset);
|
|
||||||
ConfigureClips(asset, new_data);
|
|
||||||
}
|
|
||||||
EditorUtility.SetDirty(asset);
|
|
||||||
}
|
}
|
||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
Debug.LogErrorFormat(
|
Debug.LogErrorFormat(
|
||||||
|
|||||||
@@ -24,17 +24,18 @@ namespace FTEditor.Postprocessors {
|
|||||||
{
|
{
|
||||||
var swf_paths = imported_assets
|
var swf_paths = imported_assets
|
||||||
.Where(p => Path.GetExtension(p).ToLower().Equals(".swf"));
|
.Where(p => Path.GetExtension(p).ToLower().Equals(".swf"));
|
||||||
if ( swf_paths.Any() && SwfEditorUtils.IsDemoEnded ) {
|
if ( swf_paths.Any() ) {
|
||||||
var title = "Demo version";
|
if ( SwfEditorUtils.IsDemoEnded ) {
|
||||||
var message =
|
var title = "Demo version";
|
||||||
"This demo is for evaluation purpose only. " +
|
var message =
|
||||||
"It means that you can't have more than 5 animation assets in the project.";
|
"This demo is for evaluation purpose only. " +
|
||||||
EditorUtility.DisplayDialog(title, message, "Ok");
|
"It means that you can't have more than 5 animation assets in the project.";
|
||||||
} else {
|
EditorUtility.DisplayDialog(title, message, "Ok");
|
||||||
foreach ( var swf_path in swf_paths ) {
|
} else {
|
||||||
var swf_path_copy = swf_path;
|
|
||||||
EditorApplication.delayCall += () => {
|
EditorApplication.delayCall += () => {
|
||||||
SwfFileProcess(swf_path_copy);
|
foreach ( var swf_path in swf_paths ) {
|
||||||
|
SwfFileProcess(swf_path);
|
||||||
|
}
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -62,7 +63,11 @@ namespace FTEditor.Postprocessors {
|
|||||||
var new_data = LoadSwfAssetData(swf_path);
|
var new_data = LoadSwfAssetData(swf_path);
|
||||||
swf_asset.Data = SwfEditorUtils.CompressAsset(new_data);
|
swf_asset.Data = SwfEditorUtils.CompressAsset(new_data);
|
||||||
swf_asset.Hash = swf_hash;
|
swf_asset.Hash = swf_hash;
|
||||||
swf_asset.Atlas = null;
|
if ( swf_asset.Atlas ) {
|
||||||
|
AssetDatabase.DeleteAsset(
|
||||||
|
AssetDatabase.GetAssetPath(swf_asset.Atlas));
|
||||||
|
swf_asset.Atlas = null;
|
||||||
|
}
|
||||||
EditorUtility.SetDirty(swf_asset);
|
EditorUtility.SetDirty(swf_asset);
|
||||||
return true;
|
return true;
|
||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
|
|||||||
@@ -318,7 +318,11 @@ namespace FTEditor {
|
|||||||
Tools_FlashTools_ReimportAllSwfFiles();
|
Tools_FlashTools_ReimportAllSwfFiles();
|
||||||
var swf_assets = GetAllSwfAssets();
|
var swf_assets = GetAllSwfAssets();
|
||||||
foreach ( var swf_asset in swf_assets ) {
|
foreach ( var swf_asset in swf_assets ) {
|
||||||
swf_asset.Atlas = null;
|
if ( swf_asset.Atlas ) {
|
||||||
|
AssetDatabase.DeleteAsset(
|
||||||
|
AssetDatabase.GetAssetPath(swf_asset.Atlas));
|
||||||
|
swf_asset.Atlas = null;
|
||||||
|
}
|
||||||
EditorUtility.SetDirty(swf_asset);
|
EditorUtility.SetDirty(swf_asset);
|
||||||
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(swf_asset));
|
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(swf_asset));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ dipyalov: фишка в том, что swf обновился, но и собр
|
|||||||
Таки стоит, но с рекурсивным выносом в отдельные символы и последующей их обработкой
|
Таки стоит, но с рекурсивным выносом в отдельные символы и последующей их обработкой
|
||||||
**** DONE В ошибках конвертации писать, что нужно прогнать через скрипт экспорта
|
**** DONE В ошибках конвертации писать, что нужно прогнать через скрипт экспорта
|
||||||
А еще лучше как-то метить прогнанную анимацию и нет
|
А еще лучше как-то метить прогнанную анимацию и нет
|
||||||
|
**** TODO Добавить прогресс на LoadSymbol
|
||||||
*** Баги
|
*** Баги
|
||||||
**** DONE При больших (>= 4000 пикселей) выделениях не работает convertSelectionToBitmap
|
**** DONE При больших (>= 4000 пикселей) выделениях не работает convertSelectionToBitmap
|
||||||
**** DONE В ошибках конвертации не пишется путь до swf
|
**** DONE В ошибках конвертации не пишется путь до swf
|
||||||
@@ -89,7 +90,7 @@ https://fogbugz.unity3d.com/default.asp?910858_0diqjnj67814hj3i
|
|||||||
http://ru.esotericsoftware.com/forum/Submeshes-render-in-random-order-with-orthographic-camera-8528
|
http://ru.esotericsoftware.com/forum/Submeshes-render-in-random-order-with-orthographic-camera-8528
|
||||||
**** DONE При автоплее с пустым клипом контроллер накапливает _tickTimer
|
**** DONE При автоплее с пустым клипом контроллер накапливает _tickTimer
|
||||||
**** DONE Шейпы в классических твинах (да, это ошибка, но флеш её пропускает) не растеризуются
|
**** DONE Шейпы в классических твинах (да, это ошибка, но флеш её пропускает) не растеризуются
|
||||||
**** TODO При множественном импорте ошибка в импорте по поводу удаление из-под носа ассета воспроизводится 100%
|
**** DONE При множественном импорте ошибка в импорте по поводу удаление из-под носа ассета воспроизводится 100%
|
||||||
**** DONE Некорректно кончающиеся твинны плохо дружат с оптимизацией и растеризацией
|
**** DONE Некорректно кончающиеся твинны плохо дружат с оптимизацией и растеризацией
|
||||||
**** TODO Скейл фильтров не заходит в группы
|
**** TODO Скейл фильтров не заходит в группы
|
||||||
** DONE Версия 1.3.7
|
** DONE Версия 1.3.7
|
||||||
|
|||||||
Reference in New Issue
Block a user