Compare commits

..

13 Commits

Author SHA1 Message Date
cbc8bbd20f 1.3.13 2018-10-30 01:50:19 +07:00
0a2a0de800 new icons 2018-10-30 01:49:08 +07:00
9217dee8c2 Fix preview shutdown warning 2018-10-29 23:06:51 +07:00
853da8be02 Fix anchor frame label detector 2018-10-27 02:34:29 +07:00
6e7c85243e remove old unity version support 2018-10-27 01:13:51 +07:00
5c88c96e3b upgrade to 2017.4.13f1 2018-10-27 00:03:29 +07:00
c617a093da upgrade to 5.6.6f2 2018-10-26 01:33:43 +07:00
c84eaf8462 gitignore 2018-06-08 20:52:08 +07:00
06de973e27 Merge 2018-01-29 01:27:02 +07:00
33432e100f new test animation 2018-01-29 00:59:15 +07:00
a50ef6b92a Added tag versions/1.3.11 for changeset 2c90d15de7bc 2018-01-03 02:44:52 +07:00
49434b8543 todo 2017-09-26 19:31:53 +07:00
bcd6905e27 More readable conversion warnings 2017-08-14 21:57:12 +07:00
46 changed files with 476 additions and 218 deletions

18
.gitignore vendored Normal file
View File

@@ -0,0 +1,18 @@
obj/*
Temp/*
Library/*
.vs/*
FTSources/.vs/*
FTSources/FTEditor/obj/*
FTSources/FTRuntime/obj/*
FTSources/FTSwfTools/obj/*
AssetStoreTools/*
AssetStoreTools.meta
.DS_Store
flash-tools.sln
flash-tools.userprefs
Assembly-CSharp.csproj
Assembly-CSharp-Editor.csproj

View File

@@ -1,12 +0,0 @@
glob:obj/*
glob:Temp/*
glob:Library/*
glob:AssetStoreTools/*
glob:AssetStoreTools.meta
glob:.DS_Store
glob:unityflash.sln
glob:unityflash.userprefs
glob:Assembly-CSharp.csproj
glob:Assembly-CSharp-Editor.csproj

View File

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2d6dfc6c87f354cd38fa880c28c283c6
timeCreated: 1516990362
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3d285bcfdf76748fabc401431910bd26
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fc9c3116ef7ac454fa476d8eb8b46f99
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,3 +1,11 @@
###### Version 1.3.13
* Fix preview shutdown warning
###### Version 1.3.12
* Upgrade to minimal LTS version
* Fix anchor frame label detector
* More readable conversion warnings
###### Version 1.3.11
* Fix trial version in Unity 2017
* Fix warnings in Unity 2017

View File

@@ -13,6 +13,13 @@ if (!String.prototype.format) {
};
}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function (searchString, position) {
position = position || 0;
return this.indexOf(searchString, position) === position;
};
}
ft = {};
ft.trace = function () {

View File

@@ -38,6 +38,7 @@
ft.profile_function(cfg.profile_mode, function() { ftdoc.remove_unused_items(doc); }, "Remove unused items");
ft.profile_function(cfg.profile_mode, function() { ftdoc.prepare_all_bitmaps(doc); }, "Prepare all bitmaps");
ft.profile_function(cfg.profile_mode, function() { ftdoc.unlock_all_timelines(doc); }, "Unlock all timelines");
ft.profile_function(cfg.profile_mode, function() { ftdoc.prepare_all_labels(doc); }, "Prepare all labels");
ft.profile_function(cfg.profile_mode, function() { ftdoc.prepare_all_tweens(doc); }, "Prepare all tweens");
ft.profile_function(cfg.profile_mode, function() { ftdoc.prepare_all_groups(doc); }, "Prepare all groups");
ft.profile_function(cfg.profile_mode, function() { ftdoc.calculate_item_scales(doc); }, "Calculate item scales");
@@ -206,6 +207,12 @@
fttim.unlock_all_layers(doc, doc.getTimeline());
};
ftdoc.prepare_all_labels = function (doc) {
ft.type_assert(doc, Document);
ftlib.prepare_all_labels(doc, doc.library);
fttim.prepare_all_labels(doc, doc.getTimeline());
};
ftdoc.prepare_all_tweens = function (doc) {
ft.type_assert(doc, Document);
ftlib.prepare_all_tweens(doc, doc.library);
@@ -497,6 +504,14 @@
});
};
ftlib.prepare_all_labels = function (doc, library) {
ft.type_assert(doc, Document);
ft.type_assert(library, Library);
ftlib.edit_all_symbol_items(doc, library, function (item) {
fttim.prepare_all_labels(doc, item.timeline);
});
};
ftlib.prepare_all_tweens = function (doc, library) {
ft.type_assert(doc, Document);
ft.type_assert(library, Library);
@@ -569,6 +584,11 @@
fttim.is_symbol_movie_clip_instance = function (elem) {
return fttim.is_symbol_instance(elem) && elem.symbolType == "movie clip";
};
fttim.is_anchor_frame = function (frame) {
ft.type_assert(frame, Frame);
return frame.labelType == "anchor";
};
fttim.is_tween_frame = function (frame) {
ft.type_assert(frame, Frame);
@@ -770,6 +790,20 @@
}, true);
};
fttim.prepare_all_labels = function (doc, timeline) {
ft.type_assert(doc, Document);
ft.type_assert(timeline, Timeline);
var anchor_prefix = "FT_ANCHOR:";
ft.array_reverse_foreach(timeline.layers, function (layer, layer_index) {
ft.array_foreach(layer.frames, function (frame, frame_index) {
if ( fttim.is_anchor_frame(frame) && !frame.name.startsWith(anchor_prefix) ) {
frame.name = anchor_prefix + frame.name;
}
}, fttim.is_keyframe);
});
};
fttim.prepare_all_tweens = function (doc, timeline) {
ft.type_assert(doc, Document);
ft.type_assert(timeline, Timeline);

View File

@@ -105,7 +105,7 @@ struct swf_mask_v2f_t {
inline swf_v2f_t swf_vert(swf_appdata_t IN) {
swf_v2f_t OUT;
OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
OUT.vertex = UnityObjectToClipPos(IN.vertex);
OUT.uv = IN.uv;
OUT.mulcolor = IN.mulcolor * _Tint;
OUT.addcolor = IN.addcolor;
@@ -114,7 +114,7 @@ inline swf_v2f_t swf_vert(swf_appdata_t IN) {
inline swf_grab_v2f_t swf_grab_vert(swf_grab_appdata_t IN) {
swf_grab_v2f_t OUT;
OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
OUT.vertex = UnityObjectToClipPos(IN.vertex);
OUT.uv = IN.uv;
OUT.mulcolor = IN.mulcolor * _Tint;
OUT.addcolor = IN.addcolor;
@@ -124,7 +124,7 @@ inline swf_grab_v2f_t swf_grab_vert(swf_grab_appdata_t IN) {
inline swf_mask_v2f_t swf_mask_vert(swf_mask_appdata_t IN) {
swf_mask_v2f_t OUT;
OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
OUT.vertex = UnityObjectToClipPos(IN.vertex);
OUT.uv = IN.uv;
return OUT;
}

View File

@@ -41,9 +41,7 @@ namespace FTEditor.Editors {
var clip_go = new GameObject(clip.name);
clip_go.AddComponent<MeshFilter>();
clip_go.AddComponent<MeshRenderer>();
#if UNITY_5_6_OR_NEWER
clip_go.AddComponent<SortingGroup>();
#endif
clip_go.AddComponent<SwfClip>().clip = clip;
clip_go.AddComponent<SwfClipController>();
return clip_go;

View File

@@ -8,9 +8,9 @@ using FTRuntime;
namespace FTEditor.Editors {
[CustomPreview(typeof(SwfClipAsset))]
class SwfClipAssetPreview : ObjectPreview {
int _sequence = 0;
static MaterialPropertyBlock _matPropBlock = null;
static PreviewRenderUtility _previewUtils = null;
int _sequence = 0;
MaterialPropertyBlock _matPropBlock = null;
PreviewRenderUtility _previewUtils = null;
Sprite targetSprite {
get {
@@ -142,6 +142,11 @@ namespace FTEditor.Editors {
: 0;
}
public void Shutdown() {
_matPropBlock.Clear();
_previewUtils.Cleanup();
}
// ---------------------------------------------------------------------
//
// Messages

View File

@@ -131,7 +131,7 @@ namespace FTEditor.Editors {
}
void SetupPreviews() {
_previews.Clear();
ShutdownPreviews();
foreach ( var clip in _clips.Where(p => !!p.clip) ) {
var preview = new SwfClipAssetPreview();
preview.Initialize(new Object[]{clip.clip});
@@ -139,18 +139,29 @@ namespace FTEditor.Editors {
}
}
// ---------------------------------------------------------------------
//
// Messages
//
// ---------------------------------------------------------------------
void ShutdownPreviews() {
foreach ( var p in _previews ) {
p.Value.Shutdown();
}
_previews.Clear();
}
void OnEnable() {
// ---------------------------------------------------------------------
//
// Messages
//
// ---------------------------------------------------------------------
void OnEnable() {
_clips = targets.OfType<SwfClip>().ToList();
SetupPreviews();
}
public override void OnInspectorGUI() {
void OnDisable() {
ShutdownPreviews();
}
public override void OnInspectorGUI() {
serializedObject.Update();
DrawDefaultInspector();
DrawSequence();

View File

@@ -206,11 +206,7 @@ namespace FTEditor.Postprocessors {
atlas_importer.spritePixelsPerUnit = asset.Settings.PixelsPerUnit;
atlas_importer.mipmapEnabled = asset.Settings.GenerateMipMaps;
atlas_importer.filterMode = SwfAtlasFilterToImporterFilter(asset.Settings.AtlasTextureFilter);
#if UNITY_5_5_OR_NEWER
atlas_importer.textureCompression = SwfAtlasFormatToImporterCompression(asset.Settings.AtlasTextureFormat);
#else
atlas_importer.textureFormat = SwfAtlasFormatToImporterFormat(asset.Settings.AtlasTextureFormat);
#endif
var atlas_settings = new TextureImporterSettings();
atlas_importer.ReadTextureSettings(atlas_settings);
@@ -248,7 +244,6 @@ namespace FTEditor.Postprocessors {
}
}
#if UNITY_5_5_OR_NEWER
static TextureImporterCompression SwfAtlasFormatToImporterCompression(
SwfSettingsData.AtlasFormat format)
{
@@ -263,22 +258,6 @@ namespace FTEditor.Postprocessors {
format));
}
}
#else
static TextureImporterFormat SwfAtlasFormatToImporterFormat(
SwfSettingsData.AtlasFormat format)
{
switch ( format ) {
case SwfSettingsData.AtlasFormat.AutomaticCompressed:
return TextureImporterFormat.AutomaticCompressed;
case SwfSettingsData.AtlasFormat.AutomaticTruecolor:
return TextureImporterFormat.AutomaticTruecolor;
default:
throw new UnityException(string.Format(
"incorrect swf atlas format ({0})",
format));
}
}
#endif
// ---------------------------------------------------------------------
//

View File

@@ -75,7 +75,7 @@ namespace FTEditor.Postprocessors {
} catch ( Exception e ) {
Debug.LogErrorFormat(
AssetDatabase.LoadMainAssetAtPath(swf_path),
"<b>[FlashTools]</b> Parsing swf error: {0}\nPath: {1}",
"<b>[FlashTools]</b> Parsing swf error: {0}\nSwf path: {1}",
e.Message, swf_path);
return false;
} finally {
@@ -90,7 +90,7 @@ namespace FTEditor.Postprocessors {
});
return new SwfAssetData{
FrameRate = decoder.UncompressedHeader.FrameRate,
Symbols = LoadSymbols(library, decoder),
Symbols = LoadSymbols(swf_path, library, decoder),
Bitmaps = LoadBitmaps(library)};
}
@@ -101,10 +101,10 @@ namespace FTEditor.Postprocessors {
// ---------------------------------------------------------------------
static List<SwfSymbolData> LoadSymbols(
SwfLibrary library, SwfDecoder decoder)
string swf_path, SwfLibrary library, SwfDecoder decoder)
{
var symbols = new List<SwfSymbolData>();
symbols.Add(LoadSymbol("_Stage_", library, decoder.Tags));
symbols.Add(LoadSymbol(swf_path, "_Stage_", library, decoder.Tags));
var sprite_defs = library.Defines.Values
.OfType<SwfLibrarySpriteDefine>()
.Where(p => !string.IsNullOrEmpty(p.ExportName))
@@ -113,24 +113,33 @@ namespace FTEditor.Postprocessors {
var def = sprite_defs[i];
var name = def.ExportName;
var tags = def.ControlTags.Tags;
symbols.Add(LoadSymbol(name, library, tags));
symbols.Add(LoadSymbol(swf_path, name, library, tags));
}
return symbols;
}
static SwfSymbolData LoadSymbol(
string symbol_name, SwfLibrary library, List<SwfTagBase> tags)
string swf_path, string symbol_name, SwfLibrary library, List<SwfTagBase> tags)
{
var warnings = new HashSet<string>();
var disp_lst = new SwfDisplayList();
var executer = new SwfContextExecuter(library, 0, warning_msg => {
Debug.LogWarningFormat("<b>[FlashTools]</b> {0}", warning_msg);
warnings.Add(warning_msg);
});
var symbol_frames = new List<SwfFrameData>();
while ( executer.NextFrame(tags, disp_lst) ) {
_progressBar.UpdateProgress(
string.Format("swf symbols loading ({0})", symbol_name),
(float)(executer.CurrentTag + 1) / tags.Count);
symbol_frames.Add(LoadSymbolFrameData(library, disp_lst));
symbol_frames.Add(LoadSymbolFrameData(library, disp_lst, warning_msg => {
warnings.Add(warning_msg);
}));
}
foreach ( var warning in warnings ) {
Debug.LogWarningFormat(
AssetDatabase.LoadMainAssetAtPath(swf_path),
"<b>[FlashTools]</b> {0}\nSwf path: {1}",
warning, swf_path);
}
return new SwfSymbolData{
Name = symbol_name,
@@ -138,7 +147,7 @@ namespace FTEditor.Postprocessors {
}
static SwfFrameData LoadSymbolFrameData(
SwfLibrary library, SwfDisplayList display_list)
SwfLibrary library, SwfDisplayList display_list, System.Action<string> warning_log)
{
var frame = new SwfFrameData{
Anchor = display_list.FrameAnchors.Count > 0
@@ -154,7 +163,8 @@ namespace FTEditor.Postprocessors {
0,
0,
null,
frame);
frame,
warning_log);
}
static SwfFrameData AddDisplayListToFrame(
@@ -166,23 +176,26 @@ namespace FTEditor.Postprocessors {
ushort parent_masked,
ushort parent_mask,
List<SwfInstanceData> parent_masks,
SwfFrameData frame)
SwfFrameData frame,
System.Action<string> warning_log)
{
var inst_filter_types = display_list.Instances.Values
.Where(p => p.Visible && p.FilterList.Filters.Count > 0)
.SelectMany(p => p.FilterList.Filters)
.Select(p => p.Type)
.Distinct();
foreach ( var filter_type in inst_filter_types ) {
Debug.LogWarningFormat(
"<b>[FlashTools]</b> SwfSurfaceFilters. Unsupported filter type '{0}'",
filter_type);
if ( warning_log != null ) {
var inst_filter_types = display_list.Instances.Values
.Where(p => p.Visible && p.FilterList.Filters.Count > 0)
.SelectMany(p => p.FilterList.Filters)
.Select(p => p.Type)
.Distinct();
foreach ( var filter_type in inst_filter_types ) {
warning_log(string.Format(
"Unsupported filter type '{0}'",
filter_type));
}
}
var self_masks = new List<SwfInstanceData>();
foreach ( var inst in display_list.Instances.Values.Where(p => p.Visible) ) {
CheckSelfMasks(self_masks, inst.Depth, frame);
var child_matrix = parent_matrix * inst.Matrix .ToUMatrix();
var child_blend_mode = parent_blend_mode * inst.BlendMode .ToBlendModeData();
var child_blend_mode = parent_blend_mode * inst.BlendMode .ToBlendModeData(warning_log);
var child_color_transform = parent_color_transform * inst.ColorTransform.ToColorTransData();
switch ( inst.Type ) {
case SwfDisplayInstanceType.Shape:
@@ -222,7 +235,8 @@ namespace FTEditor.Postprocessors {
parent_mask,
parent_masks,
self_masks,
frame);
frame,
warning_log);
break;
default:
throw new UnityException(string.Format(
@@ -332,7 +346,8 @@ namespace FTEditor.Postprocessors {
ushort parent_mask,
List<SwfInstanceData> parent_masks,
List<SwfInstanceData> self_masks,
SwfFrameData frame)
SwfFrameData frame,
System.Action<string> warning_log)
{
var sprite_def = library.FindDefine<SwfLibrarySpriteDefine>(inst.Id);
if ( sprite_def != null ) {
@@ -353,7 +368,8 @@ namespace FTEditor.Postprocessors {
: (inst.ClipDepth > 0
? self_masks
: null),
frame);
frame,
warning_log);
}
}
@@ -414,7 +430,9 @@ namespace FTEditor.Postprocessors {
return mat;
}
public static SwfBlendModeData ToBlendModeData(this SwfBlendMode self) {
public static SwfBlendModeData ToBlendModeData(
this SwfBlendMode self, System.Action<string> warning_log)
{
switch ( self.Value ) {
case SwfBlendMode.Mode.Normal:
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
@@ -441,9 +459,11 @@ namespace FTEditor.Postprocessors {
case SwfBlendMode.Mode.Hardlight:
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
default:
Debug.LogWarningFormat(
"<b>[FlashTools]</b> SwfBlendMode. Unsupported blend mode '{0}'",
self.Value);
if ( warning_log != null ) {
warning_log(string.Format(
"Unsupported blend mode '{0}'",
self.Value));
}
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
}
}

View File

@@ -181,7 +181,10 @@ namespace FTSwfTools {
}
public SwfDisplayList Visit(FrameLabelTag tag, SwfDisplayList dl) {
if ( tag.AnchorFlag == 0 ) {
const string anchor_prefix = "FT_ANCHOR:";
if ( tag.Name.StartsWith(anchor_prefix) ) {
dl.FrameAnchors.Add(tag.Name.Remove(0, anchor_prefix.Length).Trim());
} else if ( tag.AnchorFlag == 0 ) {
dl.FrameLabels.Add(tag.Name.Trim());
} else {
dl.FrameAnchors.Add(tag.Name.Trim());
@@ -314,7 +317,7 @@ namespace FTSwfTools {
void TagToWarningLog(SwfTagBase tag) {
if ( WarningLog != null ) {
WarningLog(string.Format("SwfContextExecuter: {0}", tag));
WarningLog(string.Format("{0}", tag));
}
}

View File

@@ -4,22 +4,16 @@ using FTRuntime.Internal;
namespace FTRuntime {
[ExecuteInEditMode, DisallowMultipleComponent]
#if UNITY_5_6_OR_NEWER
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer), typeof(SortingGroup))]
#else
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
#endif
public class SwfClip : MonoBehaviour {
MeshFilter _meshFilter = null;
MeshRenderer _meshRenderer = null;
#if UNITY_5_6_OR_NEWER
SortingGroup _sortingGroup = null;
#endif
MeshFilter _meshFilter = null;
MeshRenderer _meshRenderer = null;
SortingGroup _sortingGroup = null;
bool _dirtyMesh = true;
SwfClipAsset.Sequence _curSequence = null;
MaterialPropertyBlock _curPropBlock = null;
bool _dirtyMesh = true;
SwfClipAsset.Sequence _curSequence = null;
MaterialPropertyBlock _curPropBlock = null;
// ---------------------------------------------------------------------
//
@@ -312,9 +306,7 @@ namespace FTRuntime {
void ClearCache(bool allow_to_create_components) {
_meshFilter = SwfUtils.GetComponent<MeshFilter> (gameObject, allow_to_create_components);
_meshRenderer = SwfUtils.GetComponent<MeshRenderer>(gameObject, allow_to_create_components);
#if UNITY_5_6_OR_NEWER
_sortingGroup = SwfUtils.GetComponent<SortingGroup>(gameObject, allow_to_create_components);
#endif
_dirtyMesh = true;
_curSequence = null;
_curPropBlock = null;
@@ -375,12 +367,10 @@ namespace FTRuntime {
_meshRenderer.sortingOrder = sortingOrder;
_meshRenderer.sortingLayerName = sortingLayer;
}
#if UNITY_5_6_OR_NEWER
if ( _sortingGroup ) {
_sortingGroup.sortingOrder = sortingOrder;
_sortingGroup.sortingLayerName = sortingLayer;
}
#endif
}
void UpdatePropBlock() {

BIN
FTSources/DLLs/System.dll Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
FTSources/DLLs/mscorlib.dll Normal file → Executable file

Binary file not shown.

View File

@@ -3,7 +3,8 @@
--- !u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
serializedVersion: 11
productGUID: 63faefca8f98540bf9e0d8f83eae3d90
AndroidProfiler: 0
defaultScreenOrientation: 4
targetDevice: 2
@@ -13,20 +14,46 @@ PlayerSettings:
productName: UnityFlash
defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0}
m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1}
m_ShowUnitySplashScreen: 1
m_ShowUnitySplashLogo: 1
m_SplashScreenOverlayOpacity: 1
m_SplashScreenAnimation: 1
m_SplashScreenLogoStyle: 1
m_SplashScreenDrawMode: 0
m_SplashScreenBackgroundAnimationZoom: 1
m_SplashScreenLogoAnimationZoom: 1
m_SplashScreenBackgroundLandscapeAspect: 1
m_SplashScreenBackgroundPortraitAspect: 1
m_SplashScreenBackgroundLandscapeUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenBackgroundPortraitUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenLogos: []
m_SplashScreenBackgroundLandscape: {fileID: 0}
m_SplashScreenBackgroundPortrait: {fileID: 0}
m_VirtualRealitySplashScreen: {fileID: 0}
m_HolographicTrackingLossScreen: {fileID: 0}
defaultScreenWidth: 1024
defaultScreenHeight: 768
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_RenderingPath: 1
m_MobileRenderingPath: 1
m_StereoRenderingPath: 0
m_ActiveColorSpace: 0
m_MTRendering: 1
m_MobileMTRendering: 0
m_Stereoscopic3D: 0
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1
tizenShowActivityIndicatorOnLoading: -1
iosAppInBackgroundBehavior: 0
displayResolutionDialog: 1
iosAllowHTTPDownload: 1
@@ -41,15 +68,19 @@ PlayerSettings:
defaultIsNativeResolution: 1
runInBackground: 1
captureSingleScreen: 0
Override IPod Music: 0
muteOtherAudioSources: 0
Prepare IOS For Recording: 0
deferSystemGesturesMode: 0
hideHomeButton: 0
submitAnalytics: 1
usePlayerLog: 1
bakeCollisionMeshes: 0
forceSingleInstance: 0
resizableWindow: 0
useMacAppStoreValidation: 0
macAppStoreCategory: public.app-category.games
gpuSkinning: 0
graphicsJobs: 0
xboxPIXTextureCapture: 0
xboxEnableAvatar: 0
xboxEnableKinect: 0
@@ -57,6 +88,7 @@ PlayerSettings:
xboxEnableFitness: 0
visibleInBackground: 0
allowFullscreenSwitch: 1
graphicsJobMode: 0
macFullscreenMode: 2
d3d9FullscreenMode: 1
d3d11FullscreenMode: 1
@@ -64,16 +96,15 @@ PlayerSettings:
xboxEnableHeadOrientation: 0
xboxEnableGuest: 0
xboxEnablePIXSampling: 0
xboxEnableEnableRenderThreadRunsJobs: 0
n3dsDisableStereoscopicView: 0
n3dsEnableSharedListOpt: 1
n3dsEnableVSync: 0
uiUse16BitDepthBuffer: 0
ignoreAlphaClear: 0
xboxOneResolution: 0
xboxOneSResolution: 0
xboxOneXResolution: 3
xboxOneMonoLoggingLevel: 0
xboxOneLoggingLevel: 1
ps3SplashScreen: {fileID: 0}
videoMemoryForVertexBuffers: 0
psp2PowerMode: 0
psp2AcquireBGM: 1
@@ -92,36 +123,53 @@ PlayerSettings:
16:10: 1
16:9: 1
Others: 1
bundleIdentifier: me.matov.ft_demo
bundleVersion: 1.0
preloadedAssets: []
metroEnableIndependentInputSource: 0
metroEnableLowLatencyPresentationAPI: 0
metroInputSource: 0
m_HolographicPauseOnTrackingLoss: 1
xboxOneDisableKinectGpuReservation: 0
virtualRealitySupported: 0
productGUID: 63faefca8f98540bf9e0d8f83eae3d90
xboxOneEnable7thCore: 0
vrSettings:
cardboard:
depthFormat: 0
enableTransitionView: 0
daydream:
depthFormat: 0
useSustainedPerformanceMode: 0
hololens:
depthFormat: 1
protectGraphicsMemory: 0
useHDRDisplay: 0
applicationIdentifier:
Android: me.matov.ft_demo
Standalone: unity.DefaultCompany.UnityFlash
Tizen: me.matov.ft_demo
iOS: me.matov.ft_demo
tvOS: me.matov.ft_demo
buildNumber:
iOS: 0
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 9
AndroidMinSdkVersion: 16
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
aotOptions:
apiCompatibilityLevel: 2
stripEngineCode: 1
iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0
iPhoneBuildNumber: 0
ForceInternetPermission: 0
ForceSDCardPermission: 0
CreateWallpaper: 0
APKExpansionFiles: 0
preloadShaders: 0
keepLoadedShadersAlive: 0
StripUnusedMeshComponents: 0
VertexChannelCompressionMask:
serializedVersion: 2
m_Bits: 238
iPhoneSdkVersion: 988
iPhoneTargetOSVersion: 22
iOSTargetOSVersionString: 6.0
tvOSSdkVersion: 0
tvOSTargetOSVersion: 900
tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 9.0
uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1
@@ -134,14 +182,21 @@ PlayerSettings:
iPhone47inSplashScreen: {fileID: 0}
iPhone55inPortraitSplashScreen: {fileID: 0}
iPhone55inLandscapeSplashScreen: {fileID: 0}
iPhone58inPortraitSplashScreen: {fileID: 0}
iPhone58inLandscapeSplashScreen: {fileID: 0}
iPadPortraitSplashScreen: {fileID: 0}
iPadHighResPortraitSplashScreen: {fileID: 0}
iPadLandscapeSplashScreen: {fileID: 0}
iPadHighResLandscapeSplashScreen: {fileID: 0}
appleTVSplashScreen: {fileID: 0}
appleTVSplashScreen2x: {fileID: 0}
tvOSSmallIconLayers: []
tvOSSmallIconLayers2x: []
tvOSLargeIconLayers: []
tvOSTopShelfImageLayers: []
tvOSTopShelfImageLayers2x: []
tvOSTopShelfImageWideLayers: []
tvOSTopShelfImageWideLayers2x: []
iOSLaunchScreenType: 0
iOSLaunchScreenPortrait: {fileID: 0}
iOSLaunchScreenLandscape: {fileID: 0}
@@ -160,7 +215,16 @@ PlayerSettings:
iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath:
iOSDeviceRequirements: []
iOSURLSchemes: []
iOSBackgroundModes: 0
iOSMetalForceHardShadows: 0
metalEditorSupport: 0
metalAPIValidation: 1
iOSRenderExtraFrameOnPause: 1
appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID:
appleEnableAutomaticSigning: 0
AndroidTargetDevice: 0
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
@@ -182,8 +246,12 @@ PlayerSettings:
m_Icon: {fileID: 0}
m_Width: 128
m_Height: 128
m_Kind: 0
m_BuildTargetBatching: []
m_BuildTargetGraphicsAPIs: []
m_BuildTargetVRSettings: []
openGLRequireES31: 0
openGLRequireES31AEP: 0
webPlayerTemplate: APPLICATION:Default
m_TemplateCustomTags: {}
wiiUTitleID: 0005000011000000
@@ -204,6 +272,7 @@ PlayerSettings:
wiiUGamePadStartupScreen: {fileID: 0}
wiiUDrcBufferDisabled: 0
wiiUProfilerLibPath:
playModeTestRunnerEnabled: 0
actionOnDotNetUnhandledException: 1
enableInternalProfiler: 0
logObjCUncaughtExceptions: 1
@@ -211,34 +280,129 @@ PlayerSettings:
cameraUsageDescription:
locationUsageDescription:
microphoneUsageDescription:
XboxTitleId:
XboxImageXexPath:
XboxSpaPath:
XboxGenerateSpa: 0
XboxDeployKinectResources: 0
XboxSplashScreen: {fileID: 0}
xboxEnableSpeech: 0
xboxAdditionalTitleMemorySize: 0
xboxDeployKinectHeadOrientation: 0
xboxDeployKinectHeadPosition: 0
ps3TitleConfigPath:
ps3DLCConfigPath:
ps3ThumbnailPath:
ps3BackgroundPath:
ps3SoundPath:
ps3NPAgeRating: 12
ps3TrophyCommId:
ps3NpCommunicationPassphrase:
ps3TrophyPackagePath:
ps3BootCheckMaxSaveGameSizeKB: 128
ps3TrophyCommSig:
ps3SaveGameSlots: 1
ps3TrialMode: 0
ps3VideoMemoryForAudio: 0
ps3EnableVerboseMemoryStats: 0
ps3UseSPUForUmbra: 0
ps3EnableMoveSupport: 1
ps3DisableDolbyEncoding: 0
switchNetLibKey:
switchSocketMemoryPoolSize: 6144
switchSocketAllocatorPoolSize: 128
switchSocketConcurrencyLimit: 14
switchScreenResolutionBehavior: 2
switchUseCPUProfiler: 0
switchApplicationID: 0x01004b9000490000
switchNSODependencies:
switchTitleNames_0:
switchTitleNames_1:
switchTitleNames_2:
switchTitleNames_3:
switchTitleNames_4:
switchTitleNames_5:
switchTitleNames_6:
switchTitleNames_7:
switchTitleNames_8:
switchTitleNames_9:
switchTitleNames_10:
switchTitleNames_11:
switchTitleNames_12:
switchTitleNames_13:
switchTitleNames_14:
switchPublisherNames_0:
switchPublisherNames_1:
switchPublisherNames_2:
switchPublisherNames_3:
switchPublisherNames_4:
switchPublisherNames_5:
switchPublisherNames_6:
switchPublisherNames_7:
switchPublisherNames_8:
switchPublisherNames_9:
switchPublisherNames_10:
switchPublisherNames_11:
switchPublisherNames_12:
switchPublisherNames_13:
switchPublisherNames_14:
switchIcons_0: {fileID: 0}
switchIcons_1: {fileID: 0}
switchIcons_2: {fileID: 0}
switchIcons_3: {fileID: 0}
switchIcons_4: {fileID: 0}
switchIcons_5: {fileID: 0}
switchIcons_6: {fileID: 0}
switchIcons_7: {fileID: 0}
switchIcons_8: {fileID: 0}
switchIcons_9: {fileID: 0}
switchIcons_10: {fileID: 0}
switchIcons_11: {fileID: 0}
switchIcons_12: {fileID: 0}
switchIcons_13: {fileID: 0}
switchIcons_14: {fileID: 0}
switchSmallIcons_0: {fileID: 0}
switchSmallIcons_1: {fileID: 0}
switchSmallIcons_2: {fileID: 0}
switchSmallIcons_3: {fileID: 0}
switchSmallIcons_4: {fileID: 0}
switchSmallIcons_5: {fileID: 0}
switchSmallIcons_6: {fileID: 0}
switchSmallIcons_7: {fileID: 0}
switchSmallIcons_8: {fileID: 0}
switchSmallIcons_9: {fileID: 0}
switchSmallIcons_10: {fileID: 0}
switchSmallIcons_11: {fileID: 0}
switchSmallIcons_12: {fileID: 0}
switchSmallIcons_13: {fileID: 0}
switchSmallIcons_14: {fileID: 0}
switchManualHTML:
switchAccessibleURLs:
switchLegalInformation:
switchMainThreadStackSize: 1048576
switchPresenceGroupId:
switchLogoHandling: 0
switchReleaseVersion: 0
switchDisplayVersion: 1.0.0
switchStartupUserAccount: 0
switchTouchScreenUsage: 0
switchSupportedLanguagesMask: 0
switchLogoType: 0
switchApplicationErrorCodeCategory:
switchUserAccountSaveDataSize: 0
switchUserAccountSaveDataJournalSize: 0
switchApplicationAttribute: 0
switchCardSpecSize: -1
switchCardSpecClock: -1
switchRatingsMask: 0
switchRatingsInt_0: 0
switchRatingsInt_1: 0
switchRatingsInt_2: 0
switchRatingsInt_3: 0
switchRatingsInt_4: 0
switchRatingsInt_5: 0
switchRatingsInt_6: 0
switchRatingsInt_7: 0
switchRatingsInt_8: 0
switchRatingsInt_9: 0
switchRatingsInt_10: 0
switchRatingsInt_11: 0
switchLocalCommunicationIds_0:
switchLocalCommunicationIds_1:
switchLocalCommunicationIds_2:
switchLocalCommunicationIds_3:
switchLocalCommunicationIds_4:
switchLocalCommunicationIds_5:
switchLocalCommunicationIds_6:
switchLocalCommunicationIds_7:
switchParentalControl: 0
switchAllowsScreenshot: 1
switchAllowsVideoCapturing: 1
switchDataLossConfirmation: 0
switchSupportedNpadStyles: 3
switchSocketConfigEnabled: 0
switchTcpInitialSendBufferSize: 32
switchTcpInitialReceiveBufferSize: 64
switchTcpAutoSendBufferSizeMax: 256
switchTcpAutoReceiveBufferSizeMax: 256
switchUdpSendBufferSize: 9
switchUdpReceiveBufferSize: 42
switchSocketBufferEfficiency: 4
switchSocketInitializeEnabled: 1
switchNetworkInterfaceManagerInitializeEnabled: 1
switchPlayerConnectionEnabled: 1
ps4NPAgeRating: 12
ps4NPTitleSecret:
ps4NPTrophyPackPath:
@@ -251,6 +415,7 @@ PlayerSettings:
ps4ParamSfxPath:
ps4VideoOutPixelFormat: 0
ps4VideoOutInitialWidth: 1920
ps4VideoOutBaseModeInitialWidth: 1920
ps4VideoOutReprojectionRate: 120
ps4PronunciationXMLPath:
ps4PronunciationSIGPath:
@@ -273,6 +438,7 @@ PlayerSettings:
ps4ApplicationParam4: 0
ps4DownloadDataSize: 0
ps4GarlicHeapSize: 2048
ps4ProGarlicHeapSize: 2560
ps4Passcode: BlQ9wQj99nsQzldVI5ZuGXbEWRK5RhRX
ps4UseDebugIl2cppLibs: 0
ps4pnSessions: 1
@@ -298,6 +464,9 @@ PlayerSettings:
ps4attribShareSupport: 0
ps4attribExclusiveVR: 0
ps4disableAutoHideSplash: 0
ps4videoRecordingFeaturesUsed: 0
ps4contentSearchFeaturesUsed: 0
ps4attribEyeToEyeDistanceSettingVR: 0
ps4IncludedModules: []
monoEnv:
psp2Splashimage: {fileID: 0}
@@ -348,8 +517,39 @@ PlayerSettings:
psp2InfoBarColor: 0
psp2UseDebugIl2cppLibs: 0
psmSplashimage: {fileID: 0}
splashScreenBackgroundSourceLandscape: {fileID: 0}
splashScreenBackgroundSourcePortrait: {fileID: 0}
spritePackerPolicy:
webGLMemorySize: 256
webGLExceptionSupport: 1
webGLNameFilesAsHashes: 0
webGLDataCaching: 0
webGLDebugSymbols: 0
webGLEmscriptenArgs:
webGLModulesDirectory:
webGLTemplate: APPLICATION:Default
webGLAnalyzeBuildSize: 0
webGLUseEmbeddedResources: 0
webGLUseWasm: 0
webGLCompressionFormat: 1
scriptingDefineSymbols: {}
platformArchitecture:
iOS: 2
tvOS: 1
scriptingBackend:
Android: 0
Standalone: 0
WebGL: 1
WebPlayer: 0
iOS: 1
tvOS: 1
incrementalIl2cppBuild:
iOS: 1
tvOS: 0
additionalIl2CppArgs:
apiCompatibilityLevelPerPlatform: {}
m_RenderingPath: 1
m_MobileRenderingPath: 1
metroPackageName: UnityFlash
metroPackageVersion:
metroCertificatePath:
@@ -376,29 +576,14 @@ PlayerSettings:
metroFTAFileTypes: []
metroProtocolName:
metroCompilationOverrides: 1
blackberryDeviceAddress:
blackberryDevicePassword:
blackberryTokenPath:
blackberryTokenExires:
blackberryTokenAuthor:
blackberryTokenAuthorId:
blackberryCskPassword:
blackberrySaveLogPath:
blackberrySharedPermissions: 0
blackberryCameraPermissions: 0
blackberryGPSPermissions: 0
blackberryDeviceIDPermissions: 0
blackberryMicrophonePermissions: 0
blackberryGamepadSupport: 0
blackberryBuildId: 0
blackberryLandscapeSplashScreen: {fileID: 0}
blackberryPortraitSplashScreen: {fileID: 0}
blackberrySquareSplashScreen: {fileID: 0}
tizenProductDescription:
tizenProductURL:
tizenSigningProfileName:
tizenGPSPermissions: 0
tizenMicrophonePermissions: 0
tizenDeploymentTarget:
tizenDeploymentTargetType: -1
tizenMinOSVersion: 1
n3dsUseExtSaveData: 0
n3dsCompressStaticMem: 1
n3dsExtSaveDataNumber: 0x12345
@@ -428,56 +613,26 @@ PlayerSettings:
XboxOnePackageEncryption: 0
XboxOnePackageUpdateGranularity: 2
XboxOneDescription:
XboxOneLanguage:
- enus
XboxOneCapability: []
XboxOneGameRating: {}
XboxOneIsContentPackage: 0
XboxOneEnableGPUVariability: 0
XboxOneSockets: {}
XboxOneSplashScreen: {fileID: 0}
XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0
intPropertyNames:
- Android::ScriptingBackend
- Standalone::ScriptingBackend
- WebGL::ScriptingBackend
- WebGL::audioCompressionFormat
- WebGL::exceptionSupport
- WebGL::memorySize
- WebPlayer::ScriptingBackend
- iOS::Architecture
- iOS::EnableIncrementalBuildSupportForIl2cpp
- iOS::ScriptingBackend
- tvOS::Architecture
- tvOS::EnableIncrementalBuildSupportForIl2cpp
- tvOS::ScriptingBackend
Android::ScriptingBackend: 0
Standalone::ScriptingBackend: 0
WebGL::ScriptingBackend: 1
WebGL::audioCompressionFormat: 4
WebGL::exceptionSupport: 1
WebGL::memorySize: 256
WebPlayer::ScriptingBackend: 0
iOS::Architecture: 2
iOS::EnableIncrementalBuildSupportForIl2cpp: 1
iOS::ScriptingBackend: 1
tvOS::Architecture: 1
tvOS::EnableIncrementalBuildSupportForIl2cpp: 0
tvOS::ScriptingBackend: 1
boolPropertyNames:
- WebGL::analyzeBuildSize
- WebGL::dataCaching
- WebGL::useEmbeddedResources
- XboxOne::enus
WebGL::analyzeBuildSize: 0
WebGL::dataCaching: 0
WebGL::useEmbeddedResources: 0
XboxOne::enus: 1
stringPropertyNames:
- WebGL::emscriptenArgs
- WebGL::template
- additionalIl2CppArgs::additionalIl2CppArgs
WebGL::emscriptenArgs:
WebGL::template: APPLICATION:Default
additionalIl2CppArgs::additionalIl2CppArgs:
xboxOneScriptCompiler: 0
vrEditorSettings:
daydream:
daydreamIconForeground: {fileID: 0}
daydreamIconBackground: {fileID: 0}
cloudServicesEnabled: {}
facebookSdkVersion: 7.9.1
apiCompatibilityLevel: 2
cloudProjectId:
projectName:
organizationId:
cloudEnabled: 0
enableNewInputSystem: 0

View File

@@ -1,2 +1 @@
m_EditorVersion: 5.3.7f1
m_StandardAssetsVersion: 0
m_EditorVersion: 2017.4.13f1

View File

@@ -1,11 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!292 &1
UnityAdsSettings:
m_ObjectHideFlags: 0
m_Enabled: 0
m_InitializeOnStartup: 1
m_TestMode: 0
m_EnabledPlatforms: 4294967295
m_IosGameId:
m_AndroidGameId:

View File

@@ -3,6 +3,15 @@
--- !u!310 &1
UnityConnectSettings:
m_ObjectHideFlags: 0
m_Enabled: 0
m_TestMode: 0
m_TestEventUrl:
m_TestConfigUrl:
m_TestInitMode: 0
CrashReportingSettings:
m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes
m_Enabled: 0
m_CaptureEditorExceptions: 1
UnityPurchasingSettings:
m_Enabled: 0
m_TestMode: 0
@@ -12,3 +21,12 @@ UnityConnectSettings:
m_TestMode: 0
m_TestEventUrl:
m_TestConfigUrl:
UnityAdsSettings:
m_Enabled: 0
m_InitializeOnStartup: 1
m_TestMode: 0
m_EnabledPlatforms: 4294967295
m_IosGameId:
m_AndroidGameId:
PerformanceReportingSettings:
m_Enabled: 0

View File

@@ -47,16 +47,18 @@ https://github.com/MattRix/UnityDecompiled/blob/master/UnityEditor/UnityEditor/P
**** Нужен ворнинг на использование флеш-ide старой версии
**** Возможность конфигурировать параметры групп в редакторе, а не только в рантайме
https://gist.github.com/talecrafter/111ea3345911bd238f4998b4d5a04bf3
** TODO Версия 1.3.12
** TODO Версия 1.3.13
*** Общее
**** TODO Написать гайд по качеству выгружаемых анимаций
**** TODO Гайд по использованию ETC1 текстур для анимаций
*** Улучшения
**** TODO Сделать возможность задавать локальные настройки для папки, а не только глобальные
**** TODO Note на ассет когда текстура сжата до максимального размера
**** TODO У ворнингов конверта нет контекста
**** TODO Поддержка юнити-атласов
**** TODO Поддержка задавать теги и сплит текстур на альфу для etc
**** TODO Отдельный пакет ассета для возможности проигрывать анимации, без экспорта
**** TODO Сделать опциональным вызов Stop на OnDisable SwfClipController
**** TODO Выводить в лог успешную конвертацию с контекстом
*** Баги
**** TODO Скейлы клипов не проверяются в группах
**** TODO graphics_scale не влияет на растр
@@ -66,6 +68,13 @@ https://gist.github.com/talecrafter/111ea3345911bd238f4998b4d5a04bf3
**** TODO Возможно проблемы с DX9
UNITY_UV_STARTS_AT_TOP
UNITY_HALF_TEXEL_OFFSET
** DONE Версия 1.3.12
*** Общее
**** DONE Минимальная версия 2017 LTS
*** Улучшения
**** DONE У ворнингов конверта нет контекста
*** Баги
**** DONE В новом animate сломались якорные фреймы
** DONE Версия 1.3.11
*** Баги
**** DONE Триальная версия не поддерживает Unity 2017

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

BIN
ProjectStuff/Promo/Icon.psd Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1,4 @@
{
"dependencies": {
}
}