Full Code of Haruma-K/FancyCarouselView for AI

master 5cc67512ba2d cached
98 files
228.9 KB
84.5k tokens
78 symbols
1 requests
Download .txt
Showing preview only (259K chars total). Download the full file or copy to clipboard to get everything.
Repository: Haruma-K/FancyCarouselView
Branch: master
Commit: 5cc67512ba2d
Files: 98
Total size: 228.9 KB

Directory structure:
gitextract_4lza6sc5/

├── .github/
│   └── workflows/
│       └── toc.yml
├── .gitignore
├── Assets/
│   ├── Demo/
│   │   ├── Prefabs/
│   │   │   ├── pfb_demo_carousel_cell.prefab
│   │   │   └── pfb_demo_carousel_cell.prefab.meta
│   │   ├── Prefabs.meta
│   │   ├── Resources/
│   │   │   ├── tex_demo_banner_00.png.meta
│   │   │   ├── tex_demo_banner_01.png.meta
│   │   │   └── tex_demo_banner_02.png.meta
│   │   ├── Resources.meta
│   │   ├── Scenes/
│   │   │   ├── CarouselDemo.unity
│   │   │   ├── CarouselDemo.unity.meta
│   │   │   ├── WithScrollViewDemo.unity
│   │   │   └── WithScrollViewDemo.unity.meta
│   │   ├── Scenes.meta
│   │   ├── Scripts/
│   │   │   ├── Demo.cs
│   │   │   ├── Demo.cs.meta
│   │   │   ├── DemoCarouselCell.cs
│   │   │   ├── DemoCarouselCell.cs.meta
│   │   │   ├── DemoCarouselView.cs
│   │   │   ├── DemoCarouselView.cs.meta
│   │   │   ├── DemoData.cs
│   │   │   └── DemoData.cs.meta
│   │   └── Scripts.meta
│   ├── Demo.meta
│   ├── FancyCarouselView/
│   │   ├── Editor/
│   │   │   ├── FancyCarouselView.Editor.asmdef
│   │   │   ├── FancyCarouselView.Editor.asmdef.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── CarouselScrollerEditor.cs
│   │   │   │   ├── CarouselScrollerEditor.cs.meta
│   │   │   │   ├── CarouselViewEditor.cs
│   │   │   │   ├── CarouselViewEditor.cs.meta
│   │   │   │   ├── DotCarouselProgressViewEditor.cs
│   │   │   │   └── DotCarouselProgressViewEditor.cs.meta
│   │   │   └── Scripts.meta
│   │   ├── Editor.meta
│   │   ├── Runtime/
│   │   │   ├── FancyCarouselView.asmdef
│   │   │   ├── FancyCarouselView.asmdef.meta
│   │   │   ├── Prefabs/
│   │   │   │   ├── pfb_default_carousel_progress_element.prefab
│   │   │   │   ├── pfb_default_carousel_progress_element.prefab.meta
│   │   │   │   ├── pfb_default_carousel_progress_view.prefab
│   │   │   │   └── pfb_default_carousel_progress_view.prefab.meta
│   │   │   ├── Prefabs.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── AnimationUtils.cs
│   │   │   │   ├── AnimationUtils.cs.meta
│   │   │   │   ├── CarouselCell.cs
│   │   │   │   ├── CarouselCell.cs.meta
│   │   │   │   ├── CarouselContext.cs
│   │   │   │   ├── CarouselContext.cs.meta
│   │   │   │   ├── CarouselProgressView.cs
│   │   │   │   ├── CarouselProgressView.cs.meta
│   │   │   │   ├── CarouselScroller.cs
│   │   │   │   ├── CarouselScroller.cs.meta
│   │   │   │   ├── CarouselView.cs
│   │   │   │   ├── CarouselView.cs.meta
│   │   │   │   ├── CarouselViewDelegates.cs
│   │   │   │   ├── CarouselViewDelegates.cs.meta
│   │   │   │   ├── DotCarouselProgressElement.cs
│   │   │   │   ├── DotCarouselProgressElement.cs.meta
│   │   │   │   ├── DotCarouselProgressView.cs
│   │   │   │   ├── DotCarouselProgressView.cs.meta
│   │   │   │   ├── EndMovementType.cs
│   │   │   │   ├── EndMovementType.cs.meta
│   │   │   │   ├── ICarouselView.cs
│   │   │   │   ├── ICarouselView.cs.meta
│   │   │   │   ├── ScrollEventPropagator.cs
│   │   │   │   └── ScrollEventPropagator.cs.meta
│   │   │   ├── Scripts.meta
│   │   │   ├── Textures/
│   │   │   │   └── tex_carousel_dot.png.meta
│   │   │   └── Textures.meta
│   │   ├── Runtime.meta
│   │   ├── package.json
│   │   └── package.json.meta
│   └── FancyCarouselView.meta
├── LICENSE.md
├── Packages/
│   ├── manifest.json
│   └── packages-lock.json
├── ProjectSettings/
│   ├── AudioManager.asset
│   ├── ClusterInputManager.asset
│   ├── DynamicsManager.asset
│   ├── EditorBuildSettings.asset
│   ├── EditorSettings.asset
│   ├── GraphicsSettings.asset
│   ├── InputManager.asset
│   ├── NavMeshAreas.asset
│   ├── PackageManagerSettings.asset
│   ├── Physics2DSettings.asset
│   ├── PresetManager.asset
│   ├── ProjectSettings.asset
│   ├── ProjectVersion.txt
│   ├── QualitySettings.asset
│   ├── TagManager.asset
│   ├── TimeManager.asset
│   ├── UnityConnectSettings.asset
│   ├── VFXManager.asset
│   ├── VersionControlSettings.asset
│   └── XRSettings.asset
├── README.md
├── README_JA.md
└── Third Party Notices.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/toc.yml
================================================
on: push
name: TOC Generator
jobs:
  generateTOC:
    name: TOC Generator
    runs-on: ubuntu-latest
    steps:
      - uses: technote-space/toc-generator@v4

================================================
FILE: .gitignore
================================================
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.aab
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*

# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*

.idea/

================================================
FILE: Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1047693792088076
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 224586824547443490}
  - component: {fileID: 222671064185272594}
  - component: {fileID: 114187527074109412}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &224586824547443490
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1047693792088076}
  m_LocalRotation: {x: 0.008726558, y: 0, z: 0, w: 0.999962}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 224942455461622062}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 1, y: 0, z: 0}
  m_AnchorMin: {x: 1, y: 0}
  m_AnchorMax: {x: 1, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 600, y: 300}
  m_Pivot: {x: 1, y: 0}
--- !u!222 &222671064185272594
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1047693792088076}
  m_CullTransparentMesh: 0
--- !u!114 &114187527074109412
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1047693792088076}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 0.8666667}
  m_RaycastTarget: 0
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_FontData:
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
    m_FontSize: 45
    m_FontStyle: 1
    m_BestFit: 0
    m_MinSize: 0
    m_MaxSize: 60
    m_Alignment: 4
    m_AlignByGeometry: 0
    m_RichText: 1
    m_HorizontalOverflow: 0
    m_VerticalOverflow: 0
    m_LineSpacing: 1
  m_Text: Demo
--- !u!1 &1090456633889264
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 224549255076533924}
  - component: {fileID: 222720373810649850}
  - component: {fileID: 8968080924771193172}
  m_Layer: 5
  m_Name: pfb_demo_carousel_cell
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &224549255076533924
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1090456633889264}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 224942455461622062}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 600, y: 300}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222720373810649850
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1090456633889264}
  m_CullTransparentMesh: 0
--- !u!114 &8968080924771193172
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1090456633889264}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 28a5bb785df764c9396f84b117e1f93f, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  _image: {fileID: 114563267192182474}
  _text: {fileID: 114187527074109412}
  _button: {fileID: 6129412484393356487}
--- !u!1 &1567147101442258
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 224942455461622062}
  - component: {fileID: 222329272886881190}
  - component: {fileID: 114563267192182474}
  - component: {fileID: 6129412484393356487}
  m_Layer: 5
  m_Name: Image
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &224942455461622062
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1567147101442258}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 224586824547443490}
  m_Father: {fileID: 224549255076533924}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &222329272886881190
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1567147101442258}
  m_CullTransparentMesh: 0
--- !u!114 &114563267192182474
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1567147101442258}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 0}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!114 &6129412484393356487
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1567147101442258}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 114563267192182474}
  m_OnClick:
    m_PersistentCalls:
      m_Calls: []


================================================
FILE: Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab.meta
================================================
fileFormatVersion: 2
guid: 07f957860e6fb4856bfb31bb7dbb5541
timeCreated: 1508240682
licenseType: Free
NativeFormatImporter:
  externalObjects: {}
  mainObjectFileID: 100100000
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Prefabs.meta
================================================
fileFormatVersion: 2
guid: 9fdf8a3538dab49458e471d728ddf257
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Resources/tex_demo_banner_00.png.meta
================================================
fileFormatVersion: 2
guid: 1b9684536565941baabd99e254db31d7
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 11
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: -1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 1
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 8
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  applyGammaDecoding: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: iPhone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 5e97eb03825dee720800000000000000
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Resources/tex_demo_banner_01.png.meta
================================================
fileFormatVersion: 2
guid: 369a2d353bee344a29b62a7d227d1be8
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 11
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: -1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 1
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 8
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  applyGammaDecoding: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: iPhone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 5e97eb03825dee720800000000000000
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Resources/tex_demo_banner_02.png.meta
================================================
fileFormatVersion: 2
guid: 7a204816dd74146768c85d99000e772f
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 11
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: -1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 1
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 8
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  applyGammaDecoding: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: iPhone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 5e97eb03825dee720800000000000000
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Resources.meta
================================================
fileFormatVersion: 2
guid: 6e8b0e5781bcd4398ad46f36b4ee77cb
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scenes/CarouselDemo.unity
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_OcclusionBakeSettings:
    smallestOccluder: 5
    smallestHole: 0.25
    backfaceThreshold: 100
  m_SceneGUID: 00000000000000000000000000000000
  m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 9
  m_Fog: 0
  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
  m_FogMode: 3
  m_FogDensity: 0.01
  m_LinearFogStart: 0
  m_LinearFogEnd: 300
  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
  m_AmbientIntensity: 1
  m_AmbientMode: 0
  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
  m_HaloStrength: 0.5
  m_FlareStrength: 1
  m_FlareFadeSpeed: 3
  m_HaloTexture: {fileID: 0}
  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
  m_DefaultReflectionMode: 0
  m_DefaultReflectionResolution: 128
  m_ReflectionBounces: 1
  m_ReflectionIntensity: 1
  m_CustomReflection: {fileID: 0}
  m_Sun: {fileID: 0}
  m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641275, b: 0.5748172, a: 1}
  m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 12
  m_GIWorkflowMode: 1
  m_GISettings:
    serializedVersion: 2
    m_BounceScale: 1
    m_IndirectOutputScale: 1
    m_AlbedoBoost: 1
    m_EnvironmentLightingMode: 0
    m_EnableBakedLightmaps: 1
    m_EnableRealtimeLightmaps: 0
  m_LightmapEditorSettings:
    serializedVersion: 12
    m_Resolution: 2
    m_BakeResolution: 40
    m_AtlasSize: 1024
    m_AO: 0
    m_AOMaxDistance: 1
    m_CompAOExponent: 1
    m_CompAOExponentDirect: 0
    m_ExtractAmbientOcclusion: 0
    m_Padding: 2
    m_LightmapParameters: {fileID: 0}
    m_LightmapsBakeMode: 1
    m_TextureCompression: 1
    m_FinalGather: 0
    m_FinalGatherFiltering: 1
    m_FinalGatherRayCount: 256
    m_ReflectionCompression: 2
    m_MixedBakeMode: 2
    m_BakeBackend: 1
    m_PVRSampling: 1
    m_PVRDirectSampleCount: 32
    m_PVRSampleCount: 512
    m_PVRBounces: 2
    m_PVREnvironmentSampleCount: 256
    m_PVREnvironmentReferencePointCount: 2048
    m_PVRFilteringMode: 1
    m_PVRDenoiserTypeDirect: 1
    m_PVRDenoiserTypeIndirect: 1
    m_PVRDenoiserTypeAO: 1
    m_PVRFilterTypeDirect: 0
    m_PVRFilterTypeIndirect: 0
    m_PVRFilterTypeAO: 0
    m_PVREnvironmentMIS: 1
    m_PVRCulling: 1
    m_PVRFilteringGaussRadiusDirect: 1
    m_PVRFilteringGaussRadiusIndirect: 5
    m_PVRFilteringGaussRadiusAO: 2
    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
    m_PVRFilteringAtrousPositionSigmaIndirect: 2
    m_PVRFilteringAtrousPositionSigmaAO: 1
    m_ExportTrainingData: 0
    m_TrainingDataDestination: TrainingData
    m_LightProbeSampleCountMultiplier: 4
  m_LightingDataAsset: {fileID: 0}
  m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
  serializedVersion: 2
  m_ObjectHideFlags: 0
  m_BuildSettings:
    serializedVersion: 2
    agentTypeID: 0
    agentRadius: 0.5
    agentHeight: 2
    agentSlope: 45
    agentClimb: 0.4
    ledgeDropHeight: 0
    maxJumpAcrossDistance: 0
    minRegionArea: 2
    manualCellSize: 0
    cellSize: 0.16666667
    manualTileSize: 0
    tileSize: 256
    accuratePlacement: 0
    maxJobWorkers: 0
    preserveTilesOutsideBounds: 0
    debug:
      m_Flags: 0
  m_NavMeshData: {fileID: 0}
--- !u!1 &63914003
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 63914005}
  - component: {fileID: 63914004}
  m_Layer: 0
  m_Name: Demo
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &63914004
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 63914003}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: c81471d0f53e947b98e24b95bf6550e3, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  _carouselView: {fileID: 1539422973}
  _bannerCount: 3
  _setupButton: {fileID: 288338531}
  _cleanupButton: {fileID: 1006705426}
--- !u!4 &63914005
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 63914003}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 4
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &122447817
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 122447818}
  - component: {fileID: 122447820}
  - component: {fileID: 122447819}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &122447818
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 122447817}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 1006705425}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &122447819
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 122447817}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_FontData:
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
    m_FontSize: 32
    m_FontStyle: 0
    m_BestFit: 0
    m_MinSize: 3
    m_MaxSize: 40
    m_Alignment: 4
    m_AlignByGeometry: 0
    m_RichText: 1
    m_HorizontalOverflow: 0
    m_VerticalOverflow: 0
    m_LineSpacing: 1
  m_Text: Cleanup
--- !u!222 &122447820
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 122447817}
  m_CullTransparentMesh: 1
--- !u!1 &148086138
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 148086143}
  - component: {fileID: 148086142}
  - component: {fileID: 148086141}
  - component: {fileID: 148086140}
  m_Layer: 5
  m_Name: Canvas
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &148086140
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_IgnoreReversedGraphics: 1
  m_BlockingObjects: 0
  m_BlockingMask:
    serializedVersion: 2
    m_Bits: 4294967295
--- !u!114 &148086141
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_UiScaleMode: 1
  m_ReferencePixelsPerUnit: 100
  m_ScaleFactor: 1
  m_ReferenceResolution: {x: 750, y: 1336}
  m_ScreenMatchMode: 0
  m_MatchWidthOrHeight: 0
  m_PhysicalUnit: 3
  m_FallbackScreenDPI: 96
  m_DefaultSpriteDPI: 96
  m_DynamicPixelsPerUnit: 1
  m_PresetInfoIsWorld: 0
--- !u!223 &148086142
Canvas:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  serializedVersion: 3
  m_RenderMode: 1
  m_Camera: {fileID: 768640782}
  m_PlaneDistance: 100
  m_PixelPerfect: 0
  m_ReceivesEvents: 1
  m_OverrideSorting: 0
  m_OverridePixelPerfect: 0
  m_SortingBucketNormalizedSize: 0
  m_AdditionalShaderChannelsFlag: 25
  m_SortingLayerID: 0
  m_SortingOrder: 0
  m_TargetDisplay: 0
--- !u!224 &148086143
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 0, y: 0, z: 0}
  m_Children:
  - {fileID: 515421546}
  - {fileID: 676918069}
  m_Father: {fileID: 0}
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0, y: 0}
--- !u!1 &288338529
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 288338530}
  - component: {fileID: 288338533}
  - component: {fileID: 288338532}
  - component: {fileID: 288338531}
  m_Layer: 5
  m_Name: SetupButton
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &288338530
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 288338529}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1307930892}
  m_Father: {fileID: 676918069}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &288338531
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 288338529}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_WrapAround: 0
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 288338532}
  m_OnClick:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &288338532
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 288338529}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &288338533
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 288338529}
  m_CullTransparentMesh: 1
--- !u!114 &446624512 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 5609355829170890579, guid: 4e95dd339e71b40aa8e0269426c1dd21,
    type: 3}
  m_PrefabInstance: {fileID: 1353156686}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: d1686675fc52e4c6da26d2cd3ea79921, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1 &515421545
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 515421546}
  - component: {fileID: 515421547}
  m_Layer: 5
  m_Name: Container
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &515421546
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 515421545}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1539422975}
  - {fileID: 1353156687}
  m_Father: {fileID: 148086143}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &515421547
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 515421545}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Padding:
    m_Left: 0
    m_Right: 0
    m_Top: 0
    m_Bottom: 0
  m_ChildAlignment: 4
  m_Spacing: 10
  m_ChildForceExpandWidth: 0
  m_ChildForceExpandHeight: 0
  m_ChildControlWidth: 0
  m_ChildControlHeight: 0
  m_ChildScaleWidth: 0
  m_ChildScaleHeight: 0
  m_ReverseArrangement: 0
--- !u!1 &676918068
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 676918069}
  - component: {fileID: 676918070}
  m_Layer: 5
  m_Name: Buttons
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &676918069
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 676918068}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 288338530}
  - {fileID: 1006705425}
  m_Father: {fileID: 148086143}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 0}
  m_AnchoredPosition: {x: 0, y: 16}
  m_SizeDelta: {x: 0, y: 100}
  m_Pivot: {x: 0.5, y: 0}
--- !u!114 &676918070
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 676918068}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Padding:
    m_Left: 16
    m_Right: 16
    m_Top: 0
    m_Bottom: 0
  m_ChildAlignment: 1
  m_Spacing: 12
  m_ChildForceExpandWidth: 1
  m_ChildForceExpandHeight: 1
  m_ChildControlWidth: 1
  m_ChildControlHeight: 1
  m_ChildScaleWidth: 0
  m_ChildScaleHeight: 0
  m_ReverseArrangement: 0
--- !u!1 &768640780
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 768640783}
  - component: {fileID: 768640782}
  - component: {fileID: 768640781}
  m_Layer: 0
  m_Name: Main Camera
  m_TagString: MainCamera
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!81 &768640781
AudioListener:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_Enabled: 1
--- !u!20 &768640782
Camera:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_Enabled: 1
  serializedVersion: 2
  m_ClearFlags: 2
  m_BackGroundColor: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 0}
  m_projectionMatrixMode: 1
  m_GateFitMode: 2
  m_FOVAxisMode: 0
  m_SensorSize: {x: 36, y: 24}
  m_LensShift: {x: 0, y: 0}
  m_FocalLength: 50
  m_NormalizedViewPortRect:
    serializedVersion: 2
    x: 0
    y: 0
    width: 1
    height: 1
  near clip plane: 0.3
  far clip plane: 1000
  field of view: 60
  orthographic: 0
  orthographic size: 5
  m_Depth: -1
  m_CullingMask:
    serializedVersion: 2
    m_Bits: 4294967295
  m_RenderingPath: -1
  m_TargetTexture: {fileID: 0}
  m_TargetDisplay: 0
  m_TargetEye: 3
  m_HDR: 1
  m_AllowMSAA: 1
  m_AllowDynamicResolution: 0
  m_ForceIntoRT: 0
  m_OcclusionCulling: 1
  m_StereoConvergence: 10
  m_StereoSeparation: 0.022
--- !u!4 &768640783
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 1, z: -10}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1006705424
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1006705425}
  - component: {fileID: 1006705428}
  - component: {fileID: 1006705427}
  - component: {fileID: 1006705426}
  m_Layer: 5
  m_Name: CleanupButton
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1006705425
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1006705424}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 122447818}
  m_Father: {fileID: 676918069}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1006705426
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1006705424}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_WrapAround: 0
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 1006705427}
  m_OnClick:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &1006705427
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1006705424}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1006705428
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1006705424}
  m_CullTransparentMesh: 1
--- !u!1 &1214493610
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1214493612}
  - component: {fileID: 1214493611}
  m_Layer: 0
  m_Name: Directional Light
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!108 &1214493611
Light:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1214493610}
  m_Enabled: 1
  serializedVersion: 10
  m_Type: 1
  m_Shape: 0
  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
  m_Intensity: 1
  m_Range: 10
  m_SpotAngle: 30
  m_InnerSpotAngle: 21.80208
  m_CookieSize: 10
  m_Shadows:
    m_Type: 2
    m_Resolution: -1
    m_CustomResolution: -1
    m_Strength: 1
    m_Bias: 0.05
    m_NormalBias: 0.4
    m_NearPlane: 0.2
    m_CullingMatrixOverride:
      e00: 1
      e01: 0
      e02: 0
      e03: 0
      e10: 0
      e11: 1
      e12: 0
      e13: 0
      e20: 0
      e21: 0
      e22: 1
      e23: 0
      e30: 0
      e31: 0
      e32: 0
      e33: 1
    m_UseCullingMatrixOverride: 0
  m_Cookie: {fileID: 0}
  m_DrawHalo: 0
  m_Flare: {fileID: 0}
  m_RenderMode: 0
  m_CullingMask:
    serializedVersion: 2
    m_Bits: 4294967295
  m_RenderingLayerMask: 1
  m_Lightmapping: 4
  m_LightShadowCasterMode: 0
  m_AreaSize: {x: 1, y: 1}
  m_BounceIntensity: 1
  m_ColorTemperature: 6570
  m_UseColorTemperature: 0
  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
  m_UseBoundingSphereOverride: 0
  m_UseViewFrustumForShadowCasterCull: 1
  m_ShadowRadius: 0
  m_ShadowAngle: 0
--- !u!4 &1214493612
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1214493610}
  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
  m_LocalPosition: {x: 0, y: 3, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1307930891
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1307930892}
  - component: {fileID: 1307930894}
  - component: {fileID: 1307930893}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1307930892
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1307930891}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 288338530}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1307930893
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1307930891}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_FontData:
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
    m_FontSize: 32
    m_FontStyle: 0
    m_BestFit: 0
    m_MinSize: 3
    m_MaxSize: 40
    m_Alignment: 4
    m_AlignByGeometry: 0
    m_RichText: 1
    m_HorizontalOverflow: 0
    m_VerticalOverflow: 0
    m_LineSpacing: 1
  m_Text: Setup
--- !u!222 &1307930894
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1307930891}
  m_CullTransparentMesh: 1
--- !u!1001 &1353156686
PrefabInstance:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
    m_TransformParent: {fileID: 515421546}
    m_Modifications:
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_Pivot.x
      value: 0.5
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_Pivot.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_RootOrder
      value: 1
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchorMax.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchorMax.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchorMin.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchorMin.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_SizeDelta.x
      value: 750
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_SizeDelta.y
      value: 30
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalPosition.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalPosition.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalRotation.w
      value: 1
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: -0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: -0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: -0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchoredPosition.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_AnchoredPosition.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.y
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.z
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 5609355829170890581, guid: 4e95dd339e71b40aa8e0269426c1dd21,
        type: 3}
      propertyPath: m_Name
      value: pfb_default_carousel_progress_view
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 4e95dd339e71b40aa8e0269426c1dd21, type: 3}
--- !u!224 &1353156687 stripped
RectTransform:
  m_CorrespondingSourceObject: {fileID: 5609355829170890578, guid: 4e95dd339e71b40aa8e0269426c1dd21,
    type: 3}
  m_PrefabInstance: {fileID: 1353156686}
  m_PrefabAsset: {fileID: 0}
--- !u!1 &1539422972
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1539422975}
  - component: {fileID: 1539422977}
  - component: {fileID: 1539422976}
  - component: {fileID: 1539422974}
  - component: {fileID: 1539422973}
  m_Layer: 5
  m_Name: Carousel View
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &1539422973
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 7ac5fc66c6bf74808a1fead45d9b1b43, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  cellInterval: 0.2
  scrollOffset: 0.5
  loop: 1
  cellContainer: {fileID: 1539422975}
  _scroller: {fileID: 1539422974}
  _cellPrefab: {fileID: 8968080924771193172, guid: 07f957860e6fb4856bfb31bb7dbb5541,
    type: 3}
  _cellSize: {x: 600, y: 300}
  _cellSpacing: 30
  _snapAnimationDuration: 0.25
  _snapAnimationType: 17
  _autoScrollingEnabled: 1
  _autoScrollingIntervalSec: 3
  _inverseAutoScrollingDirection: 0
  _progressView: {fileID: 446624512}
  _progressViewInteraction: 1
--- !u!114 &1539422974
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 93e8ff52edf1e4551a9383367d899f3d, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  viewport: {fileID: 1539422975}
  scrollDirection: 1
  movementType: 0
  elasticity: 0.1
  scrollSensitivity: 1
  inertia: 0
  decelerationRate: 0.03
  snap:
    Enable: 0
    VelocityThreshold: 0.5
    Duration: 0.3
    Easing: 24
  draggable: 1
  scrollbar: {fileID: 0}
--- !u!224 &1539422975
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 515421546}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 750, y: 300}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1539422976
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 0}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1539422977
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_CullTransparentMesh: 0
--- !u!1 &1553209351
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1553209354}
  - component: {fileID: 1553209353}
  - component: {fileID: 1553209352}
  m_Layer: 0
  m_Name: EventSystem
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &1553209352
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_HorizontalAxis: Horizontal
  m_VerticalAxis: Vertical
  m_SubmitButton: Submit
  m_CancelButton: Cancel
  m_InputActionsPerSecond: 10
  m_RepeatDelay: 0.5
  m_ForceModuleActive: 0
--- !u!114 &1553209353
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_FirstSelected: {fileID: 0}
  m_sendNavigationEvents: 1
  m_DragThreshold: 10
--- !u!4 &1553209354
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}


================================================
FILE: Assets/Demo/Scenes/CarouselDemo.unity.meta
================================================
fileFormatVersion: 2
guid: fb0930c4c73004bb2be56aca5302a87f
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scenes/WithScrollViewDemo.unity
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_OcclusionBakeSettings:
    smallestOccluder: 5
    smallestHole: 0.25
    backfaceThreshold: 100
  m_SceneGUID: 00000000000000000000000000000000
  m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 9
  m_Fog: 0
  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
  m_FogMode: 3
  m_FogDensity: 0.01
  m_LinearFogStart: 0
  m_LinearFogEnd: 300
  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
  m_AmbientIntensity: 1
  m_AmbientMode: 0
  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
  m_HaloStrength: 0.5
  m_FlareStrength: 1
  m_FlareFadeSpeed: 3
  m_HaloTexture: {fileID: 0}
  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
  m_DefaultReflectionMode: 0
  m_DefaultReflectionResolution: 128
  m_ReflectionBounces: 1
  m_ReflectionIntensity: 1
  m_CustomReflection: {fileID: 0}
  m_Sun: {fileID: 0}
  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
  m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 11
  m_GIWorkflowMode: 1
  m_GISettings:
    serializedVersion: 2
    m_BounceScale: 1
    m_IndirectOutputScale: 1
    m_AlbedoBoost: 1
    m_EnvironmentLightingMode: 0
    m_EnableBakedLightmaps: 1
    m_EnableRealtimeLightmaps: 0
  m_LightmapEditorSettings:
    serializedVersion: 12
    m_Resolution: 2
    m_BakeResolution: 40
    m_AtlasSize: 1024
    m_AO: 0
    m_AOMaxDistance: 1
    m_CompAOExponent: 1
    m_CompAOExponentDirect: 0
    m_ExtractAmbientOcclusion: 0
    m_Padding: 2
    m_LightmapParameters: {fileID: 0}
    m_LightmapsBakeMode: 1
    m_TextureCompression: 1
    m_FinalGather: 0
    m_FinalGatherFiltering: 1
    m_FinalGatherRayCount: 256
    m_ReflectionCompression: 2
    m_MixedBakeMode: 2
    m_BakeBackend: 1
    m_PVRSampling: 1
    m_PVRDirectSampleCount: 32
    m_PVRSampleCount: 512
    m_PVRBounces: 2
    m_PVREnvironmentSampleCount: 256
    m_PVREnvironmentReferencePointCount: 2048
    m_PVRFilteringMode: 1
    m_PVRDenoiserTypeDirect: 1
    m_PVRDenoiserTypeIndirect: 1
    m_PVRDenoiserTypeAO: 1
    m_PVRFilterTypeDirect: 0
    m_PVRFilterTypeIndirect: 0
    m_PVRFilterTypeAO: 0
    m_PVREnvironmentMIS: 1
    m_PVRCulling: 1
    m_PVRFilteringGaussRadiusDirect: 1
    m_PVRFilteringGaussRadiusIndirect: 5
    m_PVRFilteringGaussRadiusAO: 2
    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
    m_PVRFilteringAtrousPositionSigmaIndirect: 2
    m_PVRFilteringAtrousPositionSigmaAO: 1
    m_ExportTrainingData: 0
    m_TrainingDataDestination: TrainingData
    m_LightProbeSampleCountMultiplier: 4
  m_LightingDataAsset: {fileID: 0}
  m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
  serializedVersion: 2
  m_ObjectHideFlags: 0
  m_BuildSettings:
    serializedVersion: 2
    agentTypeID: 0
    agentRadius: 0.5
    agentHeight: 2
    agentSlope: 45
    agentClimb: 0.4
    ledgeDropHeight: 0
    maxJumpAcrossDistance: 0
    minRegionArea: 2
    manualCellSize: 0
    cellSize: 0.16666667
    manualTileSize: 0
    tileSize: 256
    accuratePlacement: 0
    debug:
      m_Flags: 0
  m_NavMeshData: {fileID: 0}
--- !u!1 &63914003
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 63914005}
  - component: {fileID: 63914004}
  m_Layer: 0
  m_Name: Demo
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &63914004
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 63914003}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: c81471d0f53e947b98e24b95bf6550e3, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  _carouselView: {fileID: 1539422973}
  _bannerCount: 3
--- !u!4 &63914005
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 63914003}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 4
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &148086138
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 148086143}
  - component: {fileID: 148086142}
  - component: {fileID: 148086141}
  - component: {fileID: 148086140}
  m_Layer: 5
  m_Name: Canvas
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &148086140
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_IgnoreReversedGraphics: 1
  m_BlockingObjects: 0
  m_BlockingMask:
    serializedVersion: 2
    m_Bits: 4294967295
--- !u!114 &148086141
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_UiScaleMode: 1
  m_ReferencePixelsPerUnit: 100
  m_ScaleFactor: 1
  m_ReferenceResolution: {x: 750, y: 1336}
  m_ScreenMatchMode: 0
  m_MatchWidthOrHeight: 0
  m_PhysicalUnit: 3
  m_FallbackScreenDPI: 96
  m_DefaultSpriteDPI: 96
  m_DynamicPixelsPerUnit: 1
--- !u!223 &148086142
Canvas:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_Enabled: 1
  serializedVersion: 3
  m_RenderMode: 1
  m_Camera: {fileID: 768640782}
  m_PlaneDistance: 100
  m_PixelPerfect: 0
  m_ReceivesEvents: 1
  m_OverrideSorting: 0
  m_OverridePixelPerfect: 0
  m_SortingBucketNormalizedSize: 0
  m_AdditionalShaderChannelsFlag: 25
  m_SortingLayerID: 0
  m_SortingOrder: 0
  m_TargetDisplay: 0
--- !u!224 &148086143
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 148086138}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 0, y: 0, z: 0}
  m_Children:
  - {fileID: 1211844880}
  m_Father: {fileID: 0}
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0, y: 0}
--- !u!1 &203296992
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 203296993}
  - component: {fileID: 203296995}
  - component: {fileID: 203296994}
  m_Layer: 5
  m_Name: Handle
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &203296993
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 203296992}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 2020594374}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 20, y: 20}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &203296994
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 203296992}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &203296995
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 203296992}
  m_CullTransparentMesh: 0
--- !u!1 &222335923
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 222335924}
  - component: {fileID: 222335927}
  - component: {fileID: 222335926}
  - component: {fileID: 222335925}
  m_Layer: 5
  m_Name: Viewport
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &222335924
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 222335923}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1004805412}
  m_Father: {fileID: 1211844880}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: -17, y: 0}
  m_Pivot: {x: 0, y: 1}
--- !u!114 &222335925
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 222335923}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_ShowMaskGraphic: 0
--- !u!114 &222335926
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 222335923}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &222335927
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 222335923}
  m_CullTransparentMesh: 0
--- !u!1 &768640780
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 768640783}
  - component: {fileID: 768640782}
  - component: {fileID: 768640781}
  m_Layer: 0
  m_Name: Main Camera
  m_TagString: MainCamera
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!81 &768640781
AudioListener:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_Enabled: 1
--- !u!20 &768640782
Camera:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_Enabled: 1
  serializedVersion: 2
  m_ClearFlags: 2
  m_BackGroundColor: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 0}
  m_projectionMatrixMode: 1
  m_GateFitMode: 2
  m_FOVAxisMode: 0
  m_SensorSize: {x: 36, y: 24}
  m_LensShift: {x: 0, y: 0}
  m_FocalLength: 50
  m_NormalizedViewPortRect:
    serializedVersion: 2
    x: 0
    y: 0
    width: 1
    height: 1
  near clip plane: 0.3
  far clip plane: 1000
  field of view: 60
  orthographic: 0
  orthographic size: 5
  m_Depth: -1
  m_CullingMask:
    serializedVersion: 2
    m_Bits: 4294967295
  m_RenderingPath: -1
  m_TargetTexture: {fileID: 0}
  m_TargetDisplay: 0
  m_TargetEye: 3
  m_HDR: 1
  m_AllowMSAA: 1
  m_AllowDynamicResolution: 0
  m_ForceIntoRT: 0
  m_OcclusionCulling: 1
  m_StereoConvergence: 10
  m_StereoSeparation: 0.022
--- !u!4 &768640783
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 768640780}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 1, z: -10}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1004805411
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1004805412}
  m_Layer: 5
  m_Name: Content
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1004805412
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1004805411}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1539422975}
  m_Father: {fileID: 222335924}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 1}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0.0006085058}
  m_SizeDelta: {x: 0, y: 426.6}
  m_Pivot: {x: 0, y: 1}
--- !u!1 &1027899955
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1027899956}
  - component: {fileID: 1027899959}
  - component: {fileID: 1027899958}
  - component: {fileID: 1027899957}
  m_Layer: 5
  m_Name: Scrollbar Vertical
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1027899956
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1027899955}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 2020594374}
  m_Father: {fileID: 1211844880}
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 1, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 20, y: -17}
  m_Pivot: {x: 1, y: 1}
--- !u!114 &1027899957
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1027899955}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 203296994}
  m_HandleRect: {fileID: 203296993}
  m_Direction: 2
  m_Value: 0.99987084
  m_Size: 0.98892397
  m_NumberOfSteps: 0
  m_OnValueChanged:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &1027899958
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1027899955}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1027899959
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1027899955}
  m_CullTransparentMesh: 0
--- !u!1 &1056800079
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1056800080}
  m_Layer: 5
  m_Name: Sliding Area
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1056800080
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1056800079}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1850097301}
  m_Father: {fileID: 1083025691}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: -20, y: -20}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1083025690
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1083025691}
  - component: {fileID: 1083025694}
  - component: {fileID: 1083025693}
  - component: {fileID: 1083025692}
  m_Layer: 5
  m_Name: Scrollbar Horizontal
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 0
--- !u!224 &1083025691
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1083025690}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1056800080}
  m_Father: {fileID: 1211844880}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: -17, y: 20}
  m_Pivot: {x: 0, y: 0}
--- !u!114 &1083025692
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1083025690}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 1850097302}
  m_HandleRect: {fileID: 1850097301}
  m_Direction: 0
  m_Value: 1
  m_Size: 1
  m_NumberOfSteps: 0
  m_OnValueChanged:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &1083025693
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1083025690}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1083025694
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1083025690}
  m_CullTransparentMesh: 0
--- !u!1 &1211844879
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1211844880}
  - component: {fileID: 1211844883}
  - component: {fileID: 1211844882}
  - component: {fileID: 1211844881}
  m_Layer: 5
  m_Name: Scroll View
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1211844880
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1211844879}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 222335924}
  - {fileID: 1083025691}
  - {fileID: 1027899956}
  m_Father: {fileID: 148086143}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1211844881
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1211844879}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Content: {fileID: 1004805412}
  m_Horizontal: 0
  m_Vertical: 1
  m_MovementType: 1
  m_Elasticity: 0.1
  m_Inertia: 1
  m_DecelerationRate: 0.135
  m_ScrollSensitivity: 1
  m_Viewport: {fileID: 222335924}
  m_HorizontalScrollbar: {fileID: 1083025692}
  m_VerticalScrollbar: {fileID: 1027899957}
  m_HorizontalScrollbarVisibility: 0
  m_VerticalScrollbarVisibility: 0
  m_HorizontalScrollbarSpacing: -3
  m_VerticalScrollbarSpacing: -3
  m_OnValueChanged:
    m_PersistentCalls:
      m_Calls: []
--- !u!114 &1211844882
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1211844879}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1211844883
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1211844879}
  m_CullTransparentMesh: 0
--- !u!1 &1214493610
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1214493612}
  - component: {fileID: 1214493611}
  m_Layer: 0
  m_Name: Directional Light
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!108 &1214493611
Light:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1214493610}
  m_Enabled: 1
  serializedVersion: 10
  m_Type: 1
  m_Shape: 0
  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
  m_Intensity: 1
  m_Range: 10
  m_SpotAngle: 30
  m_InnerSpotAngle: 21.80208
  m_CookieSize: 10
  m_Shadows:
    m_Type: 2
    m_Resolution: -1
    m_CustomResolution: -1
    m_Strength: 1
    m_Bias: 0.05
    m_NormalBias: 0.4
    m_NearPlane: 0.2
    m_CullingMatrixOverride:
      e00: 1
      e01: 0
      e02: 0
      e03: 0
      e10: 0
      e11: 1
      e12: 0
      e13: 0
      e20: 0
      e21: 0
      e22: 1
      e23: 0
      e30: 0
      e31: 0
      e32: 0
      e33: 1
    m_UseCullingMatrixOverride: 0
  m_Cookie: {fileID: 0}
  m_DrawHalo: 0
  m_Flare: {fileID: 0}
  m_RenderMode: 0
  m_CullingMask:
    serializedVersion: 2
    m_Bits: 4294967295
  m_RenderingLayerMask: 1
  m_Lightmapping: 4
  m_LightShadowCasterMode: 0
  m_AreaSize: {x: 1, y: 1}
  m_BounceIntensity: 1
  m_ColorTemperature: 6570
  m_UseColorTemperature: 0
  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
  m_UseBoundingSphereOverride: 0
  m_ShadowRadius: 0
  m_ShadowAngle: 0
--- !u!4 &1214493612
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1214493610}
  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
  m_LocalPosition: {x: 0, y: 3, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1539422972
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1539422975}
  - component: {fileID: 1539422977}
  - component: {fileID: 1539422976}
  - component: {fileID: 1539422974}
  - component: {fileID: 1539422973}
  - component: {fileID: 1539422978}
  m_Layer: 5
  m_Name: Carousel View
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &1539422973
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 7ac5fc66c6bf74808a1fead45d9b1b43, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  cellInterval: 0.2
  scrollOffset: 0.5
  loop: 1
  cellContainer: {fileID: 1539422975}
  _scroller: {fileID: 1539422974}
  _cellPrefab: {fileID: 8968080924771193172, guid: 07f957860e6fb4856bfb31bb7dbb5541,
    type: 3}
  _cellSize: {x: 600, y: 300}
  _cellSpacing: 30
  _snapAnimationDuration: 0.25
  _snapAnimationType: 17
  _autoScrollingEnabled: 1
  _autoScrollingIntervalSec: 3
  _inverseAutoScrollingDirection: 0
  _progressView: {fileID: 0}
--- !u!114 &1539422974
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 93e8ff52edf1e4551a9383367d899f3d, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  viewport: {fileID: 1539422975}
  scrollDirection: 1
  movementType: 0
  elasticity: 0.1
  scrollSensitivity: 1
  inertia: 0
  decelerationRate: 0.03
  snap:
    Enable: 0
    VelocityThreshold: 0.5
    Duration: 0.3
    Easing: 24
  draggable: 1
  scrollbar: {fileID: 0}
--- !u!224 &1539422975
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 1004805412}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 1}
  m_AnchorMax: {x: 0, y: 1}
  m_AnchoredPosition: {x: 374.99997, y: -217.98}
  m_SizeDelta: {x: 750, y: 300}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1539422976
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 0}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1539422977
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_CullTransparentMesh: 0
--- !u!114 &1539422978
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1539422972}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 85aedb7fe77344521bcb21f230abd15a, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1 &1553209351
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1553209354}
  - component: {fileID: 1553209353}
  - component: {fileID: 1553209352}
  m_Layer: 0
  m_Name: EventSystem
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!114 &1553209352
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_HorizontalAxis: Horizontal
  m_VerticalAxis: Vertical
  m_SubmitButton: Submit
  m_CancelButton: Cancel
  m_InputActionsPerSecond: 10
  m_RepeatDelay: 0.5
  m_ForceModuleActive: 0
--- !u!114 &1553209353
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_FirstSelected: {fileID: 0}
  m_sendNavigationEvents: 1
  m_DragThreshold: 10
--- !u!4 &1553209354
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1553209351}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1850097300
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1850097301}
  - component: {fileID: 1850097303}
  - component: {fileID: 1850097302}
  m_Layer: 5
  m_Name: Handle
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1850097301
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1850097300}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 1056800080}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 20, y: 20}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1850097302
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1850097300}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!222 &1850097303
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1850097300}
  m_CullTransparentMesh: 0
--- !u!1 &2020594373
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2020594374}
  m_Layer: 5
  m_Name: Sliding Area
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &2020594374
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 2020594373}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 203296993}
  m_Father: {fileID: 1027899956}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: -20, y: -20}
  m_Pivot: {x: 0.5, y: 0.5}


================================================
FILE: Assets/Demo/Scenes/WithScrollViewDemo.unity.meta
================================================
fileFormatVersion: 2
guid: 8b680c169da4149b1a297879c8f59137
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scenes.meta
================================================
fileFormatVersion: 2
guid: 8cbde3d5203604c709c287e48bf8c87a
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scripts/Demo.cs
================================================
using System.Linq;
using UnityEngine;
using UnityEngine.UI;

namespace Demo.Scripts
{
    public class Demo : MonoBehaviour
    {
        [SerializeField] private DemoCarouselView _carouselView;
        [SerializeField] [Range(1, 3)] private int _bannerCount = 3;
        [SerializeField] private Button _setupButton;
        [SerializeField] private Button _cleanupButton;

        private bool _isSetup;

        private void Start()
        {
            _setupButton.onClick.AddListener(Setup);
            _cleanupButton.onClick.AddListener(Cleanup);

            Setup();
        }

        private void Setup()
        {
            if (_isSetup)
                return;

            var items = Enumerable.Range(0, _bannerCount)
                .Select(i =>
                {
                    var spriteResourceKey = $"tex_demo_banner_{i:D2}";
                    var text = $"Demo Banner {i:D2}";
                    return new DemoData(spriteResourceKey, text, () => Debug.Log($"Clicked: {text}"));
                })
                .ToArray();
            _carouselView.Setup(items);
            _isSetup = true;
        }

        private void Cleanup()
        {
            if (!_isSetup)
                return;

            _carouselView.Cleanup();
            _isSetup = false;
        }
    }
}


================================================
FILE: Assets/Demo/Scripts/Demo.cs.meta
================================================
fileFormatVersion: 2
guid: c81471d0f53e947b98e24b95bf6550e3
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scripts/DemoCarouselCell.cs
================================================
using FancyCarouselView.Runtime.Scripts;
using UnityEngine;
using UnityEngine.UI;

namespace Demo.Scripts
{
    public class DemoCarouselCell : CarouselCell<DemoData, DemoCarouselCell>
    {
        [SerializeField] private Image _image;
        [SerializeField] private Text _text;
        [SerializeField] private Button _button;

        private DemoData _data;

        protected override void Refresh(DemoData data)
        {
            _data = data;
            _image.sprite = Resources.Load<Sprite>(data.SpriteResourceKey);
            _text.text = data.Text;
        }

        protected override void OnVisibilityChanged(bool visibility)
        {
            if (visibility)
                _button.onClick.AddListener(OnClick);
            else
                _button.onClick.RemoveListener(OnClick);
        }

        private void OnClick()
        {
            _data?.Clicked?.Invoke();
        }
    }
}


================================================
FILE: Assets/Demo/Scripts/DemoCarouselCell.cs.meta
================================================
fileFormatVersion: 2
guid: 28a5bb785df764c9396f84b117e1f93f
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scripts/DemoCarouselView.cs
================================================
using FancyCarouselView.Runtime.Scripts;

namespace Demo.Scripts
{
    public class DemoCarouselView : CarouselView<DemoData, DemoCarouselCell>
    {
    }
}


================================================
FILE: Assets/Demo/Scripts/DemoCarouselView.cs.meta
================================================
fileFormatVersion: 2
guid: 7ac5fc66c6bf74808a1fead45d9b1b43
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scripts/DemoData.cs
================================================
using System;

namespace Demo.Scripts
{
    public class DemoData
    {
        public string SpriteResourceKey { get; }
        public string Text { get; }
        public Action Clicked { get; }

        public DemoData(string spriteResourceKey, string text, Action clicked)
        {
            SpriteResourceKey = spriteResourceKey;
            Text = text;
            Clicked = clicked;
        }
    }
}


================================================
FILE: Assets/Demo/Scripts/DemoData.cs.meta
================================================
fileFormatVersion: 2
guid: 8cb719b15a25c4e08bcee7f68e07877c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo/Scripts.meta
================================================
fileFormatVersion: 2
guid: 4bf9b07effb3c451aabb4d7a11e9476f
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Demo.meta
================================================
fileFormatVersion: 2
guid: 998c2781c67bd4fc48996faec98cb8ca
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef
================================================
{
    "name": "FancyCarouselView.Editor",
    "references": [
        "GUID:59f6770f7492c42ff827a64ac010ac49",
        "GUID:310eb4609be1c41459e5ebb1bde5ac5a",
        "GUID:508cd0edd40d740d38308988898213a3"
    ],
    "includePlatforms": [
        "Editor"
    ],
    "excludePlatforms": [],
    "allowUnsafeCode": false,
    "overrideReferences": false,
    "precompiledReferences": [],
    "autoReferenced": true,
    "defineConstraints": [],
    "versionDefines": [],
    "noEngineReferences": false
}

================================================
FILE: Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef.meta
================================================
fileFormatVersion: 2
guid: 4237a468895ff4622b504d121475cdfa
AssemblyDefinitionImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs
================================================
using FancyCarouselView.Runtime.Scripts;
using UnityEditor;
using UnityEngine;

namespace FancyCarouselView.Editor.Scripts
{
    /// <summary>
    ///     Custom editor for CarouselScroller
    /// </summary>
    [CustomEditor(typeof(CarouselScroller))]
    public class CarouselScrollerEditor : UnityEditor.Editor
    {
        public override void OnInspectorGUI()
        {
            var carouselScroller = (CarouselScroller)target;
            serializedObject.Update();

            var viewportProp = serializedObject.FindProperty("viewport");
            var scrollSensitivityProp = serializedObject.FindProperty("scrollSensitivity");
            var inertiaProp = serializedObject.FindProperty("inertia");
            var scrollbarProp = serializedObject.FindProperty("scrollbar");
            var snapEnableProp = serializedObject.FindProperty("snap.Enable");

            // NOTE: The following parameters are controlled by CarouselViewEditor, so not do anything here.
            // scrollDirection, movementType, elasticity, draggable

            if (viewportProp.objectReferenceValue == null)
            {
                viewportProp.objectReferenceValue = (RectTransform)carouselScroller.transform;
            }

            inertiaProp.boolValue = false;
            snapEnableProp.boolValue = false;
            scrollSensitivityProp.floatValue = 1.0f;
            scrollbarProp.objectReferenceValue = null;

            serializedObject.ApplyModifiedProperties();
        }
    }
}

================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs.meta
================================================
fileFormatVersion: 2
guid: 03d5e2634b8494c2981fd527ae259f7c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs
================================================
using System;
using FancyCarouselView.Runtime.Scripts;
using FancyScrollView;
using UnityEditor;
using UnityEngine;

namespace FancyCarouselView.Editor.Scripts
{
    /// <summary>
    ///     Custom editor for the CarouselView.
    /// </summary>
    [CustomEditor(typeof(CarouselView<,>), true)]
    public class CarouselViewEditor : UnityEditor.Editor
    {
        public override void OnInspectorGUI()
        {
            var targetBehaviour = (MonoBehaviour)target;
            var carouselScroller = targetBehaviour.gameObject.GetComponent<CarouselScroller>();
            serializedObject.Update();
            var carouselScrollerSo = new SerializedObject(carouselScroller);

            var offsetProp = serializedObject.FindProperty("scrollOffset");
            var loopProp = serializedObject.FindProperty("loop");
            var cellContainerProp = serializedObject.FindProperty("cellContainer");
            var scrollerProp = serializedObject.FindProperty("_scroller");
            var cellPrefabProp = serializedObject.FindProperty("_cellPrefab");
            var cellSizeProp = serializedObject.FindProperty("_cellSize");
            var cellSpacingProp = serializedObject.FindProperty("_cellSpacing");
            var snapAnimationDurationProp = serializedObject.FindProperty("_snapAnimationDuration");
            var snapAnimationTypeProp = serializedObject.FindProperty("_snapAnimationType");
            var autoScrollingProp = serializedObject.FindProperty("_autoScrollingEnabled");
            var autoScrollingIntervalSecProp = serializedObject.FindProperty("_autoScrollingIntervalSec");
            var inverseAutoScrollingDirectionProp = serializedObject.FindProperty("_inverseAutoScrollingDirection");
            var progressView = serializedObject.FindProperty("_progressView");
            var progressViewInteraction = serializedObject.FindProperty("_progressViewInteraction");
            var csMovementTypeProp = carouselScrollerSo.FindProperty("movementType");
            var csScrollDirectionProp = carouselScrollerSo.FindProperty("scrollDirection");
            var csDraggableProp = carouselScrollerSo.FindProperty("draggable");

            // NOTE: CellInterval is calculated at runtime, so hide it from the Inspector.

            offsetProp.floatValue = 0.5f;
            scrollerProp.objectReferenceValue = carouselScroller;

            EditorGUILayout.PropertyField(cellContainerProp);
            EditorGUILayout.PropertyField(cellPrefabProp);
            EditorGUILayout.PropertyField(cellSizeProp);
            EditorGUILayout.PropertyField(cellSpacingProp);
            EditorGUILayout.PropertyField(snapAnimationDurationProp);
            EditorGUILayout.PropertyField(snapAnimationTypeProp);
            EditorGUILayout.PropertyField(autoScrollingProp, new GUIContent("Auto Scrolling"));
            if (autoScrollingProp.boolValue)
            {
                EditorGUI.indentLevel++;
                EditorGUILayout.PropertyField(autoScrollingIntervalSecProp, new GUIContent("Interval"));
                EditorGUILayout.PropertyField(inverseAutoScrollingDirectionProp, new GUIContent("Inverse Direction"));
                EditorGUI.indentLevel--;
            }

            EditorGUILayout.PropertyField(csScrollDirectionProp);

            EditorGUILayout.PropertyField(loopProp);
            var movementType = (MovementType)csMovementTypeProp.intValue;
            if (loopProp.boolValue)
            {
                // If loop is enabled, force the movementType to Unrestricted. 
                csMovementTypeProp.intValue = (int)MovementType.Unrestricted;
            }
            else
            {
                if (movementType == MovementType.Unrestricted)
                {
                    // If loop is disabled and movementType is Unrestricted, force the movementType to Elastic for now.
                    csMovementTypeProp.intValue = (int)MovementType.Elastic;
                    movementType = (MovementType)csMovementTypeProp.intValue;
                }

                using (new EditorGUI.IndentLevelScope())
                {
                    var endMovementType = (EndMovementType)movementType;
                    csMovementTypeProp.intValue =
                        Convert.ToInt32(EditorGUILayout.EnumPopup("Movement Type", endMovementType));
                }
            }

            EditorGUILayout.PropertyField(csDraggableProp);
            EditorGUILayout.PropertyField(progressView);
            using (new EditorGUI.IndentLevelScope())
            {
                EditorGUILayout.PropertyField(progressViewInteraction, new GUIContent("Clickable"));
            }

            carouselScrollerSo.ApplyModifiedProperties();
            carouselScrollerSo.Dispose();
            serializedObject.ApplyModifiedProperties();
        }
    }
}


================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs.meta
================================================
fileFormatVersion: 2
guid: e5955c9c414044577b12dda85dda441d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs
================================================
using FancyCarouselView.Runtime.Scripts;
using UnityEditor;
using UnityEngine.UI;

namespace FancyCarouselView.Editor.Scripts
{
    [CustomEditor(typeof(DotCarouselProgressView))]
    public class DotCarouselProgressViewEditor : UnityEditor.Editor
    {
        public override void OnInspectorGUI()
        {
            var dotCarouselProgressView = (DotCarouselProgressView)target;
            base.OnInspectorGUI();

            if (dotCarouselProgressView.GetComponent<HorizontalLayoutGroup>() == null &&
                dotCarouselProgressView.GetComponent<VerticalLayoutGroup>() == null)
            {
                var message =
                    $"{nameof(DotCarouselProgressView)} requires {nameof(HorizontalLayoutGroup)} or {nameof(VerticalLayoutGroup)}.";
                EditorGUILayout.HelpBox(message, MessageType.Error);
            }
        }
    }
}

================================================
FILE: Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs.meta
================================================
fileFormatVersion: 2
guid: f7722779df1ef4b8c9274060eee5803e
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor/Scripts.meta
================================================
fileFormatVersion: 2
guid: a0f8946a9e14e4141932db7384e8393c
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Editor.meta
================================================
fileFormatVersion: 2
guid: f2c2e8f402e354b5a83d620304a3518c
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef
================================================
{
    "name": "FancyCarouselView",
    "references": [
        "GUID:59f6770f7492c42ff827a64ac010ac49"
    ],
    "includePlatforms": [],
    "excludePlatforms": [],
    "allowUnsafeCode": false,
    "overrideReferences": false,
    "precompiledReferences": [],
    "autoReferenced": true,
    "defineConstraints": [],
    "versionDefines": [],
    "noEngineReferences": false
}

================================================
FILE: Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef.meta
================================================
fileFormatVersion: 2
guid: 508cd0edd40d740d38308988898213a3
AssemblyDefinitionImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4104172994114863044
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 3087972215184282101}
  - component: {fileID: 7864125402320758684}
  - component: {fileID: 5558453293591899642}
  - component: {fileID: 8322769320186498922}
  - component: {fileID: -4403850070855006380}
  m_Layer: 5
  m_Name: pfb_default_carousel_progress_element
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &3087972215184282101
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4104172994114863044}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 20, y: 20}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7864125402320758684
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4104172994114863044}
  m_CullTransparentMesh: 0
--- !u!114 &5558453293591899642
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4104172994114863044}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 017ef9d77d979469382c91c9fa2a9980, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!114 &8322769320186498922
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4104172994114863044}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 94de8ebe798ee47fcab93af25a89c863, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  _image: {fileID: 5558453293591899642}
  _activeColor: {r: 0, g: 0, b: 0, a: 1}
  _deactiveColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
  _button: {fileID: -4403850070855006380}
--- !u!114 &-4403850070855006380
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4104172994114863044}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Navigation:
    m_Mode: 3
    m_SelectOnUp: {fileID: 0}
    m_SelectOnDown: {fileID: 0}
    m_SelectOnLeft: {fileID: 0}
    m_SelectOnRight: {fileID: 0}
  m_Transition: 0
  m_Colors:
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
    m_ColorMultiplier: 1
    m_FadeDuration: 0.1
  m_SpriteState:
    m_HighlightedSprite: {fileID: 0}
    m_PressedSprite: {fileID: 0}
    m_SelectedSprite: {fileID: 0}
    m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
    m_NormalTrigger: Normal
    m_HighlightedTrigger: Highlighted
    m_PressedTrigger: Pressed
    m_SelectedTrigger: Selected
    m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 5558453293591899642}
  m_OnClick:
    m_PersistentCalls:
      m_Calls: []


================================================
FILE: Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab.meta
================================================
fileFormatVersion: 2
guid: 2676e288b8c1b44bdb3aeb4168f32a2c
PrefabImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5609355829170890581
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 5609355829170890578}
  - component: {fileID: 5609355829170890579}
  - component: {fileID: 5609355829170890576}
  m_Layer: 5
  m_Name: Carousel Progress View
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &5609355829170890578
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5609355829170890581}
  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0.5, y: 0.5}
  m_AnchorMax: {x: 0.5, y: 0.5}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 750, y: 30}
  m_Pivot: {x: 0.5, y: 0}
--- !u!114 &5609355829170890579
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5609355829170890581}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: d1686675fc52e4c6da26d2cd3ea79921, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  progressElementPrefab: {fileID: 8322769320186498922, guid: 2676e288b8c1b44bdb3aeb4168f32a2c,
    type: 3}
--- !u!114 &5609355829170890576
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5609355829170890581}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  m_Padding:
    m_Left: 0
    m_Right: 0
    m_Top: 0
    m_Bottom: 0
  m_ChildAlignment: 4
  m_Spacing: 10
  m_ChildForceExpandWidth: 0
  m_ChildForceExpandHeight: 0
  m_ChildControlWidth: 0
  m_ChildControlHeight: 0
  m_ChildScaleWidth: 0
  m_ChildScaleHeight: 0


================================================
FILE: Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab.meta
================================================
fileFormatVersion: 2
guid: 4e95dd339e71b40aa8e0269426c1dd21
PrefabImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Prefabs.meta
================================================
fileFormatVersion: 2
guid: 5ee7c0026d5c6474584118d2f0ff9fea
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs
================================================
using System;
using System.Collections;
using EasingCore;
using UnityEngine;
using UnityEngine.Assertions;

namespace FancyCarouselView.Runtime.Scripts
{
    internal static class AnimationUtils
    {
        public static IEnumerator CreateFloatAnimationRoutine(float from, float to, float duration, Ease easeType,
            Action<float> onValueChanged, Action onComplete)
        {
            Assert.IsTrue(duration > 0);

            var time = 0.0f;

            while (true)
            {
                time = Mathf.Clamp(time, 0.0f, duration);
                var progress = time / duration;
                progress = Easing.Get(easeType).Invoke(progress);
                var value = Mathf.Lerp(from, to, progress);
                onValueChanged?.Invoke(value);
                if (time >= duration)
                {
                    break;
                }

                yield return null;
                time += Time.deltaTime;
            }

            onComplete?.Invoke();
        }
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs.meta
================================================
fileFormatVersion: 2
guid: d19e23c008f3d4c7d8ad917b8af5225d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs
================================================
using FancyScrollView;
using UnityEngine;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Base class for the cell of the <see cref="CarouselView{TData,TCell}" />.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public abstract class CarouselCell<TData, TCell> : FancyCell<TData, CarouselContext<TData, TCell>>
        where TCell : CarouselCell<TData, TCell>
    {
        /// <summary>
        ///     Refresh the cell based on the <see cref="itemData" />.
        /// </summary>
        /// <param name="itemData"></param>
        protected abstract void Refresh(TData itemData);

        /// <summary>
        ///     This method will be called after the visibility of the cell is changed.
        /// </summary>
        /// <param name="visibility"></param>
        protected virtual void OnVisibilityChanged(bool visibility)
        {
        }

        /// <summary>
        ///     <para>This method will be called after the cell is initialized.</para>
        ///     <para>Override this method if you want to write the process when the cell is instantiated.</para>
        /// </summary>
        protected virtual void OnInitialized()
        {
        }

        /// <summary>
        ///     <para>This method will be called after the position of the cell is changed.</para>
        ///     <para>Override this method if you want to customize the movement of the cell.</para>
        /// </summary>
        /// <param name="position"></param>
        protected virtual void OnPositionUpdated(float position)
        {
        }

        public override void UpdateContent(TData itemData)
        {
            Refresh(itemData);
            Context.CarouselCellRefreshedDelegate?.Invoke((TCell)this, itemData);
        }

        public override void SetVisible(bool visibility)
        {
            if (gameObject.activeSelf == visibility)
            {
                return;
            }

            gameObject.SetActive(visibility);

            OnVisibilityChanged(visibility);

            Context.CarouselCellVisibilityChanged?.Invoke((TCell)this, visibility);
        }

        public override void Initialize()
        {
            var rectTrans = (RectTransform)transform;
            var anchorMin = rectTrans.anchorMin;
            var anchorMax = rectTrans.anchorMax;
            var pivot = rectTrans.pivot;
            rectTrans.anchorMin = Vector2.one * 0.5f;
            rectTrans.anchorMax = Vector2.one * 0.5f;
            rectTrans.pivot = Vector2.one * 0.5f;
            rectTrans.sizeDelta = Context.CellSize;
            rectTrans.anchorMin = anchorMin;
            rectTrans.anchorMax = anchorMax;
            rectTrans.pivot = pivot;

            OnInitialized();

            Context.CarouselCellInstantiated?.Invoke((TCell)this);
        }

        public override void UpdatePosition(float position)
        {
            var pos = transform.localPosition;
            if (Context.ScrollDirection == ScrollDirection.Horizontal)
            {
                pos.x = Mathf.Lerp(-Context.CarouselSize, Context.CarouselSize, position);
            }
            else
            {
                pos.y = Mathf.Lerp(Context.CarouselSize, -Context.CarouselSize, position);
            }

            transform.localPosition = pos;

            OnPositionUpdated(position);
        }
    }
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs.meta
================================================
fileFormatVersion: 2
guid: c599b360db88a414e92999489bad4f2f
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs
================================================
using FancyScrollView;
using UnityEngine;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Data container shared between <see cref="CarouselView{TData,TCell}" /> and <see cref="CarouselCell{TData,TCell}" />
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public sealed class CarouselContext<TData, TCell> where TCell : CarouselCell<TData, TCell>
    {
        /// <summary>
        ///     Delegate called when the carousel cell is instantiated.
        /// </summary>
        public CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated;

        /// <summary>
        ///     Delegate called when the carousel cell is refreshed.
        /// </summary>
        public CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshedDelegate;

        /// <summary>
        ///     Delegate called when the visibility of the carousel cell is changed.
        /// </summary>
        public CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged;

        /// <summary>
        ///     Size of the carousel view.
        /// </summary>
        public float CarouselSize { get; set; }

        /// <summary>
        ///     Size of the carousel cell.
        /// </summary>
        public Vector2 CellSize { get; set; }

        /// <summary>
        ///     Scroll direction.
        /// </summary>
        public ScrollDirection ScrollDirection { get; set; }
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs.meta
================================================
fileFormatVersion: 2
guid: 894ccca287a714e69b7c602873e5b6a7
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs
================================================
using System;
using UnityEngine;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     View that shows the progress of the carousel view.
    /// </summary>
    public abstract class CarouselProgressView : MonoBehaviour
    {
        /// <summary>
        ///     Set up.
        /// </summary>
        /// <param name="elementCount"></param>
        public abstract void Setup(int elementCount);

        /// <summary>
        ///     Set the active data index.
        /// </summary>
        /// <param name="elementIndex"></param>
        public abstract void SetActiveIndex(int elementIndex);
    }

    public abstract class ClickableCarouselProgressView : CarouselProgressView
    {
        /// <summary>
        ///     Event called when the element of the carousel is clicked.
        /// </summary>
        public abstract event Action<int> ElementClicked;
    }
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs.meta
================================================
fileFormatVersion: 2
guid: 38e06e7f07d2a42e4b2566ddfe11b75a
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs
================================================
using FancyScrollView;
using UnityEditor;
using UnityEngine;

namespace FancyCarouselView.Runtime.Scripts
{
    [DisallowMultipleComponent]
    public sealed class CarouselScroller : Scroller
    {
#if UNITY_EDITOR
        protected override void Reset()
        {
            base.Reset();

            // Set the initial values when this component is attached or reset.
            SetInitialValues();
        }

        private void SetInitialValues()
        {
            var so = new SerializedObject(this);
            so.Update();

            so.FindProperty("scrollDirection").intValue = (int)ScrollDirection.Horizontal;
            Draggable = true;

            so.ApplyModifiedProperties();
            so.Dispose();
        }
#endif
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs.meta
================================================
fileFormatVersion: 2
guid: 93e8ff52edf1e4551a9383367d899f3d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using EasingCore;
using FancyScrollView;
using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Base class for the carousel view.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    [RequireComponent(typeof(CarouselScroller))]
    [RequireComponent(typeof(Image))]
    [DisallowMultipleComponent]
    public abstract class CarouselView<TData, TCell> : FancyScrollView<TData, CarouselContext<TData, TCell>>,
        ICarouselView<TData, TCell>, IBeginDragHandler, IDragHandler,
        IEndDragHandler where TCell : CarouselCell<TData, TCell>
    {
        private const float FlickThreshold = 3.0f;

        [SerializeField] private Scroller _scroller;
        [SerializeField] private TCell _cellPrefab;
        [SerializeField] private Vector2 _cellSize = new Vector2(100, 100);
        [SerializeField] private float _cellSpacing = 30.0f;
        [SerializeField] private float _snapAnimationDuration = 0.2f;
        [SerializeField] private Ease _snapAnimationType = Ease.OutQuad;
        [SerializeField] private bool _autoScrollingEnabled;
        [SerializeField] private float _autoScrollingIntervalSec = 3.0f;
        [SerializeField] private bool _inverseAutoScrollingDirection;
        [SerializeField] private CarouselProgressView _progressView;
        [SerializeField] private bool _progressViewInteraction;
        private int _activeCellIndex = -1;
        private Coroutine _autoScrollCoroutine;
        private bool _scrollerDraggableCache;
        private Coroutine _scrollCoroutine;

        protected override GameObject CellPrefab => _cellPrefab.gameObject;

        public Scroller Scroller
        {
            get => _scroller;
            set => _scroller = value;
        }

        public TCell CellPrefabInternal
        {
            get => _cellPrefab;
            set => _cellPrefab = value;
        }

        public Vector2 CellSize
        {
            get => _cellSize;
            set => _cellSize = value;
        }

        public float CellSpacing
        {
            get => _cellSpacing;
            set => _cellSpacing = value;
        }

        public float SnapAnimationDuration
        {
            get => _snapAnimationDuration;
            set => _snapAnimationDuration = value;
        }

        public Ease SnapAnimationType
        {
            get => _snapAnimationType;
            set => _snapAnimationType = value;
        }

        public bool AutoScrollingEnabled
        {
            get => _autoScrollingEnabled;
            set => _autoScrollingEnabled = value;
        }

        public float AutoScrollingIntervalSec
        {
            get => _autoScrollingIntervalSec;
            set => _autoScrollingIntervalSec = value;
        }

        public bool InverseAutoScrollingDirection
        {
            get => _inverseAutoScrollingDirection;
            set => _inverseAutoScrollingDirection = value;
        }

        public CarouselProgressView ProgressView
        {
            get => _progressView;
            set => _progressView = value;
        }

        public bool ProgressViewInteraction
        {
            get => _progressViewInteraction;
            set => _progressViewInteraction = value;
        }

        private int ActiveCellPosition => Mathf.RoundToInt(_scroller.Position);

        private void OnEnable()
        {
            if (_progressView != null) 
                ActiveCellChanged += _progressView.SetActiveIndex;
            
            if (_autoScrollingEnabled) 
                StartAutoScrolling();
        }

        private void OnDisable()
        {
            if (_progressView != null) 
                ActiveCellChanged -= _progressView.SetActiveIndex;
            
            if (IsAutoScrolling)
                StopAutoScrolling();
            
            if (IsScrolling)
                StopScrolling();
            
            _scroller.Position = GetCircularPosition(ActiveCellPosition);
        }

        void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
        {
            // If the scroller draggable is set to false, do nothing.
            if (!_scroller.Draggable)
                return;

            // On mobile device, by using two fingers, it is possible to trigger this method twice before OnEndDrag.
            // So to ignore second finger, do nothing if _draggingPinterId has already been set.
            if (_draggingPinterId != -1)
                return;

            _scrollerDraggableCache = _scroller.Draggable;
            _draggingPinterId = eventData.pointerId;

            var isInvalidDragging = false;
            isInvalidDragging |= _scroller.ScrollDirection == ScrollDirection.Vertical &&
                                 Math.Abs(eventData.delta.x) > Math.Abs(eventData.delta.y);
            isInvalidDragging |= _scroller.ScrollDirection == ScrollDirection.Horizontal &&
                                 Math.Abs(eventData.delta.x) < Math.Abs(eventData.delta.y);
            if (isInvalidDragging)
            {
                // If the drag direction is invalid, prevent the scroller from responding to the drag event.
                // This flag will be reset to _scrollerDraggableCache in OnEndDrag.
                _scroller.Draggable = false;
                return;
            }

            if (IsScrolling)
                StopScrolling();

            if (IsAutoScrolling)
                StopAutoScrolling();
        }

        public ActiveCellChangedDelegate ActiveCellChanged { get; set; }

        public CarouselDataChangedDelegate DataChanged { get; set; }

        public CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated { get; set; }

        public CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshed { get; set; }

        public CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged { get; set; }

        public int DataCount { get; private set; }

        public bool IsScrolling => _scrollCoroutine != null;

        public bool IsAutoScrolling => _autoScrollCoroutine != null;

        public bool IsDragging => _draggingPinterId != -1;

        private int _draggingPinterId = -1;

        public bool Draggable => _scroller.Draggable;

        public int ActiveCellIndex => (int)GetCircularPosition(ActiveCellPosition);

        public ScrollDirection ScrollDirection => _scroller.ScrollDirection;

        void ICarouselView<TData, TCell>.Setup(IList<TData> dataList)
        {
            Setup((IReadOnlyList<TData>)dataList);
        }

        public void Setup(IReadOnlyList<TData> dataList)
        {
            DataCount = dataList.Count;

            // FancyScrollView only accepts IList, so if it can be converted to IList, convert it, and if it cannot be converted, create a new List.
            var list = dataList as IList<TData> ?? dataList.ToList();

            UpdateContents(list);
            _scroller.SetTotalCount(DataCount);
            _scroller.Position = 0;
            DataChanged?.Invoke();
            if (_progressView != null)
                _progressView.Setup(DataCount);
        }

        public void Cleanup()
        {
            Setup(Array.Empty<TData>());
        }

        public void ScrollToBefore(float duration, Ease easeType, Action onComplete = null)
        {
            var position = ActiveCellPosition - 1;
            if (!loop) position = Mathf.Max(0, position);
            ScrollTo(position, duration, easeType, onComplete);
        }

        public void ScrollToAfter(float duration, Ease easeType, Action onComplete = null)
        {
            var position = ActiveCellPosition + 1;
            if (!loop) position = Mathf.Min(DataCount - 1, position);
            ScrollTo(position, duration, easeType, onComplete);
        }

        public void ScrollTo(float position, float duration, Ease easeType, Action onComplete = null)
        {
            if (duration <= 0f)
            {
                onComplete?.Invoke();
                return;
            }

            if (IsScrolling)
                StopScrolling();

            var animationRoutine = ScrollRoutine(position, duration, easeType,
                () =>
                {
                    _scrollCoroutine = null;
                    onComplete?.Invoke();
                });
            _scrollCoroutine = StartCoroutine(animationRoutine);
        }

        void IDragHandler.OnDrag(PointerEventData eventData)
        {
        }

        void IEndDragHandler.OnEndDrag(PointerEventData eventData)
        {
            // If the scroller draggable is false before OnBeginDrag, do nothing.
            if (!_scrollerDraggableCache)
                return;

            // If the pointer id is not the same as the one when the drag started, do nothing.
            // This is possible when using two fingers on mobile devices.
            if (_draggingPinterId != eventData.pointerId)
                return;

            var pos1 = Mathf.FloorToInt(_scroller.Position);
            var pos2 = Mathf.CeilToInt(_scroller.Position);
            if (!loop)
            {
                pos1 = Mathf.Max(0, pos1);
                pos2 = Mathf.Min(DataCount - 1, pos2);
            }

            float position;
            var deltaX = ScrollDirection == ScrollDirection.Horizontal ? eventData.delta.x : eventData.delta.y;
            if (deltaX < -FlickThreshold)
                position = ScrollDirection == ScrollDirection.Horizontal ? pos2 : pos1;
            else if (deltaX > FlickThreshold)
                position = ScrollDirection == ScrollDirection.Horizontal ? pos1 : pos2;
            else
                position = ActiveCellPosition;

            ScrollTo(position, _snapAnimationDuration, _snapAnimationType);
            if (_autoScrollingEnabled)
                StartAutoScrolling();

            _scroller.Draggable = _scrollerDraggableCache;
            _draggingPinterId = -1;
        }

        private void OnProgressViewElementClicked(int index)
        {
            if (!_progressViewInteraction)
                return;

            if (IsAutoScrolling)
                StopAutoScrolling();

            ScrollTo(index, _snapAnimationDuration, _snapAnimationType, () =>
            {
                if (_autoScrollingEnabled)
                    StartAutoScrolling();
            });
        }

        private void StartAutoScrolling()
        {
            if (IsAutoScrolling)
                StopAutoScrolling();

            _autoScrollCoroutine = StartCoroutine(AutoScrollRoutine());
        }

        private IEnumerator AutoScrollRoutine()
        {
            while (true)
            {
                yield return new WaitForSeconds(_autoScrollingIntervalSec);
                var beforeScrollPosition = ActiveCellPosition - 1;
                var afterScrollPosition = ActiveCellPosition + 1;
                if (!loop)
                {
                    beforeScrollPosition = Mathf.Max(0, beforeScrollPosition);
                    afterScrollPosition = Mathf.Min(DataCount - 1, afterScrollPosition);
                }

                var position = _inverseAutoScrollingDirection ? beforeScrollPosition : afterScrollPosition;
                yield return ScrollRoutine(position, _snapAnimationDuration, _snapAnimationType);
            }
        }

        private IEnumerator ScrollRoutine(float position, float duration, Ease easeType, Action onComplete = null)
        {
            return AnimationUtils.CreateFloatAnimationRoutine(_scroller.Position, position, duration, easeType,
                x => { _scroller.Position = x; },
                () =>
                {
                    _scroller.Position = GetCircularPosition(position);
                    onComplete?.Invoke();
                });
        }

        protected override void Initialize()
        {
            if (cellContainer == null) cellContainer = transform;

            var rectTrans = (RectTransform)cellContainer.transform;
            var carouselSize = _scroller.ScrollDirection == ScrollDirection.Horizontal
                ? rectTrans.rect.width
                : rectTrans.rect.height;
            var intervalPerPx = 0.5f / carouselSize;
            var cellSize = _scroller.ScrollDirection == ScrollDirection.Horizontal ? _cellSize.x : _cellSize.y;
            var zeroSpacingInterval = 0.5f - (carouselSize - cellSize) * intervalPerPx;
            cellInterval = zeroSpacingInterval + intervalPerPx * _cellSpacing;

            Context.CarouselSize = carouselSize;
            Context.CellSize = _cellSize;
            Context.ScrollDirection = _scroller.ScrollDirection;
            Context.CarouselCellInstantiated += cell => CarouselCellInstantiated?.Invoke(cell);
            Context.CarouselCellVisibilityChanged += (cell, visible) => CarouselCellVisibilityChanged?.Invoke(cell, visible);
            Context.CarouselCellRefreshedDelegate += (cell, visible) => CarouselCellRefreshed?.Invoke(cell, visible);

            _activeCellIndex = ActiveCellIndex;
            ActiveCellChanged?.Invoke(ActiveCellIndex);
            _scroller.OnValueChanged(OnScrolled);

            if (_autoScrollingEnabled) StartAutoScrolling();

            if (_progressView != null && _progressView is ClickableCarouselProgressView clickableView)
                clickableView.ElementClicked += OnProgressViewElementClicked;
        }

        private void OnScrolled(float position)
        {
            UpdatePosition(position);

            if (_activeCellIndex != ActiveCellIndex)
            {
                _activeCellIndex = ActiveCellIndex;
                ActiveCellChanged?.Invoke(ActiveCellIndex);
            }
        }

        private void StopScrolling()
        {
            if (!IsScrolling) return;

            StopCoroutine(_scrollCoroutine);
            _scrollCoroutine = null;
        }

        private void StopAutoScrolling()
        {
            if (!IsAutoScrolling) return;

            StopCoroutine(_autoScrollCoroutine);
            _autoScrollCoroutine = null;
        }

        private float GetCircularPosition(float position)
        {
            var size = DataCount;
            return size < 1 ? 0 : position < 0 ? size - 1 + (position + 1) % size : position % size;
        }
#if UNITY_EDITOR

        private void Reset()
        {
            loop = true;
            GetComponent<Image>().color = Color.clear;
            if (cellContainer == null) cellContainer = transform;
        }

        private void OnDrawGizmos()
        {
            if (cellContainer != null && _scroller != null) DrawCellRect();
        }

        private void DrawCellRect()
        {
            var isHorizontal = ScrollDirection == ScrollDirection.Horizontal;
            var cellContainerTrans = cellContainer.transform;
            var cellRect = new Rect
            {
                size = _cellSize,
                center = Vector2.zero
            };
            var color = Color.white;
            color.a = 0.25f;
            var outlineColor = Color.clear;
            var pos = cellContainerTrans.position;
            var q = Quaternion.identity;
            var s = cellContainerTrans.lossyScale;
            var handlesMatrix = Handles.matrix;
            Handles.matrix = Matrix4x4.TRS(pos, q, s);
            Handles.DrawSolidRectangleWithOutline(cellRect, color, outlineColor);
            Handles.matrix = handlesMatrix;
        }

#endif
    }
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs.meta
================================================
fileFormatVersion: 2
guid: 7baec707322b84341a3ff1ac20164a86
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs
================================================
namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Delegate called when the active cell is changed.
    /// </summary>
    public delegate void ActiveCellChangedDelegate(int cellIndex);

    /// <summary>
    ///     Delegate called when the data of the carousel view is updated.
    /// </summary>
    public delegate void CarouselDataChangedDelegate();

    /// <summary>
    ///     Delegate called when the carousel cell is instantiated.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public delegate void CarouselCellInstantiatedDelegate<TData, TCell>(TCell cell)
        where TCell : CarouselCell<TData, TCell>;

    /// <summary>
    ///     Delegate called when the visibility of the carousel cell is changed.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public delegate void CarouselCellVisibilityChangedDelegate<TData, TCell>(TCell cell, bool visibility)
        where TCell : CarouselCell<TData, TCell>;

    /// <summary>
    ///     Delegate called shen the carousel cell is refreshed.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public delegate void CarouselCellRefreshedDelegate<TData, TCell>(TCell cell, TData data)
        where TCell : CarouselCell<TData, TCell>;
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs.meta
================================================
fileFormatVersion: 2
guid: 8ed85712bc3e940fa860a26e5bc90165
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs
================================================
using System;
using UnityEngine;
using UnityEngine.UI;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Element of the <see cref="DotCarouselProgressView" />.
    /// </summary>
    public sealed class DotCarouselProgressElement : MonoBehaviour
    {
        [SerializeField] private Image _image;
        [SerializeField] private Color _activeColor = Color.white;
        [SerializeField] private Color _deactiveColor = Color.grey;
        [SerializeField] private Button _button;

        /// <summary>
        ///     Active or not.
        /// </summary>
        public bool IsActive { get; private set; }

        public Button Button => _button;

        /// <summary>
        ///     Set whether or not it is active.
        /// </summary>
        /// <param name="isActive"></param>
        public void SetActive(bool isActive)
        {
            _image.color = isActive ? _activeColor : _deactiveColor;
            IsActive = isActive;
        }
    }
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs.meta
================================================
fileFormatVersion: 2
guid: 94de8ebe798ee47fcab93af25a89c863
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs
================================================
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     View that represents the progress of the carousel view with dots.
    /// </summary>
    public sealed class DotCarouselProgressView : ClickableCarouselProgressView
    {
        [SerializeField] private DotCarouselProgressElement progressElementPrefab;
        private int _activeIndex = -1;

        private List<DotCarouselProgressElement> _progressElementInstances = new List<DotCarouselProgressElement>();

        public override event Action<int> ElementClicked;

        /// <summary>
        ///     Set up.
        /// </summary>
        /// <param name="elementCount"></param>
        /// <exception cref="InvalidOperationException"></exception>
        public override void Setup(int elementCount)
        {
            if (GetComponent<HorizontalLayoutGroup>() == null && GetComponent<VerticalLayoutGroup>() == null)
                throw new InvalidOperationException(
                    $"{nameof(DotCarouselProgressView)} requires {nameof(HorizontalLayoutGroup)} or {nameof(VerticalLayoutGroup)}. Make sure it is attached.");


            // Remove all instances if exists
            foreach (var instance in _progressElementInstances)
                Destroy(instance.gameObject);
            _progressElementInstances.Clear();

            _progressElementInstances = new List<DotCarouselProgressElement>(elementCount);
            for (var i = 0; i < elementCount; i++)
            {
                var index = i;
                var instance = Instantiate(progressElementPrefab, transform);
                instance.SetActive(false);
                instance.Button.onClick.AddListener(() => OnElementClicked(index));
                _progressElementInstances.Add(instance);
            }

            if (_activeIndex != -1) SetActiveIndex(_activeIndex);
        }

        /// <summary>
        ///     Set the active data index.
        /// </summary>
        /// <param name="elementIndex"></param>
        public override void SetActiveIndex(int elementIndex)
        {
            if (_activeIndex != -1 && _progressElementInstances.Count - 1 >= _activeIndex)
            {
                var instance = _progressElementInstances[_activeIndex];
                instance.SetActive(false);
            }

            if (_progressElementInstances.Count - 1 >= elementIndex)
            {
                var instance = _progressElementInstances[elementIndex];
                instance.SetActive(true);
            }

            _activeIndex = elementIndex;
        }

        private void OnElementClicked(int index)
        {
            ElementClicked?.Invoke(index);
        }
    }
}


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs.meta
================================================
fileFormatVersion: 2
guid: d1686675fc52e4c6da26d2cd3ea79921
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs
================================================
using FancyScrollView;

namespace FancyCarouselView.Runtime.Scripts
{
    public enum EndMovementType
    {
        Elastic = MovementType.Elastic,
        Clamped = MovementType.Clamped
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs.meta
================================================
fileFormatVersion: 2
guid: 46048a56dac2645a38cdb3a190a4ea03
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs
================================================
using System;
using System.Collections.Generic;
using EasingCore;
using FancyScrollView;

namespace FancyCarouselView.Runtime.Scripts
{
    /// <summary>
    ///     Interface of the carousel view (Non Generic).
    /// </summary>
    public interface ICarouselView
    {
        /// <summary>
        ///     Delegate called when the active cell is changed.
        /// </summary>
        ActiveCellChangedDelegate ActiveCellChanged { get; set; }

        /// <summary>
        ///     Delegate called when the data is updated.
        /// </summary>
        CarouselDataChangedDelegate DataChanged { get; set; }

        /// <summary>
        ///     Total count of the data.
        /// </summary>
        int DataCount { get; }

        /// <summary>
        ///     Return true if the carousel view is scrolling.
        /// </summary>
        bool IsScrolling { get; }

        /// <summary>
        ///     Return true if the carousel view is auto scrolling.
        /// </summary>
        bool IsAutoScrolling { get; }

        /// <summary>
        ///     Return true when the carousel view is being dragged.
        /// </summary>
        bool IsDragging { get; }

        /// <summary>
        ///     Draggable or not.
        /// </summary>
        bool Draggable { get; }

        /// <summary>
        ///     Index of the active cell.
        /// </summary>
        int ActiveCellIndex { get; }

        /// <summary>
        ///     Scroll direction.
        /// </summary>
        ScrollDirection ScrollDirection { get; }

        /// <summary>
        ///     Scroll to the before position.
        /// </summary>
        /// <param name="duration"></param>
        /// <param name="easeType"></param>
        /// <param name="onComplete"></param>
        void ScrollToBefore(float duration, Ease easeType, Action onComplete = null);

        /// <summary>
        ///     Scroll to the after position.
        /// </summary>
        /// <param name="duration"></param>
        /// <param name="easeType"></param>
        /// <param name="onComplete"></param>
        void ScrollToAfter(float duration, Ease easeType, Action onComplete = null);

        /// <summary>
        ///     Scroll to the specified position.
        /// </summary>
        /// <param name="position"></param>
        /// <param name="duration"></param>
        /// <param name="easeType"></param>
        /// <param name="onComplete"></param>
        void ScrollTo(float position, float duration, Ease easeType, Action onComplete = null);
    }

    /// <summary>
    ///     Interface of the carousel view.
    /// </summary>
    /// <typeparam name="TData"></typeparam>
    /// <typeparam name="TCell"></typeparam>
    public interface ICarouselView<TData, TCell> : ICarouselView where TCell : CarouselCell<TData, TCell>
    {
        /// <summary>
        ///     Delegate called when the cell is instantiated.
        /// </summary>
        CarouselCellInstantiatedDelegate<TData, TCell> CarouselCellInstantiated { get; set; }

        /// <summary>
        ///     Delegate called when the cell is refreshed.
        /// </summary>
        CarouselCellRefreshedDelegate<TData, TCell> CarouselCellRefreshed { get; set; }

        /// <summary>
        ///     Delegate called when the visibility of the cell is changed.
        /// </summary>
        CarouselCellVisibilityChangedDelegate<TData, TCell> CarouselCellVisibilityChanged { get; set; }

        /// <summary>
        ///     Set up the carousel view.
        /// </summary>
        /// <param name="dataList"></param>
        void Setup(IList<TData> dataList);
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs.meta
================================================
fileFormatVersion: 2
guid: 388e0f4cbd2d044abbc3240b15f755a8
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs
================================================
using System;
using System.Collections.Generic;
using FancyScrollView;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

namespace FancyCarouselView.Runtime.Scripts
{
    [RequireComponent(typeof(Scroller))]
    public class ScrollEventPropagator : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
    {
        private IEnumerable<IBeginDragHandler> _beginDragHandlers;
        private IEnumerable<IDragHandler> _dragHandlers;
        private IEnumerable<IEndDragHandler> _endDragHandlers;
        private bool _isEnabled;
        private Scroller _scroller;

        private void Start()
        {
            _scroller = GetComponent<Scroller>();
            var parentScrollRect = GetComponentInParent<ScrollRect>();
            if (parentScrollRect != null)
            {
                _beginDragHandlers = parentScrollRect.GetComponents<IBeginDragHandler>();
                _dragHandlers = parentScrollRect.GetComponents<IDragHandler>();
                _endDragHandlers = parentScrollRect.GetComponents<IEndDragHandler>();
            }
        }

        void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
        {
            if (_scroller.ScrollDirection == ScrollDirection.Vertical
                && Math.Abs(eventData.delta.x) > Math.Abs(eventData.delta.y))
            {
                _isEnabled = true;
            }
            else if (_scroller.ScrollDirection == ScrollDirection.Horizontal
                     && Math.Abs(eventData.delta.x) < Math.Abs(eventData.delta.y))
            {
                _isEnabled = true;
            }
            else
            {
                _isEnabled = false;
            }

            if (!_isEnabled || _beginDragHandlers == null)
            {
                return;
            }

            foreach (var handler in _beginDragHandlers)
            {
                handler.OnBeginDrag(eventData);
            }
        }

        void IDragHandler.OnDrag(PointerEventData eventData)
        {
            if (!_isEnabled || _dragHandlers == null)
            {
                return;
            }

            foreach (var handler in _dragHandlers)
            {
                handler.OnDrag(eventData);
            }
        }

        void IEndDragHandler.OnEndDrag(PointerEventData eventData)
        {
            if (!_isEnabled || _endDragHandlers == null)
            {
                return;
            }

            foreach (var handler in _endDragHandlers)
            {
                handler.OnEndDrag(eventData);
            }
        }
    }
}

================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs.meta
================================================
fileFormatVersion: 2
guid: 85aedb7fe77344521bcb21f230abd15a
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Scripts.meta
================================================
fileFormatVersion: 2
guid: 71dcd41f7c1754f8bbb8139976e7baf4
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Textures/tex_carousel_dot.png.meta
================================================
fileFormatVersion: 2
guid: 017ef9d77d979469382c91c9fa2a9980
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 11
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: -1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 1
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: 8
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  applyGammaDecoding: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: iPhone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 5e97eb03825dee720800000000000000
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime/Textures.meta
================================================
fileFormatVersion: 2
guid: 3f632718d609a4c6fac7a99a5779d2f4
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/Runtime.meta
================================================
fileFormatVersion: 2
guid: 6b05caa752ad84d078159f730dca44f7
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView/package.json
================================================
{
  "name": "com.harumak.fancycarouselview",
  "displayName": "FancyCarouselView",
  "version": "1.1.6",
  "unity": "2019.4",
  "license": "MIT",
  "dependencies": {
  },
  "author": {
    "name": "Haruki Yano",
    "url": "https://github.com/Haruma-K"
  },
  "type": "tool",
  "description": "Carousel View for Unity uGUI using Fancy Scroll View."
}


================================================
FILE: Assets/FancyCarouselView/package.json.meta
================================================
fileFormatVersion: 2
guid: 0e6ecae1128034cb3b9cb9fee998bdf1
TextScriptImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/FancyCarouselView.meta
================================================
fileFormatVersion: 2
guid: fc4067a7660f8471db62ddedaf734e17
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: LICENSE.md
================================================
Copyright 2021 Haruki Yano

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: Packages/manifest.json
================================================
{
  "dependencies": {
    "com.unity.collab-proxy": "1.17.2",
    "com.unity.ide.rider": "3.0.15",
    "com.unity.ide.visualstudio": "2.0.16",
    "com.unity.ide.vscode": "1.2.5",
    "com.unity.test-framework": "1.1.31",
    "com.unity.textmeshpro": "3.0.6",
    "com.unity.timeline": "1.4.8",
    "com.unity.ugui": "1.0.0",
    "jp.setchi.fancyscrollview": "https://github.com/setchi/FancyScrollView.git#upm",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.androidjni": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.cloth": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.terrain": "1.0.0",
    "com.unity.modules.terrainphysics": "1.0.0",
    "com.unity.modules.tilemap": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.vehicles": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.vr": "1.0.0",
    "com.unity.modules.wind": "1.0.0",
    "com.unity.modules.xr": "1.0.0"
  }
}


================================================
FILE: Packages/packages-lock.json
================================================
{
  "dependencies": {
    "com.unity.collab-proxy": {
      "version": "1.17.2",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.services.core": "1.0.1"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.ext.nunit": {
      "version": "1.0.6",
      "depth": 1,
      "source": "registry",
      "dependencies": {},
      "url": "https://packages.unity.com"
    },
    "com.unity.ide.rider": {
      "version": "3.0.15",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.ext.nunit": "1.0.6"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.ide.visualstudio": {
      "version": "2.0.16",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.test-framework": "1.1.9"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.ide.vscode": {
      "version": "1.2.5",
      "depth": 0,
      "source": "registry",
      "dependencies": {},
      "url": "https://packages.unity.com"
    },
    "com.unity.services.core": {
      "version": "1.0.1",
      "depth": 1,
      "source": "registry",
      "dependencies": {
        "com.unity.modules.unitywebrequest": "1.0.0"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.test-framework": {
      "version": "1.1.31",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.ext.nunit": "1.0.6",
        "com.unity.modules.imgui": "1.0.0",
        "com.unity.modules.jsonserialize": "1.0.0"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.textmeshpro": {
      "version": "3.0.6",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.ugui": "1.0.0"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.timeline": {
      "version": "1.4.8",
      "depth": 0,
      "source": "registry",
      "dependencies": {
        "com.unity.modules.director": "1.0.0",
        "com.unity.modules.animation": "1.0.0",
        "com.unity.modules.audio": "1.0.0",
        "com.unity.modules.particlesystem": "1.0.0"
      },
      "url": "https://packages.unity.com"
    },
    "com.unity.ugui": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.ui": "1.0.0",
        "com.unity.modules.imgui": "1.0.0"
      }
    },
    "jp.setchi.fancyscrollview": {
      "version": "https://github.com/setchi/FancyScrollView.git#upm",
      "depth": 0,
      "source": "git",
      "dependencies": {},
      "hash": "e5d10d3e5961848f93be43c2911344750b509a88"
    },
    "com.unity.modules.ai": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.androidjni": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.animation": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.assetbundle": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.audio": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.cloth": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.physics": "1.0.0"
      }
    },
    "com.unity.modules.director": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.audio": "1.0.0",
        "com.unity.modules.animation": "1.0.0"
      }
    },
    "com.unity.modules.imageconversion": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.imgui": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.jsonserialize": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.particlesystem": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.physics": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.physics2d": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.screencapture": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.imageconversion": "1.0.0"
      }
    },
    "com.unity.modules.subsystems": {
      "version": "1.0.0",
      "depth": 1,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.jsonserialize": "1.0.0"
      }
    },
    "com.unity.modules.terrain": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.terrainphysics": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.physics": "1.0.0",
        "com.unity.modules.terrain": "1.0.0"
      }
    },
    "com.unity.modules.tilemap": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.physics2d": "1.0.0"
      }
    },
    "com.unity.modules.ui": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.uielements": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.ui": "1.0.0",
        "com.unity.modules.imgui": "1.0.0",
        "com.unity.modules.jsonserialize": "1.0.0",
        "com.unity.modules.uielementsnative": "1.0.0"
      }
    },
    "com.unity.modules.uielementsnative": {
      "version": "1.0.0",
      "depth": 1,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.ui": "1.0.0",
        "com.unity.modules.imgui": "1.0.0",
        "com.unity.modules.jsonserialize": "1.0.0"
      }
    },
    "com.unity.modules.umbra": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.unityanalytics": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.unitywebrequest": "1.0.0",
        "com.unity.modules.jsonserialize": "1.0.0"
      }
    },
    "com.unity.modules.unitywebrequest": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.unitywebrequestassetbundle": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.assetbundle": "1.0.0",
        "com.unity.modules.unitywebrequest": "1.0.0"
      }
    },
    "com.unity.modules.unitywebrequestaudio": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.unitywebrequest": "1.0.0",
        "com.unity.modules.audio": "1.0.0"
      }
    },
    "com.unity.modules.unitywebrequesttexture": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.unitywebrequest": "1.0.0",
        "com.unity.modules.imageconversion": "1.0.0"
      }
    },
    "com.unity.modules.unitywebrequestwww": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.unitywebrequest": "1.0.0",
        "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
        "com.unity.modules.unitywebrequestaudio": "1.0.0",
        "com.unity.modules.audio": "1.0.0",
        "com.unity.modules.assetbundle": "1.0.0",
        "com.unity.modules.imageconversion": "1.0.0"
      }
    },
    "com.unity.modules.vehicles": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.physics": "1.0.0"
      }
    },
    "com.unity.modules.video": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.audio": "1.0.0",
        "com.unity.modules.ui": "1.0.0",
        "com.unity.modules.unitywebrequest": "1.0.0"
      }
    },
    "com.unity.modules.vr": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.jsonserialize": "1.0.0",
        "com.unity.modules.physics": "1.0.0",
        "com.unity.modules.xr": "1.0.0"
      }
    },
    "com.unity.modules.wind": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {}
    },
    "com.unity.modules.xr": {
      "version": "1.0.0",
      "depth": 0,
      "source": "builtin",
      "dependencies": {
        "com.unity.modules.physics": "1.0.0",
        "com.unity.modules.jsonserialize": "1.0.0",
        "com.unity.modules.subsystems": "1.0.0"
      }
    }
  }
}


================================================
FILE: ProjectSettings/AudioManager.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!11 &1
AudioManager:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Volume: 1
  Rolloff Scale: 1
  Doppler Factor: 1
  Default Speaker Mode: 2
  m_SampleRate: 0
  m_DSPBufferSize: 1024
  m_VirtualVoiceCount: 512
  m_RealVoiceCount: 32
  m_SpatializerPlugin: 
  m_AmbisonicDecoderPlugin: 
  m_DisableAudio: 0
  m_VirtualizeEffects: 1
  m_RequestedDSPBufferSize: 1024


================================================
FILE: ProjectSettings/ClusterInputManager.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!236 &1
ClusterInputManager:
  m_ObjectHideFlags: 0
  m_Inputs: []


================================================
FILE: ProjectSettings/DynamicsManager.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!55 &1
PhysicsManager:
  m_ObjectHideFlags: 0
  serializedVersion: 11
  m_Gravity: {x: 0, y: -9.81, z: 0}
  m_DefaultMaterial: {fileID: 0}
  m_BounceThreshold: 2
  m_SleepThreshold: 0.005
  m_DefaultContactOffset: 0.01
  m_DefaultSolverIterations: 6
  m_DefaultSolverVelocityIterations: 1
  m_QueriesHitBackfaces: 0
  m_QueriesHitTriggers: 1
  m_EnableAdaptiveForce: 0
  m_ClothInterCollisionDistance: 0
  m_ClothInterCollisionStiffness: 0
  m_ContactsGeneration: 1
  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
  m_AutoSimulation: 1
  m_AutoSyncTransforms: 0
  m_ReuseCollisionCallbacks: 1
  m_ClothInterCollisionSettingsToggle: 0
  m_ContactPairsMode: 0
  m_BroadphaseType: 0
  m_WorldBounds:
    m_Center: {x: 0, y: 0, z: 0}
    m_Extent: {x: 250, y: 250, z: 250}
  m_WorldSubdivisions: 8
  m_FrictionType: 0
  m_EnableEnhancedDeterminism: 0
  m_EnableUnifiedHeightmaps: 1
  m_DefaultMaxAngluarSpeed: 7


================================================
FILE: ProjectSettings/EditorBuildSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1045 &1
EditorBuildSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Scenes:
  - enabled: 1
    path: Assets/Demo/Scenes/CarouselDemo.unity
    guid: fb0930c4c73004bb2be56aca5302a87f
  m_configObjects: {}


================================================
FILE: ProjectSettings/EditorSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!159 &1
EditorSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 9
  m_ExternalVersionControlSupport: Visible Meta Files
  m_SerializationMode: 2
  m_LineEndingsForNewScripts: 0
  m_DefaultBehaviorMode: 0
  m_PrefabRegularEnvironment: {fileID: 0}
  m_PrefabUIEnvironment: {fileID: 0}
  m_SpritePackerMode: 0
  m_SpritePackerPaddingPower: 1
  m_EtcTextureCompressorBehavior: 1
  m_EtcTextureFastCompressor: 1
  m_EtcTextureNormalCompressor: 2
  m_EtcTextureBestCompressor: 4
  m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref
  m_ProjectGenerationRootNamespace: 
  m_CollabEditorSettings:
    inProgressEnabled: 1
  m_EnableTextureStreamingInEditMode: 1
  m_EnableTextureStreamingInPlayMode: 1
  m_AsyncShaderCompilation: 1
  m_EnterPlayModeOptionsEnabled: 0
  m_EnterPlayModeOptions: 3
  m_ShowLightmapResolutionOverlay: 1
  m_UseLegacyProbeSampleCount: 0
  m_AssetPipelineMode: 1
  m_CacheServerMode: 0
  m_CacheServerEndpoint: 
  m_CacheServerNamespacePrefix: default
  m_CacheServerEnableDownload: 1
  m_CacheServerEnableUpload: 1


================================================
FILE: ProjectSettings/GraphicsSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!30 &1
GraphicsSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 13
  m_Deferred:
    m_Mode: 1
    m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
  m_DeferredReflections:
    m_Mode: 1
    m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
  m_ScreenSpaceShadows:
    m_Mode: 1
    m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
  m_LegacyDeferred:
    m_Mode: 1
    m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
  m_DepthNormals:
    m_Mode: 1
    m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
  m_MotionVectors:
    m_Mode: 1
    m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
  m_LightHalo:
    m_Mode: 1
    m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
  m_LensFlare:
    m_Mode: 1
    m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
  m_AlwaysIncludedShaders:
  - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
  m_PreloadedShaders: []
  m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
    type: 0}
  m_CustomRenderPipeline: {fileID: 0}
  m_TransparencySortMode: 0
  m_TransparencySortAxis: {x: 0, y: 0, z: 1}
  m_DefaultRenderingPath: 1
  m_DefaultMobileRenderingPath: 1
  m_TierSettings: []
  m_LightmapStripping: 0
  m_FogStripping: 0
  m_InstancingStripping: 0
  m_LightmapKeepPlain: 1
  m_LightmapKeepDirCombined: 1
  m_LightmapKeepDynamicPlain: 1
  m_LightmapKeepDynamicDirCombined: 1
  m_LightmapKeepShadowMask: 1
  m_LightmapKeepSubtractive: 1
  m_FogKeepLinear: 1
  m_FogKeepExp: 1
  m_FogKeepExp2: 1
  m_AlbedoSwatchInfos: []
  m_LightsUseLinearIntensity: 0
  m_LightsUseColorTemperature: 0
  m_LogWhenShaderIsCompiled: 0
  m_AllowEnlightenSupportForUpgradedProject: 0


================================================
FILE: ProjectSettings/InputManager.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!13 &1
InputManager:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Axes:
  - serializedVersion: 3
    m_Name: Horizontal
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: left
    positiveButton: right
    altNegativeButton: a
    altPositiveButton: d
    gravity: 3
    dead: 0.001
    sensitivity: 3
    snap: 1
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Vertical
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: down
    positiveButton: up
    altNegativeButton: s
    altPositiveButton: w
    gravity: 3
    dead: 0.001
    sensitivity: 3
    snap: 1
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire1
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: left ctrl
    altNegativeButton: 
    altPositiveButton: mouse 0
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire2
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: left alt
    altNegativeButton: 
    altPositiveButton: mouse 1
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire3
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: left shift
    altNegativeButton: 
    altPositiveButton: mouse 2
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Jump
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: space
    altNegativeButton: 
    altPositiveButton: 
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Mouse X
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: 
    altNegativeButton: 
    altPositiveButton: 
    gravity: 0
    dead: 0
    sensitivity: 0.1
    snap: 0
    invert: 0
    type: 1
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Mouse Y
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: 
    altNegativeButton: 
    altPositiveButton: 
    gravity: 0
    dead: 0
    sensitivity: 0.1
    snap: 0
    invert: 0
    type: 1
    axis: 1
    joyNum: 0
  - serializedVersion: 3
    m_Name: Mouse ScrollWheel
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: 
    altNegativeButton: 
    altPositiveButton: 
    gravity: 0
    dead: 0
    sensitivity: 0.1
    snap: 0
    invert: 0
    type: 1
    axis: 2
    joyNum: 0
  - serializedVersion: 3
    m_Name: Horizontal
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: 
    altNegativeButton: 
    altPositiveButton: 
    gravity: 0
    dead: 0.19
    sensitivity: 1
    snap: 0
    invert: 0
    type: 2
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Vertical
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: 
    altNegativeButton: 
    altPositiveButton: 
    gravity: 0
    dead: 0.19
    sensitivity: 1
    snap: 0
    invert: 1
    type: 2
    axis: 1
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire1
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: joystick button 0
    altNegativeButton: 
    altPositiveButton: 
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire2
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: joystick button 1
    altNegativeButton: 
    altPositiveButton: 
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Fire3
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: joystick button 2
    altNegativeButton: 
    altPositiveButton: 
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Jump
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: joystick button 3
    altNegativeButton: 
    altPositiveButton: 
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Submit
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: return
    altNegativeButton: 
    altPositiveButton: joystick button 0
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Submit
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: enter
    altNegativeButton: 
    altPositiveButton: space
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0
  - serializedVersion: 3
    m_Name: Cancel
    descriptiveName: 
    descriptiveNegativeName: 
    negativeButton: 
    positiveButton: escape
    altNegativeButton: 
    altPositiveButton: joystick button 1
    gravity: 1000
    dead: 0.001
    sensitivity: 1000
    snap: 0
    invert: 0
    type: 0
    axis: 0
    joyNum: 0


================================================
FILE: ProjectSettings/NavMeshAreas.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!126 &1
NavMeshProjectSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  areas:
  - name: Walkable
    cost: 1
  - name: Not Walkable
    cost: 1
  - name: Jump
    cost: 2
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  - name: 
    cost: 1
  m_LastAgentTypeID: -887442657
  m_Settings:
  - serializedVersion: 2
    agentTypeID: 0
    agentRadius: 0.5
    agentHeight: 2
    agentSlope: 45
    agentClimb: 0.75
    ledgeDropHeight: 0
    maxJumpAcrossDistance: 0
    minRegionArea: 2
    manualCellSize: 0
    cellSize: 0.16666667
    manualTileSize: 0
    tileSize: 256
    accuratePlacement: 0
    debug:
      m_Flags: 0
  m_SettingNames:
  - Humanoid


================================================
FILE: ProjectSettings/PackageManagerSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
  m_ObjectHideFlags: 61
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
  m_Name: 
  m_EditorClassIdentifier: 
  m_ScopedRegistriesSettingsExpanded: 1
  oneTimeWarningShown: 0
  m_Registries:
  - m_Id: main
    m_Name: 
    m_Url: https://packages.unity.com
    m_Scopes: []
    m_IsDefault: 1
  m_UserSelectedRegistryName: 
  m_UserAddingNewScopedRegistry: 0
  m_RegistryInfoDraft:
    m_ErrorMessage: 
    m_Original:
      m_Id: 
      m_Name: 
      m_Url: 
      m_Scopes: []
      m_IsDefault: 0
    m_Modified: 0
    m_Name: 
    m_Url: 
    m_Scopes:
    - 
    m_SelectedScopeIndex: 0


================================================
FILE: ProjectSettings/Physics2DSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!19 &1
Physics2DSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 4
  m_Gravity: {x: 0, y: -9.81}
  m_DefaultMaterial: {fileID: 0}
  m_VelocityIterations: 8
  m_PositionIterations: 3
  m_VelocityThreshold: 1
  m_MaxLinearCorrection: 0.2
  m_MaxAngularCorrection: 8
  m_MaxTranslationSpeed: 100
  m_MaxRotationSpeed: 360
  m_BaumgarteScale: 0.2
  m_BaumgarteTimeOfImpactScale: 0.75
  m_TimeToSleep: 0.5
  m_LinearSleepTolerance: 0.01
  m_AngularSleepTolerance: 2
  m_DefaultContactOffset: 0.01
  m_JobOptions:
    serializedVersion: 2
    useMultithreading: 0
    useConsistencySorting: 0
    m_InterpolationPosesPerJob: 100
    m_NewContactsPerJob: 30
    m_CollideContactsPerJob: 100
    m_ClearFlagsPerJob: 200
    m_ClearBodyForcesPerJob: 200
    m_SyncDiscreteFixturesPerJob: 50
    m_SyncContinuousFixturesPerJob: 50
    m_FindNearestContactsPerJob: 100
    m_UpdateTriggerContactsPerJob: 100
    m_IslandSolverCostThreshold: 100
    m_IslandSolverBodyCostScale: 1
    m_IslandSolverContactCostScale: 10
    m_IslandSolverJointCostScale: 10
    m_IslandSolverBodiesPerJob: 50
    m_IslandSolverContactsPerJob: 50
  m_AutoSimulation: 1
  m_QueriesHitTriggers: 1
  m_QueriesStartInColliders: 1
  m_CallbacksOnDisable: 1
  m_ReuseCollisionCallbacks: 1
  m_AutoSyncTransforms: 0
  m_AlwaysShowColliders: 0
  m_ShowColliderSleep: 1
  m_ShowColliderContacts: 0
  m_ShowColliderAABB: 0
  m_ContactArrowScale: 0.2
  m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
  m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
  m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
  m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff


================================================
FILE: ProjectSettings/PresetManager.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1386491679 &1
PresetManager:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_DefaultPresets: {}


================================================
FILE: ProjectSettings/ProjectSettings.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!129 &1
PlayerSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 20
  productGUID: 8646ab54ca45349b2813daf8cb28a5fe
  AndroidProfiler: 0
  AndroidFilterTouchesWhenObscured: 0
  AndroidEnableSustainedPerformanceMode: 0
  defaultScreenOrientation: 4
  targetDevice: 2
  useOnDemandResources: 0
  accelerometerFrequency: 60
  companyName: DefaultCompany
  productName: FancyCarouselView
  defaultCursor: {fileID: 0}
  cursorHotspot: {x: 0, y: 0}
  m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
  m_ShowUnitySplashScreen: 1
  m_ShowUnitySplashLogo: 1
  m_SplashScreenOverlayOpacity: 1
  m_SplashScreenAnimation: 1
  m_SplashScreenLogoStyle: 1
  m_SplashScreenDrawMode: 0
  m_SplashScreenBackgroundAnimationZoom: 1
  m_SplashScreenLogoAnimationZoom: 1
  m_SplashScreenBackgroundLandscapeAspect: 1
  m_SplashScreenBackgroundPortraitAspect: 1
  m_SplashScreenBackgroundLandscapeUvs:
    serializedVersion: 2
    x: 0
    y: 0
    width: 1
    height: 1
  m_SplashScreenBackgroundPortraitUvs:
    serializedVersion: 2
    x: 0
    y: 0
    width: 1
    height: 1
  m_SplashScreenLogos: []
  m_VirtualRealitySplashScreen: {fileID: 0}
  m_HolographicTrackingLossScreen: {fileID: 0}
  defaultScreenWidth: 1024
  defaultScreenHeight: 768
  defaultScreenWidthWeb: 960
  defaultScreenHeightWeb: 600
  m_StereoRenderingPath: 0
  m_ActiveColorSpace: 0
  m_MTRendering: 1
  m_StackTraceTypes: 010000000100000001000000010000000100000001000000
  iosShowActivityIndicatorOnLoading: -1
  androidShowActivityIndicatorOnLoading: -1
  iosUseCustomAppBackgroundBehavior: 0
  iosAllowHTTPDownload: 1
  allowedAutorotateToPortrait: 1
  allowedAutorotateToPortraitUpsideDown: 1
  allowedAutorotateToLandscapeRight: 1
  allowedAutorotateToLandscapeLeft: 1
  useOSAutorotation: 1
  use32BitDisplayBuffer: 1
  preserveFramebufferAlpha: 0
  disableDepthAndStencilBuffers: 0
  androidStartInFullscreen: 1
  androidRenderOutsideSafeArea: 1
  androidUseSwappy: 0
  androidBlitType: 0
  defaultIsNativeResolution: 1
  macRetinaSupport: 1
  runInB
Download .txt
gitextract_4lza6sc5/

├── .github/
│   └── workflows/
│       └── toc.yml
├── .gitignore
├── Assets/
│   ├── Demo/
│   │   ├── Prefabs/
│   │   │   ├── pfb_demo_carousel_cell.prefab
│   │   │   └── pfb_demo_carousel_cell.prefab.meta
│   │   ├── Prefabs.meta
│   │   ├── Resources/
│   │   │   ├── tex_demo_banner_00.png.meta
│   │   │   ├── tex_demo_banner_01.png.meta
│   │   │   └── tex_demo_banner_02.png.meta
│   │   ├── Resources.meta
│   │   ├── Scenes/
│   │   │   ├── CarouselDemo.unity
│   │   │   ├── CarouselDemo.unity.meta
│   │   │   ├── WithScrollViewDemo.unity
│   │   │   └── WithScrollViewDemo.unity.meta
│   │   ├── Scenes.meta
│   │   ├── Scripts/
│   │   │   ├── Demo.cs
│   │   │   ├── Demo.cs.meta
│   │   │   ├── DemoCarouselCell.cs
│   │   │   ├── DemoCarouselCell.cs.meta
│   │   │   ├── DemoCarouselView.cs
│   │   │   ├── DemoCarouselView.cs.meta
│   │   │   ├── DemoData.cs
│   │   │   └── DemoData.cs.meta
│   │   └── Scripts.meta
│   ├── Demo.meta
│   ├── FancyCarouselView/
│   │   ├── Editor/
│   │   │   ├── FancyCarouselView.Editor.asmdef
│   │   │   ├── FancyCarouselView.Editor.asmdef.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── CarouselScrollerEditor.cs
│   │   │   │   ├── CarouselScrollerEditor.cs.meta
│   │   │   │   ├── CarouselViewEditor.cs
│   │   │   │   ├── CarouselViewEditor.cs.meta
│   │   │   │   ├── DotCarouselProgressViewEditor.cs
│   │   │   │   └── DotCarouselProgressViewEditor.cs.meta
│   │   │   └── Scripts.meta
│   │   ├── Editor.meta
│   │   ├── Runtime/
│   │   │   ├── FancyCarouselView.asmdef
│   │   │   ├── FancyCarouselView.asmdef.meta
│   │   │   ├── Prefabs/
│   │   │   │   ├── pfb_default_carousel_progress_element.prefab
│   │   │   │   ├── pfb_default_carousel_progress_element.prefab.meta
│   │   │   │   ├── pfb_default_carousel_progress_view.prefab
│   │   │   │   └── pfb_default_carousel_progress_view.prefab.meta
│   │   │   ├── Prefabs.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── AnimationUtils.cs
│   │   │   │   ├── AnimationUtils.cs.meta
│   │   │   │   ├── CarouselCell.cs
│   │   │   │   ├── CarouselCell.cs.meta
│   │   │   │   ├── CarouselContext.cs
│   │   │   │   ├── CarouselContext.cs.meta
│   │   │   │   ├── CarouselProgressView.cs
│   │   │   │   ├── CarouselProgressView.cs.meta
│   │   │   │   ├── CarouselScroller.cs
│   │   │   │   ├── CarouselScroller.cs.meta
│   │   │   │   ├── CarouselView.cs
│   │   │   │   ├── CarouselView.cs.meta
│   │   │   │   ├── CarouselViewDelegates.cs
│   │   │   │   ├── CarouselViewDelegates.cs.meta
│   │   │   │   ├── DotCarouselProgressElement.cs
│   │   │   │   ├── DotCarouselProgressElement.cs.meta
│   │   │   │   ├── DotCarouselProgressView.cs
│   │   │   │   ├── DotCarouselProgressView.cs.meta
│   │   │   │   ├── EndMovementType.cs
│   │   │   │   ├── EndMovementType.cs.meta
│   │   │   │   ├── ICarouselView.cs
│   │   │   │   ├── ICarouselView.cs.meta
│   │   │   │   ├── ScrollEventPropagator.cs
│   │   │   │   └── ScrollEventPropagator.cs.meta
│   │   │   ├── Scripts.meta
│   │   │   ├── Textures/
│   │   │   │   └── tex_carousel_dot.png.meta
│   │   │   └── Textures.meta
│   │   ├── Runtime.meta
│   │   ├── package.json
│   │   └── package.json.meta
│   └── FancyCarouselView.meta
├── LICENSE.md
├── Packages/
│   ├── manifest.json
│   └── packages-lock.json
├── ProjectSettings/
│   ├── AudioManager.asset
│   ├── ClusterInputManager.asset
│   ├── DynamicsManager.asset
│   ├── EditorBuildSettings.asset
│   ├── EditorSettings.asset
│   ├── GraphicsSettings.asset
│   ├── InputManager.asset
│   ├── NavMeshAreas.asset
│   ├── PackageManagerSettings.asset
│   ├── Physics2DSettings.asset
│   ├── PresetManager.asset
│   ├── ProjectSettings.asset
│   ├── ProjectVersion.txt
│   ├── QualitySettings.asset
│   ├── TagManager.asset
│   ├── TimeManager.asset
│   ├── UnityConnectSettings.asset
│   ├── VFXManager.asset
│   ├── VersionControlSettings.asset
│   └── XRSettings.asset
├── README.md
├── README_JA.md
└── Third Party Notices.md
Download .txt
SYMBOL INDEX (78 symbols across 18 files)

FILE: Assets/Demo/Scripts/Demo.cs
  class Demo (line 7) | public class Demo : MonoBehaviour
    method Start (line 16) | private void Start()
    method Setup (line 24) | private void Setup()
    method Cleanup (line 41) | private void Cleanup()

FILE: Assets/Demo/Scripts/DemoCarouselCell.cs
  class DemoCarouselCell (line 7) | public class DemoCarouselCell : CarouselCell<DemoData, DemoCarouselCell>
    method Refresh (line 15) | protected override void Refresh(DemoData data)
    method OnVisibilityChanged (line 22) | protected override void OnVisibilityChanged(bool visibility)
    method OnClick (line 30) | private void OnClick()

FILE: Assets/Demo/Scripts/DemoCarouselView.cs
  class DemoCarouselView (line 5) | public class DemoCarouselView : CarouselView<DemoData, DemoCarouselCell>

FILE: Assets/Demo/Scripts/DemoData.cs
  class DemoData (line 5) | public class DemoData
    method DemoData (line 11) | public DemoData(string spriteResourceKey, string text, Action clicked)

FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs
  class CarouselScrollerEditor (line 10) | [CustomEditor(typeof(CarouselScroller))]
    method OnInspectorGUI (line 13) | public override void OnInspectorGUI()

FILE: Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs
  class CarouselViewEditor (line 12) | [CustomEditor(typeof(CarouselView<,>), true)]
    method OnInspectorGUI (line 15) | public override void OnInspectorGUI()

FILE: Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs
  class DotCarouselProgressViewEditor (line 7) | [CustomEditor(typeof(DotCarouselProgressView))]
    method OnInspectorGUI (line 10) | public override void OnInspectorGUI()

FILE: Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs
  class AnimationUtils (line 9) | internal static class AnimationUtils
    method CreateFloatAnimationRoutine (line 11) | public static IEnumerator CreateFloatAnimationRoutine(float from, floa...

FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs
  class CarouselCell (line 11) | public abstract class CarouselCell<TData, TCell> : FancyCell<TData, Caro...
    method Refresh (line 18) | protected abstract void Refresh(TData itemData);
    method OnVisibilityChanged (line 24) | protected virtual void OnVisibilityChanged(bool visibility)
    method OnInitialized (line 32) | protected virtual void OnInitialized()
    method OnPositionUpdated (line 41) | protected virtual void OnPositionUpdated(float position)
    method UpdateContent (line 45) | public override void UpdateContent(TData itemData)
    method SetVisible (line 51) | public override void SetVisible(bool visibility)
    method Initialize (line 65) | public override void Initialize()
    method UpdatePosition (line 84) | public override void UpdatePosition(float position)

FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs
  class CarouselContext (line 11) | public sealed class CarouselContext<TData, TCell> where TCell : Carousel...

FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs
  class CarouselProgressView (line 9) | public abstract class CarouselProgressView : MonoBehaviour
    method Setup (line 15) | public abstract void Setup(int elementCount);
    method SetActiveIndex (line 21) | public abstract void SetActiveIndex(int elementIndex);
  class ClickableCarouselProgressView (line 24) | public abstract class ClickableCarouselProgressView : CarouselProgressView

FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs
  class CarouselScroller (line 7) | [DisallowMultipleComponent]
    method Reset (line 11) | protected override void Reset()
    method SetInitialValues (line 19) | private void SetInitialValues()

FILE: Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs
  class CarouselView (line 19) | [RequireComponent(typeof(CarouselScroller))]
    method OnEnable (line 114) | private void OnEnable()
    method OnDisable (line 123) | private void OnDisable()
    method OnBeginDrag (line 137) | void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
    method Setup (line 197) | void ICarouselView<TData, TCell>.Setup(IList<TData> dataList)
    method Setup (line 202) | public void Setup(IReadOnlyList<TData> dataList)
    method Cleanup (line 217) | public void Cleanup()
    method ScrollToBefore (line 222) | public void ScrollToBefore(float duration, Ease easeType, Action onCom...
    method ScrollToAfter (line 229) | public void ScrollToAfter(float duration, Ease easeType, Action onComp...
    method ScrollTo (line 236) | public void ScrollTo(float position, float duration, Ease easeType, Ac...
    method OnDrag (line 256) | void IDragHandler.OnDrag(PointerEventData eventData)
    method OnEndDrag (line 260) | void IEndDragHandler.OnEndDrag(PointerEventData eventData)
    method OnProgressViewElementClicked (line 296) | private void OnProgressViewElementClicked(int index)
    method StartAutoScrolling (line 311) | private void StartAutoScrolling()
    method AutoScrollRoutine (line 319) | private IEnumerator AutoScrollRoutine()
    method ScrollRoutine (line 337) | private IEnumerator ScrollRoutine(float position, float duration, Ease...
    method Initialize (line 348) | protected override void Initialize()
    method OnScrolled (line 378) | private void OnScrolled(float position)
    method StopScrolling (line 389) | private void StopScrolling()
    method StopAutoScrolling (line 397) | private void StopAutoScrolling()
    method GetCircularPosition (line 405) | private float GetCircularPosition(float position)
    method Reset (line 412) | private void Reset()
    method OnDrawGizmos (line 419) | private void OnDrawGizmos()
    method DrawCellRect (line 424) | private void DrawCellRect()

FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs
  class DotCarouselProgressElement (line 10) | public sealed class DotCarouselProgressElement : MonoBehaviour
    method SetActive (line 28) | public void SetActive(bool isActive)

FILE: Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs
  class DotCarouselProgressView (line 11) | public sealed class DotCarouselProgressView : ClickableCarouselProgressView
    method Setup (line 25) | public override void Setup(int elementCount)
    method SetActiveIndex (line 54) | public override void SetActiveIndex(int elementIndex)
    method OnElementClicked (line 71) | private void OnElementClicked(int index)

FILE: Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs
  type EndMovementType (line 5) | public enum EndMovementType

FILE: Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs
  type ICarouselView (line 11) | public interface ICarouselView
    method ScrollToBefore (line 64) | void ScrollToBefore(float duration, Ease easeType, Action onComplete =...
    method ScrollToAfter (line 72) | void ScrollToAfter(float duration, Ease easeType, Action onComplete = ...
    method ScrollTo (line 81) | void ScrollTo(float position, float duration, Ease easeType, Action on...
    method Setup (line 110) | void Setup(IList<TData> dataList);
  type ICarouselView (line 89) | public interface ICarouselView<TData, TCell> : ICarouselView where TCell...
    method ScrollToBefore (line 64) | void ScrollToBefore(float duration, Ease easeType, Action onComplete =...
    method ScrollToAfter (line 72) | void ScrollToAfter(float duration, Ease easeType, Action onComplete = ...
    method ScrollTo (line 81) | void ScrollTo(float position, float duration, Ease easeType, Action on...
    method Setup (line 110) | void Setup(IList<TData> dataList);

FILE: Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs
  class ScrollEventPropagator (line 10) | [RequireComponent(typeof(Scroller))]
    method Start (line 19) | private void Start()
    method OnBeginDrag (line 31) | void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
    method OnDrag (line 59) | void IDragHandler.OnDrag(PointerEventData eventData)
    method OnEndDrag (line 72) | void IEndDragHandler.OnEndDrag(PointerEventData eventData)
Condensed preview — 98 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (255K chars).
[
  {
    "path": ".github/workflows/toc.yml",
    "chars": 157,
    "preview": "on: push\nname: TOC Generator\njobs:\n  generateTOC:\n    name: TOC Generator\n    runs-on: ubuntu-latest\n    steps:\n      - "
  },
  {
    "path": ".gitignore",
    "chars": 1340,
    "preview": "# This .gitignore file should be placed at the root of your Unity project directory\n#\n# Get latest from https://github.c"
  },
  {
    "path": "Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab",
    "chars": 7643,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &1047693792088076\nGameObject:\n  m_ObjectHideFlags: 0\n  m_Corresponding"
  },
  {
    "path": "Assets/Demo/Prefabs/pfb_demo_carousel_cell.prefab.meta",
    "chars": 232,
    "preview": "fileFormatVersion: 2\nguid: 07f957860e6fb4856bfb31bb7dbb5541\ntimeCreated: 1508240682\nlicenseType: Free\nNativeFormatImport"
  },
  {
    "path": "Assets/Demo/Prefabs.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 9fdf8a3538dab49458e471d728ddf257\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_00.png.meta",
    "chars": 3069,
    "preview": "fileFormatVersion: 2\nguid: 1b9684536565941baabd99e254db31d7\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_01.png.meta",
    "chars": 3069,
    "preview": "fileFormatVersion: 2\nguid: 369a2d353bee344a29b62a7d227d1be8\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Demo/Resources/tex_demo_banner_02.png.meta",
    "chars": 3069,
    "preview": "fileFormatVersion: 2\nguid: 7a204816dd74146768c85d99000e772f\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Demo/Resources.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 6e8b0e5781bcd4398ad46f36b4ee77cb\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Demo/Scenes/CarouselDemo.unity",
    "chars": 37166,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersi"
  },
  {
    "path": "Assets/Demo/Scenes/CarouselDemo.unity.meta",
    "chars": 155,
    "preview": "fileFormatVersion: 2\nguid: fb0930c4c73004bb2be56aca5302a87f\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetB"
  },
  {
    "path": "Assets/Demo/Scenes/WithScrollViewDemo.unity",
    "chars": 37040,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersi"
  },
  {
    "path": "Assets/Demo/Scenes/WithScrollViewDemo.unity.meta",
    "chars": 155,
    "preview": "fileFormatVersion: 2\nguid: 8b680c169da4149b1a297879c8f59137\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetB"
  },
  {
    "path": "Assets/Demo/Scenes.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 8cbde3d5203604c709c287e48bf8c87a\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Demo/Scripts/Demo.cs",
    "chars": 1318,
    "preview": "using System.Linq;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace Demo.Scripts\n{\n    public class Demo : MonoBehav"
  },
  {
    "path": "Assets/Demo/Scripts/Demo.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: c81471d0f53e947b98e24b95bf6550e3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselCell.cs",
    "chars": 924,
    "preview": "using FancyCarouselView.Runtime.Scripts;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace Demo.Scripts\n{\n    public "
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselCell.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 28a5bb785df764c9396f84b117e1f93f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselView.cs",
    "chars": 159,
    "preview": "using FancyCarouselView.Runtime.Scripts;\n\nnamespace Demo.Scripts\n{\n    public class DemoCarouselView : CarouselView<Dem"
  },
  {
    "path": "Assets/Demo/Scripts/DemoCarouselView.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 7ac5fc66c6bf74808a1fead45d9b1b43\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Demo/Scripts/DemoData.cs",
    "chars": 412,
    "preview": "using System;\n\nnamespace Demo.Scripts\n{\n    public class DemoData\n    {\n        public string SpriteResourceKey { get; "
  },
  {
    "path": "Assets/Demo/Scripts/DemoData.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8cb719b15a25c4e08bcee7f68e07877c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Demo/Scripts.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 4bf9b07effb3c451aabb4d7a11e9476f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Demo.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 998c2781c67bd4fc48996faec98cb8ca\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef",
    "chars": 505,
    "preview": "{\n    \"name\": \"FancyCarouselView.Editor\",\n    \"references\": [\n        \"GUID:59f6770f7492c42ff827a64ac010ac49\",\n        \""
  },
  {
    "path": "Assets/FancyCarouselView/Editor/FancyCarouselView.Editor.asmdef.meta",
    "chars": 166,
    "preview": "fileFormatVersion: 2\nguid: 4237a468895ff4622b504d121475cdfa\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs",
    "chars": 1505,
    "preview": "using FancyCarouselView.Runtime.Scripts;\nusing UnityEditor;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Editor.Scri"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselScrollerEditor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 03d5e2634b8494c2981fd527ae259f7c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs",
    "chars": 4852,
    "preview": "using System;\nusing FancyCarouselView.Runtime.Scripts;\nusing FancyScrollView;\nusing UnityEditor;\nusing UnityEngine;\n\nna"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/CarouselViewEditor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: e5955c9c414044577b12dda85dda441d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs",
    "chars": 873,
    "preview": "using FancyCarouselView.Runtime.Scripts;\nusing UnityEditor;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Editor.S"
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts/DotCarouselProgressViewEditor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: f7722779df1ef4b8c9274060eee5803e\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Editor/Scripts.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: a0f8946a9e14e4141932db7384e8393c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Editor.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: f2c2e8f402e354b5a83d620304a3518c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef",
    "chars": 378,
    "preview": "{\n    \"name\": \"FancyCarouselView\",\n    \"references\": [\n        \"GUID:59f6770f7492c42ff827a64ac010ac49\"\n    ],\n    \"inclu"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/FancyCarouselView.asmdef.meta",
    "chars": 166,
    "preview": "fileFormatVersion: 2\nguid: 508cd0edd40d740d38308988898213a3\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab",
    "chars": 4243,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &4104172994114863044\nGameObject:\n  m_ObjectHideFlags: 0\n  m_Correspond"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_element.prefab.meta",
    "chars": 154,
    "preview": "fileFormatVersion: 2\nguid: 2676e288b8c1b44bdb3aeb4168f32a2c\nPrefabImporter:\n  externalObjects: {}\n  userData: \n  assetBu"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab",
    "chars": 2263,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &5609355829170890581\nGameObject:\n  m_ObjectHideFlags: 0\n  m_Correspond"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs/pfb_default_carousel_progress_view.prefab.meta",
    "chars": 154,
    "preview": "fileFormatVersion: 2\nguid: 4e95dd339e71b40aa8e0269426c1dd21\nPrefabImporter:\n  externalObjects: {}\n  userData: \n  assetBu"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Prefabs.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 5ee7c0026d5c6474584118d2f0ff9fea\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs",
    "chars": 1021,
    "preview": "using System;\nusing System.Collections;\nusing EasingCore;\nusing UnityEngine;\nusing UnityEngine.Assertions;\n\nnamespace F"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/AnimationUtils.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: d19e23c008f3d4c7d8ad917b8af5225d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs",
    "chars": 3427,
    "preview": "using FancyScrollView;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselCell.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: c599b360db88a414e92999489bad4f2f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs",
    "chars": 1505,
    "preview": "using FancyScrollView;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselContext.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 894ccca287a714e69b7c602873e5b6a7\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs",
    "chars": 898,
    "preview": "using System;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     View that"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselProgressView.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 38e06e7f07d2a42e4b2566ddfe11b75a\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs",
    "chars": 755,
    "preview": "using FancyScrollView;\nusing UnityEditor;\nusing UnityEngine;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    [Disall"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselScroller.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 93e8ff52edf1e4551a9383367d899f3d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs",
    "chars": 15732,
    "preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing EasingCore;\nusing Fa"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselView.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 7baec707322b84341a3ff1ac20164a86\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs",
    "chars": 1414,
    "preview": "namespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>\n    ///     Delegate called when the active cell is cha"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/CarouselViewDelegates.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8ed85712bc3e940fa860a26e5bc90165\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs",
    "chars": 995,
    "preview": "using System;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    /// <summary>"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressElement.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 94de8ebe798ee47fcab93af25a89c863\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs",
    "chars": 2785,
    "preview": "using System;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.UI;\n\nnamespace FancyCarouselView.R"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/DotCarouselProgressView.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: d1686675fc52e4c6da26d2cd3ea79921\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs",
    "chars": 195,
    "preview": "using FancyScrollView;\n\nnamespace FancyCarouselView.Runtime.Scripts\n{\n    public enum EndMovementType\n    {\n        Ela"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/EndMovementType.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 46048a56dac2645a38cdb3a190a4ea03\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs",
    "chars": 3630,
    "preview": "using System;\nusing System.Collections.Generic;\nusing EasingCore;\nusing FancyScrollView;\n\nnamespace FancyCarouselView.R"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ICarouselView.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 388e0f4cbd2d044abbc3240b15f755a8\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs",
    "chars": 2593,
    "preview": "using System;\nusing System.Collections.Generic;\nusing FancyScrollView;\nusing UnityEngine;\nusing UnityEngine.EventSystem"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts/ScrollEventPropagator.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 85aedb7fe77344521bcb21f230abd15a\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Scripts.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 71dcd41f7c1754f8bbb8139976e7baf4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Textures/tex_carousel_dot.png.meta",
    "chars": 3069,
    "preview": "fileFormatVersion: 2\nguid: 017ef9d77d979469382c91c9fa2a9980\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime/Textures.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 3f632718d609a4c6fac7a99a5779d2f4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/Runtime.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 6b05caa752ad84d078159f730dca44f7\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/FancyCarouselView/package.json",
    "chars": 351,
    "preview": "{\n  \"name\": \"com.harumak.fancycarouselview\",\n  \"displayName\": \"FancyCarouselView\",\n  \"version\": \"1.1.6\",\n  \"unity\": \"201"
  },
  {
    "path": "Assets/FancyCarouselView/package.json.meta",
    "chars": 158,
    "preview": "fileFormatVersion: 2\nguid: 0e6ecae1128034cb3b9cb9fee998bdf1\nTextScriptImporter:\n  externalObjects: {}\n  userData: \n  ass"
  },
  {
    "path": "Assets/FancyCarouselView.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: fc4067a7660f8471db62ddedaf734e17\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "LICENSE.md",
    "chars": 1051,
    "preview": "Copyright 2021 Haruki Yano\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this softwar"
  },
  {
    "path": "Packages/manifest.json",
    "chars": 1809,
    "preview": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": \"1.17.2\",\n    \"com.unity.ide.rider\": \"3.0.15\",\n    \"com.unity.ide.vi"
  },
  {
    "path": "Packages/packages-lock.json",
    "chars": 9362,
    "preview": "{\n  \"dependencies\": {\n    \"com.unity.collab-proxy\": {\n      \"version\": \"1.17.2\",\n      \"depth\": 0,\n      \"source\": \"regi"
  },
  {
    "path": "ProjectSettings/AudioManager.asset",
    "chars": 416,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!11 &1\nAudioManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Vo"
  },
  {
    "path": "ProjectSettings/ClusterInputManager.asset",
    "chars": 114,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!236 &1\nClusterInputManager:\n  m_ObjectHideFlags: 0\n  m_Inputs: []\n"
  },
  {
    "path": "ProjectSettings/DynamicsManager.asset",
    "chars": 1190,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!55 &1\nPhysicsManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m"
  },
  {
    "path": "ProjectSettings/EditorBuildSettings.asset",
    "chars": 263,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1045 &1\nEditorBuildSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion:"
  },
  {
    "path": "ProjectSettings/EditorSettings.asset",
    "chars": 1107,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!159 &1\nEditorSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m"
  },
  {
    "path": "ProjectSettings/GraphicsSettings.asset",
    "chars": 2437,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!30 &1\nGraphicsSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 13\n "
  },
  {
    "path": "ProjectSettings/InputManager.asset",
    "chars": 5793,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!13 &1\nInputManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Ax"
  },
  {
    "path": "ProjectSettings/NavMeshAreas.asset",
    "chars": 1308,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!126 &1\nNavMeshProjectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersio"
  },
  {
    "path": "ProjectSettings/PackageManagerSettings.asset",
    "chars": 863,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObj"
  },
  {
    "path": "ProjectSettings/Physics2DSettings.asset",
    "chars": 2028,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!19 &1\nPhysics2DSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 4\n "
  },
  {
    "path": "ProjectSettings/PresetManager.asset",
    "chars": 146,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1386491679 &1\nPresetManager:\n  m_ObjectHideFlags: 0\n  serializedVersion:"
  },
  {
    "path": "ProjectSettings/ProjectSettings.asset",
    "chars": 20341,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!129 &1\nPlayerSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 20\n  "
  },
  {
    "path": "ProjectSettings/ProjectVersion.txt",
    "chars": 85,
    "preview": "m_EditorVersion: 2020.3.40f1\nm_EditorVersionWithRevision: 2020.3.40f1 (ba48d4efcef1)\n"
  },
  {
    "path": "ProjectSettings/QualitySettings.asset",
    "chars": 6451,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!47 &1\nQualitySettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 5\n  m"
  },
  {
    "path": "ProjectSettings/TagManager.asset",
    "chars": 378,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!78 &1\nTagManager:\n  serializedVersion: 2\n  tags: []\n  layers:\n  - Defaul"
  },
  {
    "path": "ProjectSettings/TimeManager.asset",
    "chars": 202,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!5 &1\nTimeManager:\n  m_ObjectHideFlags: 0\n  Fixed Timestep: 0.02\n  Maximu"
  },
  {
    "path": "ProjectSettings/UnityConnectSettings.asset",
    "chars": 853,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!310 &1\nUnityConnectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion:"
  },
  {
    "path": "ProjectSettings/VFXManager.asset",
    "chars": 308,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!937362698 &1\nVFXManager:\n  m_ObjectHideFlags: 0\n  m_IndirectShader: {fil"
  },
  {
    "path": "ProjectSettings/VersionControlSettings.asset",
    "chars": 188,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!890905787 &1\nVersionControlSettings:\n  m_ObjectHideFlags: 0\n  m_Mode: Vi"
  },
  {
    "path": "ProjectSettings/XRSettings.asset",
    "chars": 158,
    "preview": "{\n    \"m_SettingKeys\": [\n        \"VR Device Disabled\",\n        \"VR Device User Alert\"\n    ],\n    \"m_SettingValues\": [\n  "
  },
  {
    "path": "README.md",
    "chars": 10518,
    "preview": "<h1 align=\"center\">Fancy Carousel View</h1>\n\n[![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](LICENSE.md"
  },
  {
    "path": "README_JA.md",
    "chars": 9362,
    "preview": "<h1 align=\"center\">Fancy Carousel View</h1>\n\n[![license](https://img.shields.io/badge/LICENSE-MIT-green.svg)](LICENSE.md"
  },
  {
    "path": "Third Party Notices.md",
    "chars": 1249,
    "preview": "This software is implemented on the assumption that the following software is installed (not included).\n---------\n\nFancy"
  }
]

About this extraction

This page contains the full source code of the Haruma-K/FancyCarouselView GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 98 files (228.9 KB), approximately 84.5k tokens, and a symbol index with 78 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!