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
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

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;