From f5c95ce3957516158fa4d6cad59e36917ae3d8d2 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Tue, 3 Nov 2020 22:59:32 +0700 Subject: [PATCH 1/7] Create asset menu item for SwfSettings --- Assets/FlashTools/Scripts/FTRuntime/SwfSettings.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfSettings.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfSettings.cs index 8b9150c..9491395 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfSettings.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfSettings.cs @@ -57,6 +57,10 @@ namespace FTRuntime { } } + [CreateAssetMenu( + fileName = "SwfSettings", + menuName = "FlashTools/SwfSettings", + order = 100)] public class SwfSettings : ScriptableObject { public SwfSettingsData Settings; From 04763bec5b524caa0b252bbcb7ad93e2104126f7 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Tue, 3 Nov 2020 23:01:30 +0700 Subject: [PATCH 2/7] Create add component menu item for FlashTools components --- Assets/FlashTools/Scripts/FTRuntime/SwfClip.cs | 1 + Assets/FlashTools/Scripts/FTRuntime/SwfClipController.cs | 1 + Assets/FlashTools/Scripts/FTRuntime/SwfManager.cs | 1 + 3 files changed, 3 insertions(+) diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfClip.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfClip.cs index 090336c..b3c02a0 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfClip.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfClip.cs @@ -3,6 +3,7 @@ using UnityEngine.Rendering; using FTRuntime.Internal; namespace FTRuntime { + [AddComponentMenu("FlashTools/SwfClip")] [ExecuteInEditMode, DisallowMultipleComponent] [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer), typeof(SortingGroup))] public class SwfClip : MonoBehaviour { diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfClipController.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfClipController.cs index 4ee1251..480ca77 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfClipController.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfClipController.cs @@ -2,6 +2,7 @@ using FTRuntime.Internal; namespace FTRuntime { + [AddComponentMenu("FlashTools/SwfClipController")] [ExecuteInEditMode, DisallowMultipleComponent] [RequireComponent(typeof(SwfClip))] public class SwfClipController : MonoBehaviour { diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfManager.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfManager.cs index fabe133..6b110ec 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfManager.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfManager.cs @@ -3,6 +3,7 @@ using FTRuntime.Internal; using System.Collections.Generic; namespace FTRuntime { + [AddComponentMenu("FlashTools/SwfManager")] [ExecuteInEditMode, DisallowMultipleComponent] public class SwfManager : MonoBehaviour { SwfAssocList _clips = new SwfAssocList(); From 93baf5e7e9bf556641bb6571d18a9dbbc908f9bf Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 8 Jan 2021 14:07:00 +0700 Subject: [PATCH 3/7] remove deprecated GuiLayer --- .../BugTests/Joshua Sagar_Mail.meta | 8 + Assets/DevTests/Scene.unity | 76 +++-- Assets/FlashTools/Example/Scene.unity | 281 +++++++++++++----- 3 files changed, 256 insertions(+), 109 deletions(-) create mode 100644 Assets/DevTests/Animations/BugTests/Joshua Sagar_Mail.meta diff --git a/Assets/DevTests/Animations/BugTests/Joshua Sagar_Mail.meta b/Assets/DevTests/Animations/BugTests/Joshua Sagar_Mail.meta new file mode 100644 index 0000000..6e34448 --- /dev/null +++ b/Assets/DevTests/Animations/BugTests/Joshua Sagar_Mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17783bd6570e64369be75efbc13e8620 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/DevTests/Scene.unity b/Assets/DevTests/Scene.unity index 33d5be5..b3c92cb 100644 --- a/Assets/DevTests/Scene.unity +++ b/Assets/DevTests/Scene.unity @@ -1,19 +1,19 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!29 &1 -SceneSettings: +OcclusionCullingSettings: m_ObjectHideFlags: 0 - m_PVSData: - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] + serializedVersion: 2 m_OcclusionBakeSettings: smallestOccluder: 5 smallestHole: 0.25 backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 6 + serializedVersion: 8 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 6 + serializedVersion: 11 m_GIWorkflowMode: 1 - m_LightmapsMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -53,50 +54,76 @@ LightmapSettings: m_EnableBakedLightmaps: 0 m_EnableRealtimeLightmaps: 0 m_LightmapEditorSettings: - serializedVersion: 3 + serializedVersion: 9 m_Resolution: 2 m_BakeResolution: 40 m_TextureWidth: 1024 m_TextureHeight: 1024 + m_AO: 0 m_AOMaxDistance: 1 - m_Padding: 2 m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 m_TextureCompression: 1 m_FinalGather: 0 + m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: serializedVersion: 2 + agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 agentSlope: 45 agentClimb: 0.4 ledgeDropHeight: 0 maxJumpAcrossDistance: 0 - accuratePlacement: 0 minRegionArea: 2 - cellSize: 0.16666667 manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &1173114888 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 1173114893} - - 20: {fileID: 1173114892} - - 92: {fileID: 1173114891} - - 124: {fileID: 1173114890} - - 81: {fileID: 1173114889} + - component: {fileID: 1173114893} + - component: {fileID: 1173114892} + - component: {fileID: 1173114890} + - component: {fileID: 1173114889} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -112,13 +139,6 @@ AudioListener: m_GameObject: {fileID: 1173114888} m_Enabled: 1 --- !u!124 &1173114890 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1173114888} - m_Enabled: 1 ---- !u!92 &1173114891 Behaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} @@ -155,10 +175,12 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1173114893 Transform: m_ObjectHideFlags: 0 @@ -168,7 +190,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/FlashTools/Example/Scene.unity b/Assets/FlashTools/Example/Scene.unity index bf78396..eb10095 100644 --- a/Assets/FlashTools/Example/Scene.unity +++ b/Assets/FlashTools/Example/Scene.unity @@ -1,19 +1,19 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!29 &1 -SceneSettings: +OcclusionCullingSettings: m_ObjectHideFlags: 0 - m_PVSData: - m_PVSObjectsArray: [] - m_PVSPortalsArray: [] + serializedVersion: 2 m_OcclusionBakeSettings: smallestOccluder: 5 smallestHole: 0.25 backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 6 + serializedVersion: 8 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -25,6 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 0} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -37,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 6 + serializedVersion: 11 m_GIWorkflowMode: 1 - m_LightmapsMode: 1 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -53,51 +54,79 @@ LightmapSettings: m_EnableBakedLightmaps: 0 m_EnableRealtimeLightmaps: 0 m_LightmapEditorSettings: - serializedVersion: 3 + serializedVersion: 9 m_Resolution: 2 m_BakeResolution: 40 m_TextureWidth: 1024 m_TextureHeight: 1024 + m_AO: 0 m_AOMaxDistance: 1 - m_Padding: 2 m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 m_TextureCompression: 1 m_FinalGather: 0 + m_FinalGatherFiltering: 1 m_FinalGatherRayCount: 1024 m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 0} - m_RuntimeCPUUsage: 25 + m_UseShadowmask: 0 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: serializedVersion: 2 + agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 agentSlope: 45 agentClimb: 0.4 ledgeDropHeight: 0 maxJumpAcrossDistance: 0 - accuratePlacement: 0 minRegionArea: 2 - cellSize: 0.16666667 manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &58420233 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 58420238} - - 33: {fileID: 58420237} - - 23: {fileID: 58420236} - - 114: {fileID: 58420235} - - 114: {fileID: 58420234} - - 114: {fileID: 58420239} + - component: {fileID: 58420238} + - component: {fileID: 58420237} + - component: {fileID: 58420236} + - component: {fileID: 58420235} + - component: {fileID: 58420234} + - component: {fileID: 58420239} + - component: {fileID: 58420240} m_Layer: 0 m_Name: purple_apparition.fla.purpleFlower m_TagString: Untagged @@ -148,22 +177,30 @@ MeshRenderer: m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_Materials: - {fileID: 2100000, guid: d58d9a5e482e8429f8d7d18a9538d94a, type: 2} - m_SubsetIndices: + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &58420237 MeshFilter: @@ -181,10 +218,10 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &58420239 MonoBehaviour: m_ObjectHideFlags: 0 @@ -196,15 +233,25 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 59eb8a1569d5d49c2a71ee09aabc647e, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!210 &58420240 +SortingGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 58420233} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!1 &919052529 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 919052531} - - 114: {fileID: 919052530} + - component: {fileID: 919052531} + - component: {fileID: 919052530} m_Layer: 0 m_Name: '[SwfManager]' m_TagString: Untagged @@ -232,22 +279,23 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &944418756 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 944418761} - - 33: {fileID: 944418760} - - 23: {fileID: 944418759} - - 114: {fileID: 944418758} - - 114: {fileID: 944418757} + - component: {fileID: 944418761} + - component: {fileID: 944418760} + - component: {fileID: 944418759} + - component: {fileID: 944418758} + - component: {fileID: 944418757} + - component: {fileID: 944418762} m_Layer: 0 m_Name: npc_smuggler.fla.smuggler m_TagString: Untagged @@ -298,6 +346,10 @@ MeshRenderer: m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_Materials: - {fileID: 2100000, guid: d58d9a5e482e8429f8d7d18a9538d94a, type: 2} - {fileID: 2100000, guid: 3c29e337d2fa54be7af8d125c34562b7, type: 2} @@ -306,20 +358,24 @@ MeshRenderer: - {fileID: 2100000, guid: 3c29e337d2fa54be7af8d125c34562b7, type: 2} - {fileID: 2100000, guid: fd62ebda9455442f4a7861e78484f3b6, type: 2} - {fileID: 2100000, guid: 69837dba6d9e9419a8e22a6b25de0008, type: 2} - m_SubsetIndices: + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &944418760 MeshFilter: @@ -337,22 +393,33 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1, y: -1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &944418762 +SortingGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 944418756} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!1 &1036351690 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 1036351695} - - 33: {fileID: 1036351694} - - 23: {fileID: 1036351693} - - 114: {fileID: 1036351692} - - 114: {fileID: 1036351691} + - component: {fileID: 1036351695} + - component: {fileID: 1036351694} + - component: {fileID: 1036351693} + - component: {fileID: 1036351692} + - component: {fileID: 1036351691} + - component: {fileID: 1036351696} m_Layer: 0 m_Name: npc_bureaucrat.fla.bureaucrat m_TagString: Untagged @@ -403,22 +470,30 @@ MeshRenderer: m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_Materials: - {fileID: 2100000, guid: d58d9a5e482e8429f8d7d18a9538d94a, type: 2} - m_SubsetIndices: + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1036351694 MeshFilter: @@ -436,22 +511,31 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 2, y: 1, z: 1} m_LocalScale: {x: -1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &1036351696 +SortingGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1036351690} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!1 &1173114888 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 1173114893} - - 20: {fileID: 1173114892} - - 92: {fileID: 1173114891} - - 124: {fileID: 1173114890} - - 81: {fileID: 1173114889} + - component: {fileID: 1173114893} + - component: {fileID: 1173114892} + - component: {fileID: 1173114890} + - component: {fileID: 1173114889} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -467,13 +551,6 @@ AudioListener: m_GameObject: {fileID: 1173114888} m_Enabled: 1 --- !u!124 &1173114890 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1173114888} - m_Enabled: 1 ---- !u!92 &1173114891 Behaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} @@ -510,10 +587,12 @@ Camera: m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1173114893 Transform: m_ObjectHideFlags: 0 @@ -523,22 +602,23 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1441265966 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 1441265971} - - 33: {fileID: 1441265970} - - 23: {fileID: 1441265969} - - 114: {fileID: 1441265968} - - 114: {fileID: 1441265967} + - component: {fileID: 1441265971} + - component: {fileID: 1441265970} + - component: {fileID: 1441265969} + - component: {fileID: 1441265968} + - component: {fileID: 1441265967} + - component: {fileID: 1441265972} m_Layer: 0 m_Name: rainbow_100coinstoday.fla._Stage_ m_TagString: Untagged @@ -589,25 +669,33 @@ MeshRenderer: m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_Materials: - {fileID: 2100000, guid: 3c29e337d2fa54be7af8d125c34562b7, type: 2} - {fileID: 2100000, guid: fd62ebda9455442f4a7861e78484f3b6, type: 2} - {fileID: 2100000, guid: 69837dba6d9e9419a8e22a6b25de0008, type: 2} - {fileID: 2100000, guid: d58d9a5e482e8429f8d7d18a9538d94a, type: 2} - m_SubsetIndices: + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1441265970 MeshFilter: @@ -625,22 +713,33 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -2.578, y: 1.537, z: 1} m_LocalScale: {x: 0.5, y: 0.5, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &1441265972 +SortingGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1441265966} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!1 &1893990126 GameObject: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - serializedVersion: 4 + serializedVersion: 5 m_Component: - - 4: {fileID: 1893990131} - - 33: {fileID: 1893990130} - - 23: {fileID: 1893990129} - - 114: {fileID: 1893990128} - - 114: {fileID: 1893990127} + - component: {fileID: 1893990131} + - component: {fileID: 1893990130} + - component: {fileID: 1893990129} + - component: {fileID: 1893990128} + - component: {fileID: 1893990127} + - component: {fileID: 1893990132} m_Layer: 0 m_Name: npc_smuggler.fla.smuggler (1) m_TagString: Untagged @@ -691,6 +790,10 @@ MeshRenderer: m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 m_Materials: - {fileID: 2100000, guid: d58d9a5e482e8429f8d7d18a9538d94a, type: 2} - {fileID: 2100000, guid: 3c29e337d2fa54be7af8d125c34562b7, type: 2} @@ -699,20 +802,24 @@ MeshRenderer: - {fileID: 2100000, guid: 3c29e337d2fa54be7af8d125c34562b7, type: 2} - {fileID: 2100000, guid: fd62ebda9455442f4a7861e78484f3b6, type: 2} - {fileID: 2100000, guid: 69837dba6d9e9419a8e22a6b25de0008, type: 2} - m_SubsetIndices: + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 + m_SortingLayer: 0 m_SortingOrder: 0 --- !u!33 &1893990130 MeshFilter: @@ -730,7 +837,17 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1, y: -1, z: 1} m_LocalScale: {x: -1, y: 1, z: 1} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &1893990132 +SortingGroup: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893990126} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 From 795da421975ef4da3a89decaba65ada2fcffc647 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 8 Jan 2021 15:05:45 +0700 Subject: [PATCH 4/7] fix 2019 deprecation warnings --- .../Editor/FTEditor/Editors/SwfClipAssetEditor.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Assets/FlashTools/Scripts/Editor/FTEditor/Editors/SwfClipAssetEditor.cs b/Assets/FlashTools/Scripts/Editor/FTEditor/Editors/SwfClipAssetEditor.cs index cf36777..36506aa 100644 --- a/Assets/FlashTools/Scripts/Editor/FTEditor/Editors/SwfClipAssetEditor.cs +++ b/Assets/FlashTools/Scripts/Editor/FTEditor/Editors/SwfClipAssetEditor.cs @@ -57,14 +57,12 @@ namespace FTEditor.Editors { if ( clip_go ) { var prefab_path = GetPrefabPath(clip); if ( !string.IsNullOrEmpty(prefab_path) ) { - var prefab = AssetDatabase.LoadMainAssetAtPath(prefab_path); - if ( !prefab ) { - prefab = PrefabUtility.CreateEmptyPrefab(prefab_path); - } - result = PrefabUtility.ReplacePrefab( - clip_go, - prefab, - ReplacePrefabOptions.ConnectToPrefab); + prefab_path = AssetDatabase.GenerateUniqueAssetPath(prefab_path); + #if UNITY_2018_3_OR_NEWER + result = PrefabUtility.SaveAsPrefabAsset(clip_go, prefab_path); + #else + result = PrefabUtility.CreatePrefab(prefab_path, clip_go); + #endif } GameObject.DestroyImmediate(clip_go, true); } From 8ff74b5ca3df081951c723dff591ed7a3cb44aaa Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 8 Jan 2021 17:40:38 +0700 Subject: [PATCH 5/7] PreferBinarySerialization for swf assets --- Assets/FlashTools/Scripts/FTRuntime/SwfAsset.cs | 1 + Assets/FlashTools/Scripts/FTRuntime/SwfClipAsset.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfAsset.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfAsset.cs index 5418af7..1673072 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfAsset.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfAsset.cs @@ -3,6 +3,7 @@ using FTRuntime.Internal; using System.Collections.Generic; namespace FTRuntime { + [PreferBinarySerialization] public class SwfAsset : ScriptableObject { [HideInInspector] public byte[] Data; diff --git a/Assets/FlashTools/Scripts/FTRuntime/SwfClipAsset.cs b/Assets/FlashTools/Scripts/FTRuntime/SwfClipAsset.cs index afd0f39..df0f818 100644 --- a/Assets/FlashTools/Scripts/FTRuntime/SwfClipAsset.cs +++ b/Assets/FlashTools/Scripts/FTRuntime/SwfClipAsset.cs @@ -3,6 +3,7 @@ using FTRuntime.Internal; using System.Collections.Generic; namespace FTRuntime { + [PreferBinarySerialization] public class SwfClipAsset : ScriptableObject { [System.Serializable] public class SubMeshData { From 1b1fdf3641243ba6d40da7e02fa9e0a567136c88 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 8 Jan 2021 17:44:42 +0700 Subject: [PATCH 6/7] reconvert example animations --- .../npc_bureaucrat.fla._Stage_.asset | Bin 5317 -> 5500 bytes .../npc_bureaucrat.fla.asset | Bin 414343 -> 211020 bytes .../npc_bureaucrat.fla.bureaucrat.asset | Bin 896909 -> 238032 bytes .../npc_smuggler.fla._Stage_.asset | Bin 8294 -> 6248 bytes .../npc_smuggler.fla.asset | Bin 1759819 -> 883756 bytes .../npc_smuggler.fla.smuggler.asset | Bin 4471869 -> 1134352 bytes .../purple_apparition.fla._Stage_.asset | Bin 8103 -> 6344 bytes .../purple_apparition.fla.asset | Bin 2949943 -> 1478828 bytes .../purple_apparition.fla.purpleFlower.asset | Bin 2532633 -> 682316 bytes .../rainbow_100coinstoday.fla._Stage_.asset | Bin 1088028 -> 290240 bytes .../rainbow_100coinstoday.fla.asset | Bin 623039 -> 315376 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Assets/FlashTools/Example/Animations/npc_bureaucrat.fla_export/npc_bureaucrat.fla._Stage_.asset b/Assets/FlashTools/Example/Animations/npc_bureaucrat.fla_export/npc_bureaucrat.fla._Stage_.asset index 36806dd9c6590290734860d8eb840e192ee23857..2109c087a2182d5dc4c82d8a4edc6b16b2fc7ddb 100644 GIT binary patch literal 5500 zcmeI0ZBSI#8OP5q$g3!rA`!u0pe95`z~xQgp5;|UUKUW=RDmvVk?ruJ`$C{Wvl2s1 z(MczfByEx!GaZBDq$Fx%ZRK2zsA;Ov=>XMfYEefSO~z20wlUhAKF_(kw_KBa>xX>c z&OG;=^E>DM&;LI6?76#3NZ?^Y!n+9}VT6Q2K}d39Qd)v3!IapPM84#l8w>#LqKjmf z_N7eBF&*-Y41eN>ea}AlT2X$@J8p)gQ{WJZ3w)?-$2}Hgt$S1i>uwp z4P>tmaUXy_U(YxkiyV(p;4`5#La5wGE`i2eXybSv!QIejBnhDN5VQk4eQ>GJ=`|Af zut#Tx7>`=Ib0^1L0T-9Ih(f7XsHK9{7AQ|0PgI|1rqiLSL7kg~-jw_4#=ixd^@gSdAM9e%9(BP(Kd28?Vvl z|GOI3>n}ns!bj-f^F^IUwDG>ezc>F_s`@i@{^OCGQOi%aejY*r47H zf%7gw?#65M`uL1guGddMF2Yafc>OQa#`}{|$bSd4Q9n`R0XqNiIUt5(s1>O5pNw2Y zpvZ$)e>pNY_66y5Ovug1gLOJ7$VCL}@{p==f3g|s80ZuBOOJj4>4p099-fX|M4)co z42=ir=3Oy`qYnDVJq*{o*AMQiuRKb5220vxKDhYekpSE zSM|$~i_q(rYg}Fb7od&$7LDuIKkU689sT;RoWid_9rJ_xWR=F%`^9}6^R`BCx5&fP zeR8dbTP#j{Rzai9*={fBbjocGTYH;CTI&jJE%K^-s93DdW~h`|TV)~!$5m~#+nlmQ z)RGk1p{vsBlu3@mAv;&Dh0#^=CYRjSAZrzeI!rw~NQt#xZgG%O+0mSDby`W4tN#AF z>>yQ6tKC^G+nsVJS=H7kcjmRb+MEQ5tpWNwNf%jL?I1agjd|@Y?RF4!wRme_$ZoU3 zB&z9BPg@dMCB*!Xw;%)R(LF;g)#paYc-No+K6pNMXT>;~%rm}pN{ODeuent~A~h_i z4u8LVXYcrJ{)cz__p7w#!oF+Ut`t50+~(+k$De-fS4LHL`aGS1=?qL~U^)ZS8Tfx^ z0N+`7VCj8t;cu+AjSY46F1u`XHQ24rgr*j2LLIzMH^}(I1P=T??FIOnit#D%NFB?G zfwna{B`tZmHL0O7y*|m5WKFF%rDvojrlzEutf@_@DL5E4^5rJ0tHtSgtExT#lPwVV z-Q&P)C40ChM5!@F&{uLfyBilyPq*hPdw2ahTdJ@q@5L^mX>S~1|GwEsLtURU$CEjf z6=x~ghXQEj>&s9etPlaBl~ zPci0QmDXj?RemuNN{bxJl*IRLNGoSnDtz63Y28@5(sg_(wH-gt`ex_RlRL)P_TFsz z!o3HSj`TX?u=UBAJ8A5lZ&qE8P+ z-*nM1*B^(ndR%nQ?PcsQgX`)1Q%l)ZDTMC*xRGV{ZKd-v+u04@t@M2VpP7_AlSZ`t ziS>=&lV-lUYv``eGjvtpTSGDN+i2|Tr&)~ajx@6EIBS14mPXow*hG9jy^$QjJx!q5(TW6E$PtRD`qEFK35?aBwoJ*tIe=D=XcarJ#0+~HmoJoy!7WQsE zrH6lKVdEK;_D{63BMUR>cwZ}fvvdK?n9N{bjup_8ayHxFTtM5RdfA%4MbiQ6Hn!lS zDB75NW+*nRgznxkGE_0RnnqkLVmRP@oqyZ12L zhlCD?y~6qrUX(rvD?bu?&qnt&Cm(fh-#|xBTw|^?BhsegarXHO(LN;y?2?i>(j|B zOHP9o)hr`6yq+CxF-TY`z293V(!;@Jimn zW&RTwSHYY3<9q}3+xe3~XYX{H;F;uSW5AA)axI`F57z Q3imSn0v{6`17|}13#ZhL0{{R3 literal 5317 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