From 55a7d21860e4bf7954c247512767e950367c4133 Mon Sep 17 00:00:00 2001 From: "Simon (Darkside) Jackson" <darkside@zenithmoon.com> Date: Sat, 20 Jan 2018 12:08:44 +0000 Subject: [PATCH] First pass optimisation for next update. [x] Cleared any outstanding warnings on build [x] Tested random scenes and updated (requires further investigation) --- Examples/Cooldown/box.png.meta | 41 +++++++++---- Examples/Cooldown/fadeUp.png.meta | 41 +++++++++---- Examples/Cooldown/sphere.png.meta | 41 +++++++++---- Examples/Cooldown/swipe.png.meta | 41 +++++++++---- .../01_Basic/01_BasicScene.unity | 40 +++++++------ .../Animations/01_Basic_CellScroll.controller | 4 +- .../01_Basic/Example01Scene.cs | 2 +- .../01_Basic/Example01ScrollView.cs | 2 +- .../01_Basic/Example01ScrollViewCell.cs | 4 +- .../02_CellEventHandling.unity | 40 +++++++------ .../02_CellEventHandling/Example02Scene.cs | 2 +- .../Example02ScrollView.cs | 2 +- .../Example02ScrollViewCell.cs | 8 +-- .../03_InfiniteScroll/Example03Scene.cs | 2 +- .../03_InfiniteScroll/Example03ScrollView.cs | 2 +- .../Example03ScrollViewCell.cs | 8 +-- .../ContentSnapScrollExample.unity | Bin 87632 -> 126951 bytes .../GameObject (1).prefab.meta | 4 +- .../Horizontal_page_prefab.prefab.meta | 4 +- Examples/HSS-VSS-ScrollSnap/Image.prefab.meta | 4 +- .../ScrollSnapManagedTests.unity.meta | 3 +- .../UpdateScrollSnap.cs.meta | 3 +- .../Vertical_Page_Prefab.prefab.meta | 4 +- .../ScrollrectConflictManagerDemo.unity.meta | 3 +- Examples/TextEffects/swirl.png.meta | 41 +++++++++---- Examples/UILineRenderer/TestAddingPoints.cs | 1 + .../UILineRenderer/TestAddingPoints.cs.meta | 3 +- .../UILineRenderer/UILineRendererDemo.unity | 54 +++++++++--------- .../UILineRendererDemo.unity.meta | 3 +- Scripts/Controls/ComboBox/DropDownListItem.cs | 4 +- Scripts/Controls/TextPic.cs | 11 ---- Scripts/Effects/CylinderText.cs | 6 -- Scripts/Layout/ContentScrollSnapHorizontal.cs | 3 - Scripts/Layout/FancyScrollView.cs | 8 +-- Scripts/Layout/ScrollPositionController.cs | 2 +- Scripts/Utilities/PaginationManager.cs | 2 +- Scripts/Utilities/ScrollRectLinker.cs | 4 +- Scripts/Utilities/UIScrollToSelection.cs | 2 +- Scripts/Utilities/UIScrollToSelectionXY.cs | 2 +- 39 files changed, 277 insertions(+), 174 deletions(-) diff --git a/Examples/Cooldown/box.png.meta b/Examples/Cooldown/box.png.meta index a8dd14f..b28ebe8 100644 --- a/Examples/Cooldown/box.png.meta +++ b/Examples/Cooldown/box.png.meta @@ -1,17 +1,20 @@ fileFormatVersion: 2 -guid: 53265fa76b3529848a7fb47f0f4a594b +guid: ceeaeb4352e834c459ca80dcae969757 timeCreated: 1447969857 licenseType: Store TextureImporter: fileIDToRecycleName: {} - serializedVersion: 2 + externalObjects: {} + serializedVersion: 4 mipmaps: mipMapMode: 0 enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,23 +24,22 @@ TextureImporter: normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 4 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: -1 aniso: 0 mipBias: -1 - wrapMode: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 @@ -45,12 +47,29 @@ TextureImporter: spritePivot: {x: 0.5, y: 0.5} spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + alphaUsage: 1 alphaIsTransparency: 1 - textureType: 5 - buildTargetSettings: [] + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 spriteSheet: + serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] spritePackingTag: userData: assetBundleName: diff --git a/Examples/Cooldown/fadeUp.png.meta b/Examples/Cooldown/fadeUp.png.meta index b49b7d8..66d7ed8 100644 --- a/Examples/Cooldown/fadeUp.png.meta +++ b/Examples/Cooldown/fadeUp.png.meta @@ -1,17 +1,20 @@ fileFormatVersion: 2 -guid: 2b2d3cd4355b13b4699d3f1abf451cf7 +guid: 7c32e2a899332044dbe22833ca3c21b7 timeCreated: 1447970042 licenseType: Store TextureImporter: fileIDToRecycleName: {} - serializedVersion: 2 + externalObjects: {} + serializedVersion: 4 mipmaps: mipMapMode: 0 enableMipMap: 1 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,23 +24,22 @@ TextureImporter: normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 4 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: -1 aniso: 0 mipBias: -1 - wrapMode: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 @@ -45,12 +47,29 @@ TextureImporter: spritePivot: {x: 0.5, y: 0.5} spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + alphaUsage: 1 alphaIsTransparency: 1 - textureType: 5 - buildTargetSettings: [] + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 spriteSheet: + serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] spritePackingTag: userData: assetBundleName: diff --git a/Examples/Cooldown/sphere.png.meta b/Examples/Cooldown/sphere.png.meta index cca4f0c..4ebebdf 100644 --- a/Examples/Cooldown/sphere.png.meta +++ b/Examples/Cooldown/sphere.png.meta @@ -1,17 +1,20 @@ fileFormatVersion: 2 -guid: be862b17a8fa1544da2abdb50784ccf9 +guid: cfdaf5de41bd3704fa29a6b24314293e timeCreated: 1447969667 licenseType: Store TextureImporter: fileIDToRecycleName: {} - serializedVersion: 2 + externalObjects: {} + serializedVersion: 4 mipmaps: mipMapMode: 0 enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,23 +24,22 @@ TextureImporter: normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 4 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: -1 aniso: 0 mipBias: -1 - wrapMode: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 @@ -45,12 +47,29 @@ TextureImporter: spritePivot: {x: 0.5, y: 0.5} spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + alphaUsage: 1 alphaIsTransparency: 1 - textureType: 5 - buildTargetSettings: [] + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 spriteSheet: + serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] spritePackingTag: userData: assetBundleName: diff --git a/Examples/Cooldown/swipe.png.meta b/Examples/Cooldown/swipe.png.meta index 5f48d68..1c7245e 100644 --- a/Examples/Cooldown/swipe.png.meta +++ b/Examples/Cooldown/swipe.png.meta @@ -1,17 +1,20 @@ fileFormatVersion: 2 -guid: 85b639891c9cfa54998a58964e8ef747 +guid: 5a31d158d5e42e64096d5da4c26b6726 timeCreated: 1447964200 licenseType: Store TextureImporter: fileIDToRecycleName: {} - serializedVersion: 2 + externalObjects: {} + serializedVersion: 4 mipmaps: mipMapMode: 0 enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,23 +24,22 @@ TextureImporter: normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 4 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: -1 aniso: 0 mipBias: -1 - wrapMode: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 @@ -45,12 +47,29 @@ TextureImporter: spritePivot: {x: 0.5, y: 0.5} spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + alphaUsage: 1 alphaIsTransparency: 1 - textureType: 5 - buildTargetSettings: [] + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 spriteSheet: + serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] spritePackingTag: userData: assetBundleName: diff --git a/Examples/FancyScrollView/01_Basic/01_BasicScene.unity b/Examples/FancyScrollView/01_Basic/01_BasicScene.unity index 627eb27..d99b30f 100644 --- a/Examples/FancyScrollView/01_Basic/01_BasicScene.unity +++ b/Examples/FancyScrollView/01_Basic/01_BasicScene.unity @@ -38,11 +38,11 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.37311947, g: 0.38074005, b: 0.35872722, a: 1} + m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 @@ -54,7 +54,7 @@ LightmapSettings: m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 8 + serializedVersion: 9 m_Resolution: 2 m_BakeResolution: 40 m_TextureWidth: 1024 @@ -77,17 +77,20 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 - m_PVRFiltering: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 m_PVRFilteringMode: 1 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousColorSigma: 1 - m_PVRFilteringAtrousNormalSigma: 1 - m_PVRFilteringAtrousPositionSigma: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 0} - m_ShadowMaskMode: 2 + m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -107,6 +110,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &650160435 GameObject: @@ -224,7 +229,6 @@ GameObject: m_Component: - component: {fileID: 777088608} - component: {fileID: 777088607} - - component: {fileID: 777088606} - component: {fileID: 777088605} - component: {fileID: 777088604} m_Layer: 0 @@ -242,13 +246,6 @@ AudioListener: m_GameObject: {fileID: 777088603} m_Enabled: 1 --- !u!124 &777088605 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 777088603} - m_Enabled: 1 ---- !u!92 &777088606 Behaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} @@ -290,7 +287,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &777088608 Transform: m_ObjectHideFlags: 0 @@ -434,6 +430,16 @@ MonoBehaviour: VelocityThreshold: 0.5 Duration: 0.3 dataCount: 0 + OnUpdatePosition: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Extensions.ScrollPositionController+UpdatePositionEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + OnItemSelected: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Extensions.ScrollPositionController+ItemSelectedEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null --- !u!114 &1492537700 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Examples/FancyScrollView/01_Basic/Animations/01_Basic_CellScroll.controller b/Examples/FancyScrollView/01_Basic/Animations/01_Basic_CellScroll.controller index 9b8d31d..28676bd 100644 --- a/Examples/FancyScrollView/01_Basic/Animations/01_Basic_CellScroll.controller +++ b/Examples/FancyScrollView/01_Basic/Animations/01_Basic_CellScroll.controller @@ -43,7 +43,7 @@ AnimatorStateTransition: m_TransitionDuration: 0.1 m_TransitionOffset: 0 m_ExitTime: 0.9 - m_HasExitTime: 0 + m_HasExitTime: 1 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 @@ -66,11 +66,13 @@ AnimatorState: m_SpeedParameterActive: 0 m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 m_Motion: {fileID: 7400000, guid: 9e6e4c5500df9dc439749ba892b2995c, type: 2} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &1107904440216339570 AnimatorStateMachine: serializedVersion: 5 diff --git a/Examples/FancyScrollView/01_Basic/Example01Scene.cs b/Examples/FancyScrollView/01_Basic/Example01Scene.cs index 1212164..9da4f8c 100644 --- a/Examples/FancyScrollView/01_Basic/Example01Scene.cs +++ b/Examples/FancyScrollView/01_Basic/Example01Scene.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example01Scene : MonoBehaviour { [SerializeField] - Example01ScrollView scrollView; + Example01ScrollView scrollView = null; void Start() { diff --git a/Examples/FancyScrollView/01_Basic/Example01ScrollView.cs b/Examples/FancyScrollView/01_Basic/Example01ScrollView.cs index ffb191d..2087db0 100644 --- a/Examples/FancyScrollView/01_Basic/Example01ScrollView.cs +++ b/Examples/FancyScrollView/01_Basic/Example01ScrollView.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example01ScrollView : FancyScrollView<Example01CellDto> { [SerializeField] - ScrollPositionController scrollPositionController; + ScrollPositionController scrollPositionController = null; new void Awake() { diff --git a/Examples/FancyScrollView/01_Basic/Example01ScrollViewCell.cs b/Examples/FancyScrollView/01_Basic/Example01ScrollViewCell.cs index a35b7f7..7d68235 100644 --- a/Examples/FancyScrollView/01_Basic/Example01ScrollViewCell.cs +++ b/Examples/FancyScrollView/01_Basic/Example01ScrollViewCell.cs @@ -3,9 +3,9 @@ public class Example01ScrollViewCell : FancyScrollViewCell<Example01CellDto> { [SerializeField] - Animator animator; + Animator animator = null; [SerializeField] - Text message; + Text message = null; readonly int scrollTriggerHash = Animator.StringToHash("scroll"); diff --git a/Examples/FancyScrollView/02_CellEventHandling/02_CellEventHandling.unity b/Examples/FancyScrollView/02_CellEventHandling/02_CellEventHandling.unity index 6a07247..c3d8493 100644 --- a/Examples/FancyScrollView/02_CellEventHandling/02_CellEventHandling.unity +++ b/Examples/FancyScrollView/02_CellEventHandling/02_CellEventHandling.unity @@ -38,11 +38,11 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.37311947, g: 0.38074005, b: 0.35872722, a: 1} + m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 @@ -54,7 +54,7 @@ LightmapSettings: m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 8 + serializedVersion: 9 m_Resolution: 2 m_BakeResolution: 40 m_TextureWidth: 1024 @@ -77,17 +77,20 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 - m_PVRFiltering: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 m_PVRFilteringMode: 1 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousColorSigma: 1 - m_PVRFilteringAtrousNormalSigma: 1 - m_PVRFilteringAtrousPositionSigma: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 0} - m_ShadowMaskMode: 2 + m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -107,6 +110,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &650160435 GameObject: @@ -224,7 +229,6 @@ GameObject: m_Component: - component: {fileID: 777088608} - component: {fileID: 777088607} - - component: {fileID: 777088606} - component: {fileID: 777088605} - component: {fileID: 777088604} m_Layer: 0 @@ -242,13 +246,6 @@ AudioListener: m_GameObject: {fileID: 777088603} m_Enabled: 1 --- !u!124 &777088605 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 777088603} - m_Enabled: 1 ---- !u!92 &777088606 Behaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} @@ -290,7 +287,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &777088608 Transform: m_ObjectHideFlags: 0 @@ -492,6 +488,16 @@ MonoBehaviour: VelocityThreshold: 0.5 Duration: 0.3 dataCount: 0 + OnUpdatePosition: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Extensions.ScrollPositionController+UpdatePositionEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + OnItemSelected: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Extensions.ScrollPositionController+ItemSelectedEvent, + Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null --- !u!114 &1492537701 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Examples/FancyScrollView/02_CellEventHandling/Example02Scene.cs b/Examples/FancyScrollView/02_CellEventHandling/Example02Scene.cs index 0684e5a..2cae273 100644 --- a/Examples/FancyScrollView/02_CellEventHandling/Example02Scene.cs +++ b/Examples/FancyScrollView/02_CellEventHandling/Example02Scene.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example02Scene : MonoBehaviour { [SerializeField] - Example02ScrollView scrollView; + Example02ScrollView scrollView = null; void Start() { diff --git a/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollView.cs b/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollView.cs index f78a32f..30c23e4 100644 --- a/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollView.cs +++ b/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollView.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example02ScrollView : FancyScrollView<Example02CellDto, Example02ScrollViewContext> { [SerializeField] - ScrollPositionController scrollPositionController; + ScrollPositionController scrollPositionController = null; new void Awake() { diff --git a/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollViewCell.cs b/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollViewCell.cs index 31d3ce3..77f06b9 100644 --- a/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollViewCell.cs +++ b/Examples/FancyScrollView/02_CellEventHandling/Example02ScrollViewCell.cs @@ -4,13 +4,13 @@ : FancyScrollViewCell<Example02CellDto, Example02ScrollViewContext> { [SerializeField] - Animator animator; + Animator animator = null; [SerializeField] - Text message; + Text message = null; [SerializeField] - Image image; + Image image = null; [SerializeField] - Button button; + Button button = null; readonly int scrollTriggerHash = Animator.StringToHash("scroll"); Example02ScrollViewContext context; diff --git a/Examples/FancyScrollView/03_InfiniteScroll/Example03Scene.cs b/Examples/FancyScrollView/03_InfiniteScroll/Example03Scene.cs index 1e07d18..fd1af91 100644 --- a/Examples/FancyScrollView/03_InfiniteScroll/Example03Scene.cs +++ b/Examples/FancyScrollView/03_InfiniteScroll/Example03Scene.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example03Scene : MonoBehaviour { [SerializeField] - Example03ScrollView scrollView; + Example03ScrollView scrollView = null; void Start() { diff --git a/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollView.cs b/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollView.cs index c89b91f..edbbcd4 100644 --- a/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollView.cs +++ b/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollView.cs @@ -5,7 +5,7 @@ namespace UnityEngine.UI.Extensions.Examples public class Example03ScrollView : FancyScrollView<Example03CellDto, Example03ScrollViewContext> { [SerializeField] - ScrollPositionController scrollPositionController; + ScrollPositionController scrollPositionController = null; new void Awake() { diff --git a/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollViewCell.cs b/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollViewCell.cs index 3318fea..9f45367 100644 --- a/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollViewCell.cs +++ b/Examples/FancyScrollView/03_InfiniteScroll/Example03ScrollViewCell.cs @@ -4,13 +4,13 @@ : FancyScrollViewCell<Example03CellDto, Example03ScrollViewContext> { [SerializeField] - Animator animator; + Animator animator = null; [SerializeField] - Text message; + Text message = null; [SerializeField] - Image image; + Image image = null; [SerializeField] - Button button; + Button button = null; readonly int scrollTriggerHash = Animator.StringToHash("scroll"); Example03ScrollViewContext context; diff --git a/Examples/HSS-VSS-ScrollSnap/ContentSnapScrollExample.unity b/Examples/HSS-VSS-ScrollSnap/ContentSnapScrollExample.unity index 3500e65cd5fae142e5c42e90aa310977630fd808..3d2f9d8262a9f9ece812756ff20f65b11d50c155 100644 GIT binary patch literal 126951 zcmeHwYj4}gmhJca3eJb=IfG6N@g-3K4hD{$hwp742e#9Vi;IhZmS~$Nl&F!YJZ3Qe z{jOcLH(8`8wxh^aDXrj~q(v6VUC;eq`(OXh@%e9#d*nX**X!fA&c7`G#VO*um&<8d zeDlXgqkQt*>$&dBXD?p7pu67C`Ne&9F&bsdMVe1fmRXig@2--fz(0$Z&m3p+@#5y6 z$*6djj*~Z8jEhbWmlw%AjkEN>lJW1!oF0AYc)GQ`>s9<IF<*pdCUKS}i$Z;FoXlT3 zAs(r&zss`(Z$I+%<(qi)={6oE*Z1>eai3@7myX+`Z%;m6jgo2d_QTmJn*Yh4I#Jxg z)3}IVI{$r}W{G;o|Hyc_y}<d!dv=*jL7z$e!-pYKUwo6_>4BPj#DAXTS&r`hH~!x{ z3ZFZ4kN&;ke?g4<Kl0ppKE^Qk^7AyAE--u4vgfLczopY8p5wJwMLaKXqki@E6eH#H zNF7gZ(qvj(efn0T!E-&P!t(}9hZhc?I~67T<m>-j#zj7_J?**yKka(b3)lBso_;&e zm(y|W;a-3bssZQ)ctj0B&&O+4K7BSVr0=@pOp+cTUJ1*aVjho*^mB4`ACL1dwQmK| z%U}@kr~1_2>Qfk)oBZo}T&VSItO>X0_o$c46r<T(W4Db9&z<7ijMlE6#CLI)UlsFY zdRN@jywQ5bI>_RAQeD<vQWxLE<K$|VBs6cTDZSu2`C2UJc&WKe)#9J!#YvujO3i!N z89jF$xk)#<r^#)+%!<q8Hp528UN#4K<>qCw$g?Fi!=m-{YOfxBh4~&OI3#rUsv9el zd9qv-`J`&l($OV8(d_-%bezsXCdO;D#E6>nt=E;FXqjX_=-hDN{Ng|RExo%hCh=^u zt?lYgy*>LQpMSc|@-OB<y*)Euy7q*m8PtPxHHzuHqj%Cp>Da}xm@SLO&ExDQ8RxI^ ze1ZKgPh2OHSw4@mll(rxVymB&{MOgg&*?m$PH+aOzT;T0h^EiJp2jy>LWlKO28U;_ zx_g<#S&>eXMuW*mx$t_N;*9vy{tuZba|sdGP-6lL%<BQ|Z@R(z;E!}no5}5YLH)+N zgyyt%=lDV&iuCyL#d-YoG+h)i2B;dllYBBezIgq0mQOJ>>#m=wrB=P{eLNmx1U0Xt zx61&$kLU3u!6AaNtFKtI)q;ju4}Ud>YL^o^;BuOg%Dp$~G|t|}1!lJ*!MOM)&FI)7 zdRiX2jB(^Isc&A`F9%+>c<qBS2j}V6WL(iGm+8tYFk>*qijMccUtYzN8Ho$k=W$UF znYxwm_kDShJR>(k#iVG2aHl*ujMln`*Em~OX5#nD>ZWX+8g<oeb2;Ec<*?Of0(V$C zsP(68{We}M7MJljT`q(e8FlleMze}6EzqcLw!M!CT<J9i_P7B1T)fZ0|8d-2rFWB9 zKCPJw4_*1rmIo>#9{2?!MmlzNpMR+~<;CY@p2d(v=r*r?P)Wkn@nVr+rPY`I<l~10 zbLC0A_(adiX*}#ZzXZ?z5r001XlI@q>*dNeDHKQPGR?;33px(o_zqj07L$_s)Rs_} z^rT|(C`Ro#>Y^MgdeqdVt1KrbAL!Xsmrk;Dq9ho7C}qj`E;*g&GkKa1vH0u%TH?GJ z&GQ8okDNt(Go4;0cbMPfc>=kFXDOa8aj+*@b_E$**7d0RedPAlpMl=ls`)j<S+jXj z{+1IU9*vfB$U5&c$koIX<jv#cW_d^AzCLpeL4Wd*XKB66?EDf&18?Z}2hZN(6x8}c zhwgxVFo(!-gF_P}aPyV5quY?!Fvl_2Tw5*cL`zw8u<0`$y?Nn`%AeH-nA(VhwXPNe zCC+uV=nu8P_gnl;)EOGD31&=ot<rJ8#bQY7`mFvig-UjpjPZ4F{SnDg&3(f|&aY)j zw}^{$q&aPEe$E!hO8zzWm*+u^k#0hp85P&_c)GaF=aWaCm&r$C2~_=(1;WFXL-e`K zsY9ywU$G3IJEY<~cm7NL{RN#d+R9*Jq?&DwRxC476NtiePN~=Ni%#xwQeeTobpG%E zQ$zoTIcquiUN3MX&+GL={nE=kFD~XvQKjvT6OZVAz08vN@$?Rw?7Nh9&>E7Cr=$CP zexB0wmP9ixd@siJHTRNnz0ZSCkI)MU`kFf0>8DAi6j|zVPd6y<zfV8sHR|wfIey)0 zc?_SO=hOUEavy(A^X1%z<)KAV$Qqi@=q2B<KadSzp3Y33^J35sqh23#D0<NCpcjVW zts4a6C>XkN<b}7rs23!?;ix}wN20d*dPMccRWq%>d6LD8#n~8#RC=4z23Pl5ltrEr zLl+@kOf5ig2mE)Xa6&8_#f#!Pp5GD2)Lpz#mKUh=MRIZ<PjNWtvlu5OSyvX&gNqXw zPn1PQAJO`!UdyyLiLdDnd>~`b>**b=1V<mvj?Te)NyL9Uk7xJk=vNYQ%rCwEjF&%m z>Q6mKPw5XEcmD1k!TNB76^5rtEB*U4Swip5o;&ZCH(5IR-^sV@90KCsr+B*>rK{OI zEpQH&yNkz&=+s<Cu>qXppOfPSlsOEBKIkCLfb-G0FT+Du&XeLk$C}VPk**w1w0NtB zP(799qfcMb1wK$+yqKpL3VJ!Oe$Vsda2)iWoy616@#0b$eDFm@d#lB38(iy8Pe<9H zu*yN7kA?$3+z*~A<o0PRwX;la5_E7?d5dDJop13wxVOAzptp4kb3VDcdguJ@ONu46 zES&Uin$Hsl+Lq#@&WJh1zpKUYB%Iq=oH&}L1AQA<w-CcjQSrc?@ou%a$|J?~2jL(Z zh7lj&D;#|=^xVO4FkEHmT3GxchE4`tWtQc)H<^0-{U&2~HQNr=#sODr=jxtteUq!3 zACQBCIJ?Z)zy{VX#PA?($lF~PwgUVS&fdQX6Mq<o$&K3!qhT<Jy=XA@TsQJ>`u)u~ zyFLca_!KxRl8N{_$jp8=z0EaKPT?E)s@WKE83zXkE@<xMIRAvAr`eC=j7iy2A}(<@ z7<fLvS{6l3;D_0~7Y;)=3h1z!!sff$WZ)0`UN{)2BX1Uin~C6j%MOfT)awm{;ZW^^ z#WbGHpqKxifE_{<F#IPW(Loem=hQz<GsM~1HLQF1b)?PD5D(_XdHz|ch)O=#o;dRQ zt1{~6)5XzAP6mFMI_Eh=5>WjvpQrzYi*ferDhVQzkf~vElYM(}0)zj2_Pmr)l!WqK zGRnzvP8ui;g%-PZ)7N$~9-+T)$QeVuz0PU4uk+pXx1Eef=r470mW=gc-%VdvN!W5f z+YbKdCp!3HRf6@ZA3U;B$7hkDuQY{=>TnY60?H9AGGv?5ii@0>6>orh1u7&Ou>)6Y zC1+E5kW@mP#*>ey3G8}_<`kFE0O=fdA@|cgJ{y%AH2tjJq96J_O}@bSW9q-GU{!SL zhi_u&QKiVljfC`$CN1yzJzb<XX{I})=v#TuYLk}tT+QN<@*C)JTX{+2{>Ak7I9qOC zGuE9a>)5Z=f2w0*MIA1gj3~nBJ^gu*I^4EJtuVW6M>ez2?gBZHtn$k40;|5(0}qxL zD=aU(=-}VA!SrHm0okTdpj^+7`a^eLY%ff1m+gg{bXiTf$$G1aSfrV6?ZPl3J+;Cx z!o=|LvRlK*TBk-+j4_-Vn*08c4Me+H^!eJff2`hX+CFeV!+`PvL1g+3Ym6V*qx!yS z{E)ZHu2qH)S;AJxzxCy@q2a?q<_dSl!KqP2j*9a|v;g?6cjeR&z7^TQTB{8pn-n2< z2>%><y@9_UZVe$<S?Agv64IoDwMrAkTD#xU!NcV(!f#e%4l1{XgE$>>ZQLP%Xtpyy zhEN>Xz^;WD_7&`wT|<3*Q7Prkz=QAbV{9QX!E__gVb<j1?f09!{1N;ZGGn0)>|BW9 z<+C9>-<cnStVWB2ALHQ1*d&DHfj*mqA47%GuxW6MeyUX`!qczg6<5k5`Z46J?f*mv z|IYjvP2r-l$BP3(?C+w%9Q+vZ{NTq}4eJvvj!Z4GMXiW25n_H!HnY&wa`0oo8`|_; zS`tAji_Q*Xi%^3tAlnq1)Qx(P9}M@!*uvy?8C$qXmzji{tT&UCehkXB*-2`KOpG0d z5m_bL$i7>{$XY+f!0ks!%?LbArQycV0TDm$#$YEy)BK?v4YhkKrjLP+1bu-Z#qBsU zWPR9S`KYgt4J{uQa@T_+!&=@d$GjDe4B3q}-WnjVJcz>3-492GkgJZ*b{B*+>0rOo zgaz%E%nHgAC#S<yr#C)Hj6j)ItkNEZMnZAfdETQCV<t0Nk~}etg2)}f6{lI&iq8Se z*6sTP-(BUnI}aRSX9JQUTluZ00}DL9YlaP&&I}QhNuQO8@@+6V2{F8C4jlJq%!hP) z!ye?ujR1zs2;&{b8^}5htYFhZjgjY!JWoFu1ip`GLnAL;seO-@<oQF;1Wc~l`R#04 zdZc)8cN0FjTiEo;eKPtqiRYhor2$JXTpPHw5X1b!QVrPchd~&5{Q;*68Y=J>7_!M2 zH;)3)jCX5XStiD_fh!9!+`9u;{#m&)VK;07`)7$^TGpv=1y>eouxmu#23H1lQ2_A3 zec{SXZWmYPChJ-5b$$oT80T-n6Ncl}HDeidJ9w@v0j<Hc@Z1+19*%zi3Pisi6BP)8 zkP(sBkC2t!^L5HKpgWsTL6UH-Y$cPA1}ok|K;Ejw84!l>gHew8>b<5ly4Iu-QNMv= zEQ`ht7F=I68?s;zs#m}70}V(H`o{qZ0*Y69r&IN@x=5(fh=Y`5Prt5^_BkpprXK(p zP<L{gcTe*#D+poc{oj(?l`K&6{-uV;tbYJrF9HNpxPlS}qR@*tJPasizzQR1(Gs|r zxFVW1ga7GM@9>F?K9kg;euw?uAR>@oJlH!be<{Gc@|Qp((ThlzT{K=oZ$J`@AP!eQ z)oZGs=6is#N03K#YO1D+oa*Q5i;y$eb3vhs=_bO|IGh9fC<WrB029#-g6=)7U>*Rx zO;<JekwRILNG)TG+M$t*{;zK!9cynvvAgL+t+;ET9^DZfDX%p>oqYABqkr-}gS4`N zagAH?+>|Z&H{TV)%G+`Q_X*n;Xih-ap-GYDrV+3hmCD!va`Y+;ph7Xt=32eeP*%o6 z9*il-*y{^)8{tl`?5g~c@`yEO|5g9<2>HWm1Q!=3hL!95((ez45g<SI1awiz?MRd0 zCS3qg@|FkSE^0=+0|$iA7};Rj5Mm^&(@x~Y_0D|_NV7xde(3d;%(cBNMVS&SAOM6I zULPAuR0rq&0ebPl(2Km}ECB#8Hb7;c0OpL3jqeBh;WZF)RmfYrOF){i?YPAyAodAw zXZ8u9F|>kl$`Y{BK7r~a!ytr1V4e4Vy@5gpJ?@aBZrMN~tHz3C5g~@{LL0KvgMk7% zV^is4CA^{09t;%PmUJ*si1DbjKs=U#qC9(*D*I3ig&QJRFzgRBMkj!v{{j{YHlpu~ zg~GJ?uaTm3lSsLMJDUvFTPSuPA}J;|J1i8kO4bTmEHFGpZ3tK^4KGk>Rb+O);sz4u z2nXsJZlEnhWGJ%(zqvIjp?0t72HJjzq^ue{>=yM^v!S4Muv=JdxA+M{Bze;y(!mC_ zL)pU68Y^Rm7+?1!lR?Ps$YhWv9hnT$WPK(BBLXY`)egJ}LZB6C3_=WZoR(mXo$+XQ z82VK7r^hLwrJq}}c6bq#*Gah!h6B%IPgHqBEP>7I6fMw;ylBX_vlS@-6)1)%L*VgR z+O8C^ow!Woamb5WGbSP`$_p$;lnvJRACfa6tHO$$2_c4;=+7V!U{6t`f)R0Xz%u6L zX-TN1EIK<9AcPuh0fV~-Js)ReINT3c#z2$X@6fQNi7=y897J(txI1%Y2#q}(Tp3JE zC?<*37=T@dS`Izm9r%MDQ@6rh*LyN{p7_r~Pb){=Ak<P8jcY@;Lu1iw$WITRjDshm zcXSA~%s5Qa2&*jp6vj1f^;DsjeDvxp>IXYA`okWomU#iIJAVO3hLjQ97Ym75^|0Mb zAwBA{knmeN@=WC|>yuuz(Q5}b6ql0vOZu!}s63uOrl7h$Heb~DNxaZWYPaESe=rKY zu^aY-@of-CsKh=RjlG^1`!{3M%_>yMUEZz_EOLCNYNB2ypAkczj5$gh^$@kp^(sTO z7b-aE9BM9;IQb}-spPN@Ja5T`<^uO0U!?^e3_KWP5H&FjOP$4>IXg@X+nG5CvOzeE z{4%}pac1sAs_LNYR1@unx=d~p6gnIw@6)eIwm?m3s`iY@?CJaJfj5ZH&&!g_<s+BL zBF~mpp>|Z7RF<N?Sc*_OD@mp(iaokFzo{<#k&cV|i}|}m=b-4Xy}$pqpt5P21|8u0 z2F0y!03D-WcKZJ8r8DfSW8*Zrjgfbu6CP?ezD?svI%;-FmXYWA)d3*-IW5Y`$4ATj zUsK*$j-j@l-?BmUi0F#c=7^re6C_a>Ne^PG%i?K*bc-U!3|Et?1_o1oYn0XoB2JQi zP8KRjq1??E*yQtcoLr%voKcodF1Njio4#6(J|%@tCPCraF{PUcitO=ttkR3(40Srk z$($-|PO<vlWHDK_)J*VeR5aq*Y2)g}98bwLoh^c1&a#+_?pD)moby%$4mM`{@onX- zg=+V>)<sXaf;Fvo!=GIin_V$+bBWoAohqeGyrz5`Z>pKRjq3tK*)+OKnXRUg-UXV$ zpce-E!!3!Hyv7Ziy4CTEHH(00Lsw@eI#U_uqNpGFVbAaHhha|0RRO2%LZviOmYnV; zY5`6@wuB*<;G9pGzf(U=q#FYpY<EJ8#BHzI?rPiradV{Cf^&8h8QWF@4>Qm24}=MZ zdW2rMYtX`QHtA3sk!V)-Exs-LmV{H86D!K>3NgGuHnh_n0%5EUgkdgdiPuY(+|Y`c z7NG_kKsG71D7)mnJz=h91i>24$xXWWFE?Q!Ym`rB`4si-4V6L0r6W^FnkW&jl|^%8 zjH8PtJ5-&-sj5mS!F~q;GeWm-1>2VOr{(d-R{~&EfLesV0hPk6a*YxoUSc-dt@ztS ze_{M|L-O7NE0-V?sma`A=k52`#I}aa^BN#0!q2@ner|q1jtj-pdBOr4Oog(Pd5SjV z>4#cl;XniU%;LLrs)1N4pcPSVm0ff}<&9wb_&tGT6ZP${?}0>epJ(HjPDrMTe=aAp z>-?-pCfXp8CG**JIw51nk=_;n`<NF}IY-%71bPEDm<6meIEYVR<$A>WTdO2&xkeKi z&)SQ8J$YZ-$#{hRz9B4Yn)vIS7~OTgo4IW#;}QD%SF1H9XRQ^b7KE4|JotB3Ypfw# zR6-$y5+xTNN{xM#A<)wE&7suT`(<~jG1(MWBzOxkKej_HG`GM8MmT8C9e9`yVaApj zTtxS`!{AcswxU5fzYI|h#p@#rV?PWoLT-mOMVfSYGo*=K-i$ivtI%kLH$#YF#eKJC zk@emTxFZAL7KePuZ`TB(4K>;>)HHvr-fNmZw(rf5IkCc<A;j<k+0gP~A$wiHO$BIh z{B0C33LV)X0`kT5WSM0OIg|n>?tVs$b-S3WEIB*88A1&<fWcfjMIzc0=4xhiw0koo z@>rRwyPNQ8X$ckBJ&;D3yJCaSL5LA)WT&A5jld&`8E1~V>U1#EzG`^tI#5hW3a^(i zyB<%0qQ7{TDz{dJh;BwdF;`6qHoI)Gas0scfiz_C_iXSrG*-=l<Nk~s_a^|-kWJ%S zp#vMc#$eNkjYc&4zLeV*2UtfAh&1U47my~R(&=nmeQN8Nn)jvm&H3BKj3UY7Y-fqN zLar5+w}lu^&1g}FcbS-5F92!;`AVLulFW?j0)EM>r3@l=JpgEgD8i?>zwtl=K5JDf zFcX<-Qo$C2fXzq%a%?tr@%H;oeOzJ-hk=ANtcgZIRD#y|&FDh&8*+|NG=eM)E1Xh7 z46o8nB?Q-v0;B`GA&^Ema|w~(VR-8X!8i(rZj6E~w>>1uB)#FNKX6BzWiB0OS^nkf zONxAyi`!dr*SC$V70!e$jckBn1V9Z{p?}PQeIFyEV|pj9eqDEl4tm->TxCXnUgxO3 zAwOQ_MUivh1Of;sH{lrNVx|)no2FUC)hr$vxhJa8n|wY>UVoj%)3Hh<5*tbLrlc2X z7o)mMA!_qH<Hz(T%p3AZwK!<g>4M1nV!}4-H?L8lxk;A^o12KzxC*AR^HQNQFLqe4 zWs%qr*tgb#Ev0Z*4cK}s{E#|rGOZtFoXis&JaYr=3|S<0Sh4GiWK)hg=!X$On<0hw zG0$~mY9{kE&Wtc&o|Zoc*ZvDzu}P;cQ+a!hKevtFBFgZ<S`x@Fo5m8;ceQIoVsm~0 z*!BRxd||XF_*Fvhu*0%lw&B&lrfq#RYn}Ntog-~msmji8lsv7Xr=B*d-t9%z_z!!} z6dfe}J$(kXj9A1VQMD7bC51ZD!=-Q!SSoB5GDJPXupjl6)T{~sMn1GnQck3hpe|cS zMG`5pUcK>>JaYIUGHYHab2Q;5s{1E-{wYm#7PK@%@^k*BtXiOVzF;7j$@MSj6EwId z%LT;c)>~Hv()jO+drc2DewD@qzi`wG`DvYuEte^YlA8S^iRbSrPn_Cn<yq6Zdg!0d z<1g>xEZ6coQgX9+j>k%Eo)>LPemWeN5aBlie;^{&0-NYSY#>9Z5j~zKu^vw{<#U#U zmc3pfGIx|vX~EhYDW-LuOlC-yFP21lKOE@k`LIY<@A6!#X}XNZ>9T~gpuF|`3(s(= zDL_4!<v4VosVWt>sFi8Q#%M7i^^O84hwdPP7=eZS0`rg12GmN#ZzPNKj=;$L$nB#{ zC+h3=j-o*rAd<(BZzUzybf=&-J#4g6AQHL>Pg83$%37IK)>WPtocXW!+<I9xWaEpE ze>E{RzM%``?1?sqC1n)!X;<gUHXZt0*=D^$w|lo~Nu(7jT}h3Yux)ajO4X2cj?<dW zwPqsK=i2(+qc=~vb?5-L-EmsZloeWDNzEZxsYrg>V5OhHby_Y|JM_GgoLY>N+Y5pK zRkyv~egrv{^mZzG+$ZHaS;y454WIBWaZVzCIa+XkS}oA?l)%eGx;6wll|yfepO<+d z8J=a#4>Px2fugJrBmOhV_VIZ$Ig3aea6=x%h6z@Zs9W8Z5~eKTHn}XzN%3rmYAUJW z-qj2SlaH?fO_tB!0rQN|$SQ?zG*4$HT*4uc_yCLY;JU`;n)9s)Q7Xy77Lbif+mwr$ zg!{r~&EhNTSSYtqI`5yfQ5iq2uqGv&B~u#ekH&W}w<(|WhiMVtArxO-KO5x~SbCdg ziGnQDCXj!`pU;69P&4IH6n{F>XHD&#Ia?gVxciwbi83|JW~H-suvu9uhLy)YHrvQK zHj;I;1@Xr<VCEss03pQ%YxkPLK?AO;^8%qSdJKP@%krEI?BKHX6>{LRKV$GPFL6tJ zmL&s=Ea9@%7N~LA;m~!5!QNP(hnn7wd{_*;ZqsRf<~HlC&n1`DusOTovfNoqxGXOf ztGTSZUYXrOEUqY&h7mf37QZHYr^#l0SCm<gLCYF!mK{akq07oLwuH;pR>*<N9=I$b zX9*i!+mYU+S$3Wj_c_qYw9HFajwkSs6Ue{PTIkA2_8q#c9QL+w*>VdQToxSG8{%Zz zm)Ibtcc>()HF~PF;arI}5KmXyh?9ObXt(6DPpHe55fWOL6(X%DfhR*I0YpkEv`?4q zz|r28GRteGRhg~bYjW8>g;^+*al{%ygUf!u$yk<%6$S5_OXR?24{Y|)*{tjU&ki=r z<j^T;uvx^51tG9h_oV!pEA)1;P-)YV{93+8(la~Q?Cz9V>4+6|;>#fu$z-RYRBJ;G zy&jS(Jmj~oVqEWBnGLua#fwr~ZLrzzR%T^|SW!!@xk3(H_P}Kyoy*D&kTP&Ob{z_| zQjMRw9GtlYOfCyUG9}6H4VPtlJGm^kS<gYGRJ*@3M2HHVzzTD)U?r^Qpu5C`aQk5p zMjooRX>0WgWP_x%v%k~u#%`f{#Hz>jyly7$^u}^fRjVU*gN)O1-B`j`<@nJ3+mNpw z>a|nk$2_KtB4po*^;BgIl{s8G#p=(KW67Ig6!$hBK=N6?M^(|0*-JS$<u8?qR{oMq zG<p%&1h2iMs;jQvQvFn~seYR8K?%+HCQHVfz6jXRJr@)z4<8YxUUZHUt?4XF#VAcT z-k|E|=@Lm;Y9Ntkq`0jv<f;HJ1xdmfBYn3SUSsrseFN!Odkac#NGFOGF1+5D&axc4 zo?XyNUo}W88yMHP)l=1LFHc|PrhRC^b|Bdf0zuzFiQ0L-1UN@MfGMB;9%sw#NAYX+ z{;U2+RnB<sP~G2eucs)<k{o?Fd+q=be}N_PclQWsj7L4GX#pHmO5gkYG+7q&ID782 z;l$G%oh>e~QA_Kyiy$|@H|Y62aH%~Baua&H-0#w+%l$5G*1O;TxQ~l}TR6pix^QkV z<IbX3-roL)+L}+|i!bL%dkKVMJ2Jt98Y?ov)|xL+=-rLnLC;f5p_cTug~0Odz<c<V zNv*sE0So^PGlmxoRfC8FG9LnqRqks$^1m9ZWkZo`(2IbB<%Pik<)h*XN0dcQa?0Cz zJiAXvzcx{^+j)uN$Ic2zaURS|-T*i1G%jKhP3X75D*<2D^JJbH5FfpyaiNC!p#&nl zjCKK}N&+Y-FBRW1T%&wVy7Vep6mL>|RW6*TQ+|qDK<UvJLP`2>z-iHI)TLM7-X{4Z zDdyOT^191(bbp<E<;VbPT9xUclJB>GPpeu>wVKsCzkz?3s9pNp(XYL}Pc&-*Zb0mS z&lI?TplPar=1@(wWR9UB1~gI#=L=_nL2-)QiAQjEPx3JUY3L!<-7ohke&PR<#gX&3 zv%(qY$zu9%cvJjYJ#?eL_V41c@I23u04zy)GmZ+w<m3Cja2O&ucwfX6rnf83Ui#E2 z%J6#>n_UwJA@5-meOp@GJo%jF%f+iD;N_;yZox%el>=20ZAILeP{X#E4f&G`Tom~K z{0RK|F=42XL6P2RWl_$#e2jCE>_&7-T_qVHaW1AGR+Ja>?rHvIB|F2suTcx@%8z-U zaSZDX4km%4%9yZfTR4~mc4!iiP0lI{>W5_M=#$7VKVExOpRT{^f7H8^al7!fB6g{b z>pV>O60TS~My&v8b!CKq>=-?yl3JZg`ZK^h$U+_15lkfHVBhfWW|NOdkyiNI3@S+u zXbBA6slROy0=NtR<HKjg-?qM5`xfwjwqpt+i~+U<`D-Fa`?`VuKwA*$cm2K_c!59I z7u8AAD-igtVcp!PK)HU`sYU#rt`Kq=n@&qHk6+zVtk;Y_sL$hc>YT(A!03UI*Yct1 zmT~8CGNL18$QLr79WTde{+p_!zO%p$8CYJXhC(IcivmlLX2WN%5?CpqqwXrwL?~HH z@KD)GWKG#muh*;gJ|boGBHU3J&-%f2oEA({M%~PS#K~X)`U=7Ekxy<~cgZ5+Hi|r- ziY34rcU1jU`d9T+e7nH-1PW!G!IU=sJx#v6&*#M@6lSdntf9wo2rEa)>7|A6OFFIq zM(+~>pVe;gDJXYFSvqrOf+R}1`EBDW;uh(Rw`r1%o&47M3}S%6N!LKqeSW7cy8653 z6=eo|>FA7=(_}_eC{R>_MEyZ%Q62FGFo*ZC@mgJak*t;qCv-*WkLPzu0lzZ(%fmy* zAYFX@jV%+fo}OMxn1Cuhaej4tEEiM-10a;<m)E+#fX*F_vL*RDxlhvc3JG0Fj=BXf z!QLeRHpLBn9P2w*$t<pX={?UAp^C6~cqs<n&hbbao1#UW;xHTy+4&%7CcudT-V*__ zMuzP6(MI)PD}o<VXiiRi8hsMd08#Dji!8$QcA=6<pSYG!yS&2hVcE3BL`!8jVD-n= zugMQjhNmLE@a<4FWSto6cxO3im=mKClZ&9#s6TYsB43__UJpS^t`DCI(QH02?1w&( z{9Il{<r7iVkNgm*?ac=y)rEKQiY5cT;YP!O&xR}`a_~EMCM~umlIeCd8A&v6*J1{o zAm@KirKj@n2<&hf)R(9s;nJw?C2Sh_4M|YX9SBa~B#@V2uhu*8P=R^Ij%OWTn9M&X z$BP+BjY=v+3?HS9KYDz=9MhpChO2557+fBp=zX7H)c1tTGrgUKD5Oo7H9`8#!A3QN zGi@nQ?trUr3;5`F!0EN;wWQLDV^pYN>&k}5sM{M1{Lt+YG(US@!`uE~6nbNXfCb~* zAdZH9e>56<Jumie#z6EhRLu(xxzf|4=0qReCt18$oQ<)eQ|M;^kWlxk_>beSDZntR z-|Du6fasg@OWnF!-b~U$`-WaR`j@(K5<`Q@<c9vGZk$bL%YxAF^63K3sjCEmA%Lx5 zRp&C9C2?_@XnpHQtAa|2I?u<b{w%P0We{O)@=>GYJfG&fHo9zQ@?Z4b;SdQyy+@w> zH|cy)Xx}<A(HddFlaGsJI<7qPYNum`=x`rY3c0(!p9A&~K|Q3n^Jz&MDG!1L6*3yr zu@#LJ(!`@zzxYnT2a{7p9^y5Ea9=XXYS2<^?B3Ew>6(AihEG2W^-<}C9m(24&H7Zc z@3+-#yfeTZO!YDxAjr7~_SRG*1ty-IB&FV2!qYVs&!Gz+8Q#^r4(y;o;0^o%GwD@@ z6!`;)%*80Nwop~3u|^|x`~9O3P))kF&o=c^SsZp`w+S`8R5ui;tct<FPC4kMa|HIT z3LUmUjmoOCByU{E!6q=ceF($|l+PaS3kaH`H-wW&pX{xcWogruTP|&cdv&0*Xi@4( z(wiE9-a@1uAZUsjS}K~MSt<&5ptEc%hn&~U_k*CJ&^m{*h>@2vF`%#_WkkW1em@AB zED<|E&>BnRXJE82`hwBo@6rIw(|<7k+F|~c9bgFvnz02;HVZ=>YBVBq>n&oUG-k{r z2cEP9ZD@<wNj{n7Q&{ncfHlf+$n<svfpHs8?T7C7c&uBrDAg1{p=^6QVX)FoD?Ge1 z=n_?DC;XW^@P~a5F$<5P*ed?WtEItUaRwufrpA1mD5Gp~&;m+>x7O}GC|_6>xE+S! z#_HIRx7w613{Z~}tVD&WRX<gjTJ^IEQ~RrM-KR<=Cgp~l^Yp!|2d5H~1&f|4bBP1F zV&oFbt9O@6{15OJ=ZqYS%!+k(uk34z0G)o07dr-YGd8v<F)&KQzEs+(p-QZi2Dnd( z!Tm`aHn_Gc`1~FY_GytS-lfxGf%tQp-W^C6+Oa4@Vn-sHP{YwH8}bi;Xt;>=@(J?n zG4pxP?xy)Xxl9nxx=6;1<52nzUuCF8fOuRjNS75D<ubuP{7K|8kP^}Y4+h>a7@`dJ zu=GFH=gy8wSzDSr!0QF!F!D*KU8Zol-oir>hPQ4Ij9~<H<H!qdduWvOhNJ$#9c>m7 z@F7+4wQ#zZ@j;i#EdrF`)qkIUO)~P`6OI#k?zJ;SJ@6(Tp{}O*hs#GUlSQ5_H4Yfn zbcq<_wqF`iM)M?@p2x-L-u$Mz@CU`CU(DZeB)b0E`}=Q;bQEWr25lC46KB~Cg6Xf+ z%TC{)y>y0sb#$C2w=vM9G%{H2#<yuaNk`2tRm{eRD_f>c3Qj$;)(3>HO2MrB@g*5; zyT3(K)MKI<qdBIWGEu#lMfLX-(~ns9f+9DnX;njm$-Xs$!jM*wpnBn=9t}VUA#+qz zy+TaCs+y>0N-np(h?~Azjy@$tmA*h?zXYHik5Q@>!6I>Xbq_qbIn^1TV*ODHg|y+< zC?=vxGO9`Es~2-TB`tOEz7f%1N);5dAQL^bLzfis;i-(ZtX`R+4JY?$HpZ^kc81E= z8o}e}`(d~e6)ZR>iuV%)AYfcD`sI_n*o@%bZJBi2HO`vKsI}3pXq=+tn&KXNtoJ1g zpy6R}7t^>;U0DF~p7mJ(Wic8?3EDwnRUy)jL;#_N?Jt)4VLD2_>7!lI{g7Olwut;y zQ&0oT_W@?27w(#ZZyR`Fc%|DBhTm8q8%p|Cg*zO)Ff+S@9c0Z}5`-`0;EXhxYy@qm zKR{TiAtWnt@6k~FTV(6+@WL>?EGV@zS#Hx6+8A=1j?l*YWb|ng&p++JSfX(~gho4p z8-*HXBewEbxD<mBp!zH@8-no`c<gqv-fA**!zHr`ZobTn9g&4X4X={}tNj`4(Ga>* zX)<fTwDxWr7sO=78l^44h_X;E2}Trhux||hEagG=#pfaPa^7<*f0i~~J`ZWb$9RiB zgJ3@H6wJrY7_<=Cx5B<9)UZ8sw+tF{Vq_mk#RTRFD^{$s^b0HS+vVCnrWw1MU6*JX zTVU8SQ+9Y#gqk)x_@1VyA9UlUZu~RAG0H*}ztN6^6oee?8<Sykj?=y<)U}+fH310H zrjx02zq>5k@}4fmT-tOf=2utmoWFfZi+j{siRXorPH*!ktaexCN^31$2)08@7iz4~ z((6J%)BL?61+0hO)L!QwGLLUZb!TB9<S?6tEFe~LPu%biim8+-vqOCsYJN<8cL7mK ze<Z4+e-kGDFb<O&w--jkU=VxJVC=bW<lg`+aige;RK>%bO%Wmi=Q+i+aWITJ70z%d z=zy1WI!?Z7rIY++4$cc)K%9&E@z3Q1`1fQRa-4BlT+LNb2{RN#5Xgnn<64KWo+6%Z zwF$=q>rB{LjLKYGw5@!Llyy|c++rHfW^nQUo@Dt5wY*FW0HTa&yw0hIn$j$p&#u!6 z`Sg#pyBFo(=EZsbIhi1cU4;?oz5|Aaih%)1WLlgcoP%q$k^e~l)HRXlH;s_Sx2V?> zJ9_;UPZPl2;)vnL5D=1Q*%hd+kS%^)B|!?09WNHi<R<&};shZF^I27(OqC}?fwG4o znk%B0b9m1S8VU+rxJ!1^*OOK<9-+T)2*#3nd!5s8U+25&Z#x-}&|m80EE(&?zMH<T zlCb4|im<4V`Q^B^!%ZsG{NUm5BYH6G_X8x+KW0!JpGHPBOjE?DjwcDB6SN%(V3ISl z;tx=H0qRqvbP&@4t79zArU|03DCi#N@#NzvBDQb}t5f|F)s<93U%RpRbfhyAj7hyk zKSU_9GX!%P1hYxBqEkP76Su_p2<aV7THf<}x=3%*Om{}nzVe>cCN1wND^qDV%F0U` z_b(o){-y3b;qd-i{iix8wp$0Yb(4lxz#(mClUf+d06~C~Tn><ei3+;ZVT!hROJvpc z?Z^-ja=@u%t0LgE53iK(djK-uk7x#=w=0@K+H@LCxZfQ{lbuI1NIxvGlgLVWs$gK4 zq$yQX1p~8qRR#mEElfM~0FdbqdW<izUAM?~EFw6rNla?ZFWn@VL6(Un){y!#IRrBt zf*BYQ)Usd(**2C0GYC0#_FS69_Jlpx()!o<Mx>28)BmK6S~J~k1_C9tioQgtyV}%f zMQK)<%%K%Zkx;`x5gQ)VhtjNM2%g8vbdjU(t2SJm<XJvv)3KDrQP*I}pyWiDdDP!^ zJRq`@7<D|22YN?!kc0A<!Z;{@3B&=t=si$zk@Z@8NmW8sK_yf_)oZGs=6jH;Mpe)^ ze$k;ct1+d@X;RM3^*p`1qvSN6E50iuUfz}q${2-OJ}{$=3YrvIZaS%u6PyiWSqZbk zy!WRl%_{uE4n&ph9HSQ6mT*SZPp8SpzY1=O&eAsb5rTI^G0it(bsrYItJwnW^IcWA zkZofLV2QDB*c_#ULxfB_j2;G+#8X=$M0Z-6RZw481pbcr5WOC4hz|)+Ul8_?7XSrm zHHo<2UzwGPr%=UOe_ymFv%>B=ZHL=*MU+XuC7yXzBiboYo{$$<5&SLGhy~bEpgbuK z&1%|q4VtDUa@Rn4G9Pxh422qA9UE%L2cSF(68nzGDFR(0#fDXxU#UVV!la5s$1aWA z{nkovavXTrDd_6&?vV<U`i>x}15h5|b+Q~qa&=hW<fB9@5Oz-e&Tr{7DMJ^u7(rY` zDX~;&deH)wC%efKSE!JK&26|s1yN>ST%kg5mn&4-bh$#MjWEJhso@VG=p@cKcL1g1 zq!c#lED(0~AIcu_B#^s}2y!9W4kbaTVJBsalE5xMjcfFvg2Q-X%jKOaY$+{fZ&#Ao zj%)OV7r|Vp{k|?IGBzT{{ekui_j$A*6fiC`WQU7XsNo*`1hT~%d-h+)V)R4;geP#g zKZvv&Qrsm8W(Lx(aQ@vP?NZdX<}6O3dCdrs>&e{7Zx!cRs33Z0j!?!UVcZ&wS9X*o zzFZ*(8{CjDq}bPBPplF`Z&%Vew~4y^wDO+ye%cb9O@{+NiA2$;k|RV$R@f$l8p-9i z)HWg2pjLCx>6~J7>2A>3`dkV9g{#-*<YPmQkjyjutK}h6kkArHwR=_KflP`W?t7tz zm&k@f#KG^>n!vRqGsKGDiI=7=5zV~jqMjWQ&Bhim*(?ec_X8wN?hBh`db<q!LvGW_ zin)#Oj8!$hWV39w*#QWubi@w)7okS{C3dpef!mKfEa_D)s}qZU$cfkC0jR|(cL5h~ z5d&3b#15Pnp@!GTfye%gvCOvdSUKt~;jv5(wt&fF`=Rgle0N`f#)nL=GI6hQuuB`Y z+5e=CGN(ho>EN*%W#CCv*@kgkI${UVxKP8~%U0vKPd=ex7_k$?Fphh>R%LxxTg2D0 zSuP0s9hxj}2Rl;e8!P0%We;3dnSCX=`AwQ-=Sgv&qt=kNE76tX34lJR_>bD2bmb&N zJ*O|}qKt~Bix&v7P7#)GoRJ>VUS-W$f;2AV;E=4iY*~al*bhy%q_=~EmTi=l+RkOm zHXRyq*@nZSS~xLdU8v>pBy6~DQ7$PAZLlbp)QIG=Q&kspVnCgGy<y-70jh|RA=bPB zu&XE>1TIG}lu%HvhxTDO7$~8_c*2!B&g_pUp9mvVXY>2KT2|s@{ayelwcdb7$Kd{3 zP_eh;8i#;l>go+^cEmD(-)7A=36SH3EZXIwu%fnLNexfJ&mafDghGi{MkWQq8#w$T z{x$+=j?UZ>HirD1M!?(lK*<g^?KVlETy+C0^zD)yY=YLU8rhILYEnslzD>7kfWncz z$fJ|(F;TDH$Ee^py_2o<TXGAzQNkTA)4O})=XG9U8=|^rUKBYa2qK7;D$yAM6IvFn zLLs>drE2yjpO2E)UuW@jtcpj<25;V!l9F1ARd-2l0azeErumO~Lmnw5T9;1pzT5W) zzPl%}izU6xz}rCY%Qoxd60h^SyDZtAgvWz!MHFH=T<fC{cbTdbxPxJU3PNlKT9Lp6 z-Sbf-FjH`9q&Ym;$-!pghTOFQUQ0PqRs<uK)cja5q6f6}e&0vw-^V@5{}F#q?=&(j zwmtD4U09Z^t@P^(7=xqYV)_B6cq#m=sWb1M=3ihESbtx0i1qiGXVe=UU;vIP0D)CJ zfddS{?qC4q@Kv0&P)xH4S#dXyXZPvI*cHPlh}?nKW1aae3dgK$s{D~KD>Y;PRsYkT z^RtreqfP+l;lRjeiwgzUA!0U3QBmN#zUS?Y6vgy*N>SWKG1hekH*T|D(keqov^V5Q z>}jQds}jS@$+1M*lBJ@x`TcWiX^rE@V@FtSXcen!_nJkoT{dXF0PwvY#D;A3-4UAQ z60t<GsxOgEmE=J`j3}V(k)ff_kz_ef<ILayJS_%-&|f~!!}18tatGLv2vL%QgTQ37 z!(P-UbzxupT1;;z3*|PQJ}Yj+7T`9Y)vhsT;fv98V+BS-NsS05JM~(v#hmR&y>Qs` zb?p-5yybauF&`7Imo?s_nwg`)XE(B8$Wpe$9L?15GC6SCpD}{uCn%s>o@aL8Ae7`_ z-_+Q%cE|5c*hxKnpxu|iZ92nFxQ$}r-NBtZOQ67%ajb+LQ6)?bTkS2?f=hR$xZbzQ zpe0w349wrJ1#8BPQn_2xfn^n2!kPIj(Hj1NGyja7nU}65S&HQmX-h;$bw(OY7Sc>G z9C+TIfB}$yPtn_vfhcV>j^i3rv%Kd4U;s~;LD2}^6e6tv1CU|$B(c*@C3t<7;<gef z_?T(sv9)_mOEcm=6_egt0!29`RzLxi)bIj1Fxdl>ee47ZS#!P}Pyj*>oslM!<@oV^ zF*G;g-CH$TY13tBmNx4R&AagDHkqsh_gkUK%8=P@Y3|Tucka(c33ukQThnD_QmlXk lrqb&w8|7eSF5!43r25B8rXR8sTC)>m%~@hF7ILr!{y#sc$lU+{ literal 87632 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 diff --git a/Examples/HSS-VSS-ScrollSnap/GameObject (1).prefab.meta b/Examples/HSS-VSS-ScrollSnap/GameObject (1).prefab.meta index a95f1d9..2756d32 100644 --- a/Examples/HSS-VSS-ScrollSnap/GameObject (1).prefab.meta +++ b/Examples/HSS-VSS-ScrollSnap/GameObject (1).prefab.meta @@ -1,8 +1,10 @@ fileFormatVersion: 2 -guid: cff6ddbad6d91384d9e5cc079064bcff +guid: 3f5a96e079cd90b4dafe71a3b4c621dc timeCreated: 1481827080 licenseType: Pro NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Examples/HSS-VSS-ScrollSnap/Horizontal_page_prefab.prefab.meta b/Examples/HSS-VSS-ScrollSnap/Horizontal_page_prefab.prefab.meta index 10eb332..1b9e105 100644 --- a/Examples/HSS-VSS-ScrollSnap/Horizontal_page_prefab.prefab.meta +++ b/Examples/HSS-VSS-ScrollSnap/Horizontal_page_prefab.prefab.meta @@ -1,8 +1,10 @@ fileFormatVersion: 2 -guid: f0537c94867b99f4b975a024066f29a0 +guid: 4c340036cb65e2b4a89e357053280e45 timeCreated: 1463936976 licenseType: Pro NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Examples/HSS-VSS-ScrollSnap/Image.prefab.meta b/Examples/HSS-VSS-ScrollSnap/Image.prefab.meta index 4494055..34e1d71 100644 --- a/Examples/HSS-VSS-ScrollSnap/Image.prefab.meta +++ b/Examples/HSS-VSS-ScrollSnap/Image.prefab.meta @@ -1,8 +1,10 @@ fileFormatVersion: 2 -guid: 9dff33128ff490641b8e89a0ca210447 +guid: 4ae94fc31c10f4f49b78c938bbd7face timeCreated: 1481827060 licenseType: Pro NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Examples/HSS-VSS-ScrollSnap/ScrollSnapManagedTests.unity.meta b/Examples/HSS-VSS-ScrollSnap/ScrollSnapManagedTests.unity.meta index f77f213..3ad4c48 100644 --- a/Examples/HSS-VSS-ScrollSnap/ScrollSnapManagedTests.unity.meta +++ b/Examples/HSS-VSS-ScrollSnap/ScrollSnapManagedTests.unity.meta @@ -1,8 +1,9 @@ fileFormatVersion: 2 -guid: 76a920c191abd8a4f9351c7f17c2cdef +guid: 5aaf226e59aa138419f7074ee5d33120 timeCreated: 1481843068 licenseType: Pro DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Examples/HSS-VSS-ScrollSnap/UpdateScrollSnap.cs.meta b/Examples/HSS-VSS-ScrollSnap/UpdateScrollSnap.cs.meta index 1a1ce36..071ad99 100644 --- a/Examples/HSS-VSS-ScrollSnap/UpdateScrollSnap.cs.meta +++ b/Examples/HSS-VSS-ScrollSnap/UpdateScrollSnap.cs.meta @@ -1,8 +1,9 @@ fileFormatVersion: 2 -guid: ea8b6678b91baa44eb4de7f20e6684a3 +guid: 654cac5c926088642ba0e944c553a863 timeCreated: 1463936517 licenseType: Pro MonoImporter: + externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 diff --git a/Examples/HSS-VSS-ScrollSnap/Vertical_Page_Prefab.prefab.meta b/Examples/HSS-VSS-ScrollSnap/Vertical_Page_Prefab.prefab.meta index 2ea1bfc..ff37dea 100644 --- a/Examples/HSS-VSS-ScrollSnap/Vertical_Page_Prefab.prefab.meta +++ b/Examples/HSS-VSS-ScrollSnap/Vertical_Page_Prefab.prefab.meta @@ -1,8 +1,10 @@ fileFormatVersion: 2 -guid: 54c712c6efbe07d459d10a305f17b746 +guid: 632d4c446183fe24284e3db3e6906c36 timeCreated: 1463946266 licenseType: Pro NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Examples/ScrollRectConflictManager/ScrollrectConflictManagerDemo.unity.meta b/Examples/ScrollRectConflictManager/ScrollrectConflictManagerDemo.unity.meta index ea6b14a..63e69c3 100644 --- a/Examples/ScrollRectConflictManager/ScrollrectConflictManagerDemo.unity.meta +++ b/Examples/ScrollRectConflictManager/ScrollrectConflictManagerDemo.unity.meta @@ -1,8 +1,9 @@ fileFormatVersion: 2 -guid: 73d92df095c9b454eaa4b74bc3c559c2 +guid: c40f9d3dfb6a6454480bf85afc7f3da7 timeCreated: 1464634768 licenseType: Pro DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Examples/TextEffects/swirl.png.meta b/Examples/TextEffects/swirl.png.meta index 239b07a..e7d3a5e 100644 --- a/Examples/TextEffects/swirl.png.meta +++ b/Examples/TextEffects/swirl.png.meta @@ -1,17 +1,20 @@ fileFormatVersion: 2 -guid: 73f1719d5b8f9a1499c5a719ab10e675 +guid: f998567fad16b0d4bbddb4821ced21c5 timeCreated: 1447964200 licenseType: Store TextureImporter: fileIDToRecycleName: {} - serializedVersion: 2 + externalObjects: {} + serializedVersion: 4 mipmaps: mipMapMode: 0 enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -21,23 +24,22 @@ TextureImporter: normalMapFilter: 0 isReadable: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 4 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: -1 aniso: 0 mipBias: -1 - wrapMode: 1 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 1 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 0 spriteExtrude: 1 spriteMeshType: 1 @@ -45,12 +47,29 @@ TextureImporter: spritePivot: {x: 0.5, y: 0.5} spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + alphaUsage: 1 alphaIsTransparency: 1 - textureType: 5 - buildTargetSettings: [] + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 spriteSheet: + serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] spritePackingTag: userData: assetBundleName: diff --git a/Examples/UILineRenderer/TestAddingPoints.cs b/Examples/UILineRenderer/TestAddingPoints.cs index 7bcbb6c..15e4c8e 100644 --- a/Examples/UILineRenderer/TestAddingPoints.cs +++ b/Examples/UILineRenderer/TestAddingPoints.cs @@ -20,6 +20,7 @@ namespace UnityEngine.UI.Extensions.Examples public void ClearPoints() { LineRenderer.Points = new Vector2[0]; + LineRenderer.SetAllDirty(); } } } \ No newline at end of file diff --git a/Examples/UILineRenderer/TestAddingPoints.cs.meta b/Examples/UILineRenderer/TestAddingPoints.cs.meta index 46daded..326b247 100644 --- a/Examples/UILineRenderer/TestAddingPoints.cs.meta +++ b/Examples/UILineRenderer/TestAddingPoints.cs.meta @@ -1,8 +1,9 @@ fileFormatVersion: 2 -guid: 6f7b10baa6c50634a979160a8c4f142c +guid: a9ab7a977fd7a3243b4b43f7b09a8c5a timeCreated: 1463340207 licenseType: Pro MonoImporter: + externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 diff --git a/Examples/UILineRenderer/UILineRendererDemo.unity b/Examples/UILineRenderer/UILineRendererDemo.unity index a881512..a2c9779 100644 --- a/Examples/UILineRenderer/UILineRendererDemo.unity +++ b/Examples/UILineRenderer/UILineRendererDemo.unity @@ -38,11 +38,11 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657868, g: 0.49641263, b: 0.57481706, a: 1} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 11 m_GIWorkflowMode: 0 m_GISettings: serializedVersion: 2 @@ -54,7 +54,7 @@ LightmapSettings: m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 8 + serializedVersion: 9 m_Resolution: 2 m_BakeResolution: 40 m_TextureWidth: 1024 @@ -77,17 +77,20 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 - m_PVRFiltering: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 m_PVRFilteringMode: 1 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousColorSigma: 1 - m_PVRFilteringAtrousNormalSigma: 1 - m_PVRFilteringAtrousPositionSigma: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 m_LightingDataAsset: {fileID: 0} - m_ShadowMaskMode: 2 + m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -107,6 +110,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + debug: + m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1 &23818490 GameObject: @@ -925,11 +930,15 @@ MonoBehaviour: m_improveResolution: 0 m_Resolution: 0 m_useNativeSize: 0 - m_fillPercent: 100 - FixedToSegments: 0 - m_fill: 1 - m_thickness: 5 - m_segments: 360 + ArcInvert: 1 + Arc: 1 + ArcSteps: 100 + ArcRotation: 0 + Progress: 0 + ProgressColor: {r: 255, g: 255, b: 255, a: 255} + Fill: 1 + Thickness: 5 + Padding: 0 --- !u!222 &739101452 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2009,7 +2018,6 @@ GameObject: m_Component: - component: {fileID: 1558803276} - component: {fileID: 1558803275} - - component: {fileID: 1558803274} - component: {fileID: 1558803273} - component: {fileID: 1558803272} m_Layer: 0 @@ -2027,13 +2035,6 @@ AudioListener: m_GameObject: {fileID: 1558803271} m_Enabled: 1 --- !u!124 &1558803273 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1558803271} - m_Enabled: 1 ---- !u!92 &1558803274 Behaviour: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} @@ -2075,7 +2076,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 --- !u!4 &1558803276 Transform: m_ObjectHideFlags: 0 @@ -2257,7 +2257,7 @@ MonoBehaviour: m_GameObject: {fileID: 1625078205} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6f7b10baa6c50634a979160a8c4f142c, type: 3} + m_Script: {fileID: 11500000, guid: a9ab7a977fd7a3243b4b43f7b09a8c5a, type: 3} m_Name: m_EditorClassIdentifier: LineRenderer: {fileID: 1025621201} @@ -2836,10 +2836,10 @@ MonoBehaviour: m_Resolution: 0 m_useNativeSize: 0 m_points: - - {x: -300, y: -37.5} - - {x: -227, y: -178.5} - - {x: -88, y: -65.5} - - {x: 32, y: -158.5} + - {x: -260, y: -92.5} + - {x: -187, y: -233.5} + - {x: -48, y: -120.5} + - {x: 72, y: -213.5} lineThickness: 7.41 relativeSize: 0 lineList: 0 diff --git a/Examples/UILineRenderer/UILineRendererDemo.unity.meta b/Examples/UILineRenderer/UILineRendererDemo.unity.meta index 48cc632..296b13f 100644 --- a/Examples/UILineRenderer/UILineRendererDemo.unity.meta +++ b/Examples/UILineRenderer/UILineRendererDemo.unity.meta @@ -1,8 +1,9 @@ fileFormatVersion: 2 -guid: b01f9e610467c714c9077cf2622eb7b2 +guid: 80f8b545237dcbc4887d579ad520c2cc timeCreated: 1464634788 licenseType: Pro DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Scripts/Controls/ComboBox/DropDownListItem.cs b/Scripts/Controls/ComboBox/DropDownListItem.cs index 4a42161..dbada62 100644 --- a/Scripts/Controls/ComboBox/DropDownListItem.cs +++ b/Scripts/Controls/ComboBox/DropDownListItem.cs @@ -76,9 +76,9 @@ namespace UnityEngine.UI.Extensions set { _id = value; } } - public Action OnSelect; //action to be called when this item is selected + public Action OnSelect = null; //action to be called when this item is selected - internal Action OnUpdate; //action to be called when something changes. + internal Action OnUpdate = null; //action to be called when something changes. /// <summary> /// Constructor for Drop Down List panelItems diff --git a/Scripts/Controls/TextPic.cs b/Scripts/Controls/TextPic.cs index e7eda7a..6dfe576 100644 --- a/Scripts/Controls/TextPic.cs +++ b/Scripts/Controls/TextPic.cs @@ -99,9 +99,6 @@ namespace UnityEngine.UI.Extensions { private Button button; - //Commented out as private and not used.. Yet? - private bool selected = false; - private List<Vector2> positions = new List<Vector2>(); /** @@ -399,8 +396,6 @@ namespace UnityEngine.UI.Extensions { } public void OnPointerEnter(PointerEventData eventData) { - //do your stuff when highlighted - selected = true; if (m_ImagesPool.Count >= 1) { foreach (Image img in m_ImagesPool) { @@ -412,8 +407,6 @@ namespace UnityEngine.UI.Extensions { } public void OnPointerExit(PointerEventData eventData) { - //do your stuff when highlighted - selected = false; if (m_ImagesPool.Count >= 1) { foreach (Image img in m_ImagesPool) { @@ -428,8 +421,6 @@ namespace UnityEngine.UI.Extensions { } public void OnSelect(BaseEventData eventData) { - //do your stuff when selected - selected = true; if (m_ImagesPool.Count >= 1) { foreach (Image img in m_ImagesPool) { @@ -441,8 +432,6 @@ namespace UnityEngine.UI.Extensions { } public void OnDeselect(BaseEventData eventData) { - //do your stuff when selected - selected = false; if (m_ImagesPool.Count >= 1) { foreach (Image img in m_ImagesPool) { diff --git a/Scripts/Effects/CylinderText.cs b/Scripts/Effects/CylinderText.cs index 71ed2f6..281e729 100644 --- a/Scripts/Effects/CylinderText.cs +++ b/Scripts/Effects/CylinderText.cs @@ -9,27 +9,21 @@ namespace UnityEngine.UI.Extensions public class CylinderText : BaseMeshEffect { public float radius; - private RectTransform rectTrans; - #if UNITY_EDITOR protected override void OnValidate() { base.OnValidate(); - if (rectTrans == null) - rectTrans = GetComponent<RectTransform>(); } #endif protected override void Awake() { base.Awake(); - rectTrans = GetComponent<RectTransform>(); OnRectTransformDimensionsChange(); } protected override void OnEnable() { base.OnEnable(); - rectTrans = GetComponent<RectTransform>(); OnRectTransformDimensionsChange(); } public override void ModifyMesh(VertexHelper vh) diff --git a/Scripts/Layout/ContentScrollSnapHorizontal.cs b/Scripts/Layout/ContentScrollSnapHorizontal.cs index c02f57d..948ffa9 100644 --- a/Scripts/Layout/ContentScrollSnapHorizontal.cs +++ b/Scripts/Layout/ContentScrollSnapHorizontal.cs @@ -104,7 +104,6 @@ namespace UnityEngine.UI.Extensions private float totalScrollableWidth; private DrivenRectTransformTracker tracker; private bool lerp; - private bool pointerDown; private float mLerpTime; private int _closestItem; private bool lerpToContentRunning; @@ -469,12 +468,10 @@ namespace UnityEngine.UI.Extensions { startMovementEvent.Invoke(); } - pointerDown = true; } public void OnEndDrag(PointerEventData ped) { - pointerDown = false; StartCoroutine("SlideAndLerp"); } diff --git a/Scripts/Layout/FancyScrollView.cs b/Scripts/Layout/FancyScrollView.cs index fd062a8..13afa7d 100644 --- a/Scripts/Layout/FancyScrollView.cs +++ b/Scripts/Layout/FancyScrollView.cs @@ -8,13 +8,13 @@ namespace UnityEngine.UI.Extensions public class FancyScrollView<TData, TContext> : MonoBehaviour where TContext : class { [SerializeField, Range(float.Epsilon, 1f)] - float cellInterval; + float cellInterval = 0; [SerializeField, Range(0f, 1f)] - float cellOffset; + float cellOffset = 0; [SerializeField] - bool loop; + bool loop = false; [SerializeField] - GameObject cellBase; + GameObject cellBase = null; float currentPosition; readonly List<FancyScrollViewCell<TData, TContext>> cells = diff --git a/Scripts/Layout/ScrollPositionController.cs b/Scripts/Layout/ScrollPositionController.cs index 2eb3070..5eb1020 100644 --- a/Scripts/Layout/ScrollPositionController.cs +++ b/Scripts/Layout/ScrollPositionController.cs @@ -40,7 +40,7 @@ namespace UnityEngine.UI.Extensions } [SerializeField] - RectTransform viewport; + RectTransform viewport = null; [SerializeField] ScrollDirection directionOfRecognize = ScrollDirection.Vertical; [SerializeField] diff --git a/Scripts/Utilities/PaginationManager.cs b/Scripts/Utilities/PaginationManager.cs index 9e5dc99..c85a280 100644 --- a/Scripts/Utilities/PaginationManager.cs +++ b/Scripts/Utilities/PaginationManager.cs @@ -12,7 +12,7 @@ namespace UnityEngine.UI.Extensions private List<Toggle> m_PaginationChildren; [SerializeField] - private ScrollSnapBase scrollSnap; + private ScrollSnapBase scrollSnap = null; private bool isAClick; diff --git a/Scripts/Utilities/ScrollRectLinker.cs b/Scripts/Utilities/ScrollRectLinker.cs index 25031a5..bddfadc 100644 --- a/Scripts/Utilities/ScrollRectLinker.cs +++ b/Scripts/Utilities/ScrollRectLinker.cs @@ -11,8 +11,8 @@ namespace UnityEngine.UI.Extensions public bool clamp = true; [SerializeField] - ScrollRect controllingScrollRect; - ScrollRect scrollRect; + ScrollRect controllingScrollRect = null; + ScrollRect scrollRect = null; void Awake() { diff --git a/Scripts/Utilities/UIScrollToSelection.cs b/Scripts/Utilities/UIScrollToSelection.cs index a60b29d..d258443 100644 --- a/Scripts/Utilities/UIScrollToSelection.cs +++ b/Scripts/Utilities/UIScrollToSelection.cs @@ -18,7 +18,7 @@ namespace UnityEngine.UI.Extensions //*** ATTRIBUTES ***// [Header("[ Settings ]")] [SerializeField] - private ScrollType scrollDirection; + private ScrollType scrollDirection = ScrollType.BOTH; [SerializeField] private float scrollSpeed = 10f; diff --git a/Scripts/Utilities/UIScrollToSelectionXY.cs b/Scripts/Utilities/UIScrollToSelectionXY.cs index 69d9c72..59da619 100644 --- a/Scripts/Utilities/UIScrollToSelectionXY.cs +++ b/Scripts/Utilities/UIScrollToSelectionXY.cs @@ -22,7 +22,7 @@ namespace UnityEngine.UI.Extensions public float scrollSpeed = 10f; [SerializeField] - private RectTransform layoutListGroup; + private RectTransform layoutListGroup = null; // temporary variables private RectTransform targetScrollObject;