├── .gitignore
├── Assets
├── External.meta
├── External
│ ├── Demigiant.meta
│ ├── Demigiant
│ │ ├── DOTween.meta
│ │ └── DOTween
│ │ │ ├── DOTween.XML
│ │ │ ├── DOTween.XML.meta
│ │ │ ├── DOTween.dll
│ │ │ ├── DOTween.dll.meta
│ │ │ ├── Editor.meta
│ │ │ ├── Editor
│ │ │ ├── DOTweenEditor.XML
│ │ │ ├── DOTweenEditor.XML.meta
│ │ │ ├── DOTweenEditor.dll
│ │ │ ├── DOTweenEditor.dll.meta
│ │ │ ├── Imgs.meta
│ │ │ └── Imgs
│ │ │ │ ├── DOTweenIcon.png
│ │ │ │ ├── DOTweenIcon.png.meta
│ │ │ │ ├── Footer.png
│ │ │ │ ├── Footer.png.meta
│ │ │ │ ├── Footer_dark.png
│ │ │ │ ├── Footer_dark.png.meta
│ │ │ │ ├── Header.jpg
│ │ │ │ └── Header.jpg.meta
│ │ │ ├── Modules.meta
│ │ │ ├── Modules
│ │ │ ├── DOTweenModuleAudio.cs
│ │ │ ├── DOTweenModuleAudio.cs.meta
│ │ │ ├── DOTweenModulePhysics.cs
│ │ │ ├── DOTweenModulePhysics.cs.meta
│ │ │ ├── DOTweenModulePhysics2D.cs
│ │ │ ├── DOTweenModulePhysics2D.cs.meta
│ │ │ ├── DOTweenModuleSprite.cs
│ │ │ ├── DOTweenModuleSprite.cs.meta
│ │ │ ├── DOTweenModuleUI.cs
│ │ │ ├── DOTweenModuleUI.cs.meta
│ │ │ ├── DOTweenModuleUnityVersion.cs
│ │ │ ├── DOTweenModuleUnityVersion.cs.meta
│ │ │ ├── DOTweenModuleUtils.cs
│ │ │ └── DOTweenModuleUtils.cs.meta
│ │ │ ├── readme.txt
│ │ │ └── readme.txt.meta
│ ├── Signals.cs
│ ├── Signals.cs.meta
│ ├── TextMesh Pro.meta
│ └── TextMesh Pro
│ │ ├── Documentation.meta
│ │ ├── Documentation
│ │ ├── TextMesh Pro User Guide 2016.pdf
│ │ └── TextMesh Pro User Guide 2016.pdf.meta
│ │ ├── Resources.meta
│ │ ├── Resources
│ │ ├── Fonts & Materials.meta
│ │ ├── Fonts & Materials
│ │ │ ├── LiberationSans SDF - Drop Shadow.mat
│ │ │ ├── LiberationSans SDF - Drop Shadow.mat.meta
│ │ │ ├── LiberationSans SDF - Outline.mat
│ │ │ ├── LiberationSans SDF - Outline.mat.meta
│ │ │ ├── LiberationSans SDF.asset
│ │ │ └── LiberationSans SDF.asset.meta
│ │ ├── LineBreaking Following Characters.txt
│ │ ├── LineBreaking Following Characters.txt.meta
│ │ ├── LineBreaking Leading Characters.txt
│ │ ├── LineBreaking Leading Characters.txt.meta
│ │ ├── Shaders.meta
│ │ ├── Shaders
│ │ │ ├── TMP_Bitmap-Custom-Atlas.shader
│ │ │ ├── TMP_Bitmap-Custom-Atlas.shader.meta
│ │ │ ├── TMP_Bitmap-Mobile.shader
│ │ │ ├── TMP_Bitmap-Mobile.shader.meta
│ │ │ ├── TMP_Bitmap.shader
│ │ │ ├── TMP_Bitmap.shader.meta
│ │ │ ├── TMP_SDF Overlay.shader
│ │ │ ├── TMP_SDF Overlay.shader.meta
│ │ │ ├── TMP_SDF-Mobile Masking.shader
│ │ │ ├── TMP_SDF-Mobile Masking.shader.meta
│ │ │ ├── TMP_SDF-Mobile Overlay.shader
│ │ │ ├── TMP_SDF-Mobile Overlay.shader.meta
│ │ │ ├── TMP_SDF-Mobile.shader
│ │ │ ├── TMP_SDF-Mobile.shader.meta
│ │ │ ├── TMP_SDF-Surface-Mobile.shader
│ │ │ ├── TMP_SDF-Surface-Mobile.shader.meta
│ │ │ ├── TMP_SDF-Surface.shader
│ │ │ ├── TMP_SDF-Surface.shader.meta
│ │ │ ├── TMP_SDF.shader
│ │ │ ├── TMP_SDF.shader.meta
│ │ │ ├── TMP_Sprite.shader
│ │ │ ├── TMP_Sprite.shader.meta
│ │ │ ├── TMPro.cginc
│ │ │ ├── TMPro.cginc.meta
│ │ │ ├── TMPro_Properties.cginc
│ │ │ ├── TMPro_Properties.cginc.meta
│ │ │ ├── TMPro_Surface.cginc
│ │ │ └── TMPro_Surface.cginc.meta
│ │ ├── Sprite Assets.meta
│ │ ├── Sprite Assets
│ │ │ ├── EmojiOne.asset
│ │ │ └── EmojiOne.asset.meta
│ │ ├── Style Sheets.meta
│ │ ├── Style Sheets
│ │ │ ├── Default Style Sheet.asset
│ │ │ └── Default Style Sheet.asset.meta
│ │ ├── TMP Settings.asset
│ │ └── TMP Settings.asset.meta
│ │ ├── Sprites.meta
│ │ └── Sprites
│ │ ├── EmojiOne Attribution.txt
│ │ ├── EmojiOne Attribution.txt.meta
│ │ ├── EmojiOne.json
│ │ ├── EmojiOne.json.meta
│ │ ├── EmojiOne.png
│ │ └── EmojiOne.png.meta
├── PlayerData.asset
├── PlayerData.asset.meta
├── Resources.meta
├── Resources
│ ├── DOTweenSettings.asset
│ └── DOTweenSettings.asset.meta
├── StartHere.unity
├── StartHere.unity.meta
├── UIFramework.meta
├── UIFramework
│ ├── Core.meta
│ ├── Core
│ │ ├── AUILayer.cs
│ │ ├── AUILayer.cs.meta
│ │ ├── AUIScreenController.cs
│ │ ├── AUIScreenController.cs.meta
│ │ ├── ScreenControllerInterfaces.cs
│ │ ├── ScreenControllerInterfaces.cs.meta
│ │ ├── ScreenPropertyInterfaces.cs
│ │ └── ScreenPropertyInterfaces.cs.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── UIFrameworkTools.cs
│ │ └── UIFrameworkTools.cs.meta
│ ├── MANUAL.md
│ ├── MANUAL.md.meta
│ ├── Panel.meta
│ ├── Panel
│ │ ├── APanelController.cs
│ │ ├── APanelController.cs.meta
│ │ ├── PanelPriority.cs
│ │ ├── PanelPriority.cs.meta
│ │ ├── PanelProperties.cs
│ │ ├── PanelProperties.cs.meta
│ │ ├── PanelUILayer.cs
│ │ └── PanelUILayer.cs.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── ScreenTransitions.meta
│ ├── ScreenTransitions
│ │ ├── ATransitionComponent.cs
│ │ ├── ATransitionComponent.cs.meta
│ │ ├── LegacyAnimationScreenTransition.cs
│ │ ├── LegacyAnimationScreenTransition.cs.meta
│ │ ├── SimpleFadeTransition.cs
│ │ └── SimpleFadeTransition.cs.meta
│ ├── UIFrame.cs
│ ├── UIFrame.cs.meta
│ ├── UISettings.cs
│ ├── UISettings.cs.meta
│ ├── Window.meta
│ └── Window
│ │ ├── AWindowController.cs
│ │ ├── AWindowController.cs.meta
│ │ ├── WindowHistoryEntry.cs
│ │ ├── WindowHistoryEntry.cs.meta
│ │ ├── WindowParaLayer.cs
│ │ ├── WindowParaLayer.cs.meta
│ │ ├── WindowPriority.cs
│ │ ├── WindowPriority.cs.meta
│ │ ├── WindowProperties.cs
│ │ ├── WindowProperties.cs.meta
│ │ ├── WindowUILayer.cs
│ │ └── WindowUILayer.cs.meta
├── UIFrameworkExamples.meta
└── UIFrameworkExamples
│ ├── Art.meta
│ ├── Art
│ ├── 3d.png
│ ├── 3d.png.meta
│ ├── 3dExample_FancyAnimatedTransition.anim
│ ├── 3dExample_FancyAnimatedTransition.anim.meta
│ ├── StarParticle.mat
│ ├── StarParticle.mat.meta
│ ├── Trail.mat
│ ├── Trail.mat.meta
│ ├── eye.png
│ ├── eye.png.meta
│ ├── home.png
│ ├── home.png.meta
│ ├── person.png
│ ├── person.png.meta
│ ├── smiley.png
│ ├── smiley.png.meta
│ ├── star.png
│ ├── star.png.meta
│ ├── warning.png
│ └── warning.png.meta
│ ├── DefaultUISettings.asset
│ ├── DefaultUISettings.asset.meta
│ ├── Prefabs.meta
│ ├── Prefabs
│ ├── Screens.meta
│ ├── Screens
│ │ ├── CameraProjectionWindow.prefab
│ │ ├── CameraProjectionWindow.prefab.meta
│ │ ├── ConfirmationPopup.prefab
│ │ ├── ConfirmationPopup.prefab.meta
│ │ ├── HomeWindow.prefab
│ │ ├── HomeWindow.prefab.meta
│ │ ├── NavigationPanel.prefab
│ │ ├── NavigationPanel.prefab.meta
│ │ ├── PlayerWindow.prefab
│ │ ├── PlayerWindow.prefab.meta
│ │ ├── PopupExampleWindow.prefab
│ │ ├── PopupExampleWindow.prefab.meta
│ │ ├── StartGameWindow.prefab
│ │ ├── StartGameWindow.prefab.meta
│ │ ├── ThreeDExample.prefab
│ │ ├── ThreeDExample.prefab.meta
│ │ ├── ToastPanel.prefab
│ │ └── ToastPanel.prefab.meta
│ ├── UIFrame.prefab
│ └── UIFrame.prefab.meta
│ ├── Scripts.meta
│ ├── Scripts
│ ├── Editor.meta
│ ├── Editor
│ │ ├── ScreenIdGenerator.cs
│ │ └── ScreenIdGenerator.cs.meta
│ ├── Extras.meta
│ ├── Extras
│ │ ├── FakePlayerData.cs
│ │ └── FakePlayerData.cs.meta
│ ├── ScreenControllers.meta
│ ├── ScreenControllers
│ │ ├── CameraProjectionWindowController.cs
│ │ ├── CameraProjectionWindowController.cs.meta
│ │ ├── ConfirmationPopupController.cs
│ │ ├── ConfirmationPopupController.cs.meta
│ │ ├── EmptyWindowController.cs
│ │ ├── EmptyWindowController.cs.meta
│ │ ├── NavigationPanelController.cs
│ │ ├── NavigationPanelController.cs.meta
│ │ ├── PlayerWindowController.cs
│ │ ├── PlayerWindowController.cs.meta
│ │ ├── PopupExampleWindowController.cs
│ │ ├── PopupExampleWindowController.cs.meta
│ │ ├── StartWindowController.cs
│ │ ├── StartWindowController.cs.meta
│ │ ├── ToastPanelController.cs
│ │ └── ToastPanelController.cs.meta
│ ├── ScreenIds.cs
│ ├── ScreenIds.cs.meta
│ ├── ScreenTransitions.meta
│ ├── ScreenTransitions
│ │ ├── ScaleScreenTransition.cs
│ │ ├── ScaleScreenTransition.cs.meta
│ │ ├── SlideScreenTransition.cs
│ │ └── SlideScreenTransition.cs.meta
│ ├── UIDemoController.cs
│ ├── UIDemoController.cs.meta
│ ├── Widgets.meta
│ └── Widgets
│ │ ├── AutoMove.cs
│ │ ├── AutoMove.cs.meta
│ │ ├── LevelProgressComponent.cs
│ │ ├── LevelProgressComponent.cs.meta
│ │ ├── NavigationPanelButton.cs
│ │ ├── NavigationPanelButton.cs.meta
│ │ ├── UIFollowComponent.cs
│ │ └── UIFollowComponent.cs.meta
│ ├── UIPrefabEnvironment.unity
│ └── UIPrefabEnvironment.unity.meta
├── LICENSE
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
└── VFXManager.asset
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | [Ll]ibrary/
2 | [Tt]emp/
3 | [Oo]bj/
4 | [Bb]uild/
5 | [Bb]uilds/
6 | [Ll]ogs/
7 |
8 | # Never ignore Asset meta data
9 | ![Aa]ssets/**/*.meta
10 |
11 | # Uncomment this line if you wish to ignore the asset store tools plugin
12 | # [Aa]ssets/AssetStoreTools*
13 |
14 | # TextMesh Pro files
15 | [Aa]ssets/TextMesh*Pro/
16 |
17 | # Visual Studio cache directory
18 | .vs/
19 |
20 | # Gradle cache directory
21 | .gradle/
22 |
23 | # Autogenerated VS/MD/Consulo solution and project files
24 | ExportedObj/
25 | .consulo/
26 | *.csproj
27 | *.unityproj
28 | *.sln
29 | *.suo
30 | *.tmp
31 | *.user
32 | *.userprefs
33 | *.pidb
34 | *.booproj
35 | *.svd
36 | *.pdb
37 | *.mdb
38 | *.opendb
39 | *.VC.db
40 |
41 | # Unity3D generated meta files
42 | *.pidb.meta
43 | *.pdb.meta
44 | *.mdb.meta
45 |
46 | # Unity3D generated file on crash reports
47 | sysinfo.txt
48 |
49 | # Builds
50 | *.apk
51 | *.unitypackage
52 |
53 | # Crashlytics generated file
54 | crashlytics-build.properties
55 |
--------------------------------------------------------------------------------
/Assets/External.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cb228d7ad5a5c044db0b3afc4fb99551
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db750336266e41341881bb90ec6682dd
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba150ee564f24b7458637a31d7a0f35d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/DOTween.XML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 34192c5e0d14aee43a0e86cc4823268a
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/DOTween.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/DOTween.dll
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/DOTween.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a811bde74b26b53498b4f6d872b09b6d
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | platformData:
13 | - first:
14 | Any:
15 | second:
16 | enabled: 1
17 | settings: {}
18 | - first:
19 | Editor: Editor
20 | second:
21 | enabled: 0
22 | settings:
23 | DefaultValueInitialized: true
24 | - first:
25 | Windows Store Apps: WindowsStoreApps
26 | second:
27 | enabled: 0
28 | settings:
29 | CPU: AnyCPU
30 | userData:
31 | assetBundleName:
32 | assetBundleVariant:
33 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 053c8ab184cdc5c41a6fc07fa444e278
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2e2c6224d345d9249acfa6e8ef40bb2d
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 45d5034162d6cf04dbe46da84fc7d074
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | platformData:
13 | - first:
14 | Any:
15 | second:
16 | enabled: 0
17 | settings: {}
18 | - first:
19 | Editor: Editor
20 | second:
21 | enabled: 1
22 | settings:
23 | DefaultValueInitialized: true
24 | - first:
25 | Windows Store Apps: WindowsStoreApps
26 | second:
27 | enabled: 0
28 | settings:
29 | CPU: AnyCPU
30 | userData:
31 | assetBundleName:
32 | assetBundleVariant:
33 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8d2d80da4577cd5458cd0ea94e0e04bf
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8da095e39e9b4df488dfd436f81116d6
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 128
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 128
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID:
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7051dba417b3d53409f2918f1ea4938d
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 256
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 256
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID:
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 519694efe2bb2914788b151fbd8c01f4
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -1
31 | maxTextureSize: 1024
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 256
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID:
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78a59ca99f8987941adb61f9e14a06a7
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 512
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 512
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID:
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 670b969bfee00fc43ad3a39db5131f84
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b766d08851589514b97afb23c6f30a70
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dae9aa560b4242648a3affa2bfabc365
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 230fe34542e175245ba74b4659dae700
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | #if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
5 | using System;
6 | using UnityEngine;
7 | using DG.Tweening.Core;
8 | using DG.Tweening.Plugins.Options;
9 |
10 | #pragma warning disable 1591
11 | namespace DG.Tweening
12 | {
13 | public static class DOTweenModuleSprite
14 | {
15 | #region Shortcuts
16 |
17 | #region SpriteRenderer
18 |
19 | /// Tweens a SpriteRenderer's color to the given value.
20 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
21 | /// The end value to reachThe duration of the tween
22 | public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration)
23 | {
24 | TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
25 | t.SetTarget(target);
26 | return t;
27 | }
28 |
29 | /// Tweens a Material's alpha color to the given value.
30 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
31 | /// The end value to reachThe duration of the tween
32 | public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration)
33 | {
34 | TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
35 | t.SetTarget(target);
36 | return t;
37 | }
38 |
39 | /// Tweens a SpriteRenderer's color using the given gradient
40 | /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
41 | /// Also stores the image as the tween's target so it can be used for filtered operations
42 | /// The gradient to useThe duration of the tween
43 | public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
44 | {
45 | Sequence s = DOTween.Sequence();
46 | GradientColorKey[] colors = gradient.colorKeys;
47 | int len = colors.Length;
48 | for (int i = 0; i < len; ++i) {
49 | GradientColorKey c = colors[i];
50 | if (i == 0 && c.time <= 0) {
51 | target.color = c.color;
52 | continue;
53 | }
54 | float colorDuration = i == len - 1
55 | ? duration - s.Duration(false) // Verifies that total duration is correct
56 | : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
57 | s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
58 | }
59 | return s;
60 | }
61 |
62 | #endregion
63 |
64 | #region Blendables
65 |
66 | #region SpriteRenderer
67 |
68 | /// Tweens a SpriteRenderer's color to the given value,
69 | /// in a way that allows other DOBlendableColor tweens to work together on the same target,
70 | /// instead than fight each other as multiple DOColor would do.
71 | /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations
72 | /// The value to tween toThe duration of the tween
73 | public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
74 | {
75 | endValue = endValue - target.color;
76 | Color to = new Color(0, 0, 0, 0);
77 | return DOTween.To(() => to, x => {
78 | Color diff = x - to;
79 | to = x;
80 | target.color += diff;
81 | }, endValue, duration)
82 | .Blendable().SetTarget(target);
83 | }
84 |
85 | #endregion
86 |
87 | #endregion
88 |
89 | #endregion
90 | }
91 | }
92 | #endif
93 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 188918ab119d93148aa0de59ccf5286b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a060394c03331a64392db53a10e7f2d1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 63c02322328255542995bd02b47b0457
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7bcaf917d9cf5b84090421a5a2abe42e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/readme.txt:
--------------------------------------------------------------------------------
1 | DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant
2 |
3 | // IMPORTANT!!! /////////////////////////////////////////////
4 | // Upgrading DOTween from versions older than 1.2.000 ///////
5 | // (or DOTween Pro older than 1.0.000) //////////////////////
6 | -------------------------------------------------------------
7 | If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully.
8 | 1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry
9 | 2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath
10 | 3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup
11 | 4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only)
12 |
13 | // GET STARTED //////////////////////////////////////////////
14 |
15 | - After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween.
16 | - In your code, add "using DG.Tweening" to each class where you want to use DOTween.
17 | - You're ready to tween. Check out the links below for full documentation and license info.
18 |
19 |
20 | // LINKS ///////////////////////////////////////////////////////
21 |
22 | DOTween website (documentation, examples, etc): http://dotween.demigiant.com
23 | DOTween license: http://dotween.demigiant.com/license.php
24 | DOTween repository (Google Code): https://code.google.com/p/dotween/
25 | Demigiant website (documentation, examples, etc): http://www.demigiant.com
26 |
27 | // NOTES //////////////////////////////////////////////////////
28 |
29 | - DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences
--------------------------------------------------------------------------------
/Assets/External/Demigiant/DOTween/readme.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fccfc62abf2eb0a4db614853430894fd
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/Signals.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e3d56b039b7b4503b1ea26b3420fc4cf
3 | timeCreated: 1552848472
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f54d1bd14bd3ca042bd867b519fee8cc
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8e7e8f5a82a3a134e91c54efd2274ea9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1b8d251f9af63b746bf2f7ffe00ebb9b
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 243e06394e614e5d99fab26083b707fa
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 731f1baa9d144a9897cb1d341c2092b8
3 | folderAsset: yes
4 | timeCreated: 1442040525
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: LiberationSans SDF - Drop Shadow
10 | m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
11 | m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON
12 | m_LightmapFlags: 5
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _Cube:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _FaceTex:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _MainTex:
34 | m_Texture: {fileID: 2846298, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _OutlineTex:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | m_Floats:
42 | - _Ambient: 0.5
43 | - _Bevel: 0.5
44 | - _BevelClamp: 0
45 | - _BevelOffset: 0
46 | - _BevelRoundness: 0
47 | - _BevelWidth: 0
48 | - _BumpFace: 0
49 | - _BumpOutline: 0
50 | - _ColorMask: 15
51 | - _Diffuse: 0.5
52 | - _DiffusePower: 1
53 | - _FaceDilate: 0.1
54 | - _FaceUVSpeedX: 0
55 | - _FaceUVSpeedY: 0
56 | - _GlowInner: 0.05
57 | - _GlowOffset: 0
58 | - _GlowOuter: 0.05
59 | - _GlowPower: 0.75
60 | - _GradientScale: 10
61 | - _LightAngle: 3.1416
62 | - _MaskSoftnessX: 0
63 | - _MaskSoftnessY: 0
64 | - _OutlineSoftness: 0
65 | - _OutlineUVSpeedX: 0
66 | - _OutlineUVSpeedY: 0
67 | - _OutlineWidth: 0.1
68 | - _PerspectiveFilter: 0.875
69 | - _Reflectivity: 10
70 | - _ScaleRatioA: 0.9
71 | - _ScaleRatioB: 0.73125
72 | - _ScaleRatioC: 0.64125
73 | - _ScaleX: 1
74 | - _ScaleY: 1
75 | - _ShaderFlags: 0
76 | - _SpecularPower: 2
77 | - _Stencil: 0
78 | - _StencilComp: 8
79 | - _StencilOp: 0
80 | - _StencilReadMask: 255
81 | - _StencilWriteMask: 255
82 | - _TextureHeight: 1024
83 | - _TextureWidth: 1024
84 | - _UnderlayDilate: 0
85 | - _UnderlayOffsetX: 0.5
86 | - _UnderlayOffsetY: -0.5
87 | - _UnderlaySoftness: 0.05
88 | - _VertexOffsetX: 0
89 | - _VertexOffsetY: 0
90 | - _WeightBold: 0.75
91 | - _WeightNormal: 0
92 | m_Colors:
93 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
94 | - _Color: {r: 1, g: 1, b: 1, a: 1}
95 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
96 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1}
97 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
98 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
99 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
100 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
101 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
102 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
103 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
104 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e73a58f6e2794ae7b1b7e50b7fb811b0
3 | timeCreated: 1484172806
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: LiberationSans SDF - Outline
10 | m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
11 | m_ShaderKeywords: OUTLINE_ON
12 | m_LightmapFlags: 5
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: 3000
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _Cube:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _FaceTex:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _MainTex:
34 | m_Texture: {fileID: 2846298, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _OutlineTex:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | m_Floats:
42 | - _Ambient: 0.5
43 | - _Bevel: 0.5
44 | - _BevelClamp: 0
45 | - _BevelOffset: 0
46 | - _BevelRoundness: 0
47 | - _BevelWidth: 0
48 | - _BumpFace: 0
49 | - _BumpOutline: 0
50 | - _ColorMask: 15
51 | - _Diffuse: 0.5
52 | - _FaceDilate: 0.1
53 | - _FaceUVSpeedX: 0
54 | - _FaceUVSpeedY: 0
55 | - _GlowInner: 0.05
56 | - _GlowOffset: 0
57 | - _GlowOuter: 0.05
58 | - _GlowPower: 0.75
59 | - _GradientScale: 10
60 | - _LightAngle: 3.1416
61 | - _MaskSoftnessX: 0
62 | - _MaskSoftnessY: 0
63 | - _OutlineSoftness: 0
64 | - _OutlineUVSpeedX: 0
65 | - _OutlineUVSpeedY: 0
66 | - _OutlineWidth: 0.1
67 | - _PerspectiveFilter: 0.875
68 | - _Reflectivity: 10
69 | - _ScaleRatioA: 0.9
70 | - _ScaleRatioB: 0.73125
71 | - _ScaleRatioC: 0.64125
72 | - _ScaleX: 1
73 | - _ScaleY: 1
74 | - _ShaderFlags: 0
75 | - _SpecularPower: 2
76 | - _Stencil: 0
77 | - _StencilComp: 8
78 | - _StencilOp: 0
79 | - _StencilReadMask: 255
80 | - _StencilWriteMask: 255
81 | - _TextureHeight: 1024
82 | - _TextureWidth: 1024
83 | - _UnderlayDilate: 0
84 | - _UnderlayOffsetX: 0
85 | - _UnderlayOffsetY: 0
86 | - _UnderlaySoftness: 0
87 | - _VertexOffsetX: 0
88 | - _VertexOffsetY: 0
89 | - _WeightBold: 0.75
90 | - _WeightNormal: 0
91 | m_Colors:
92 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
93 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
94 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1}
95 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
96 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
97 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
98 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
99 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
100 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
101 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
102 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 79459efec17a4d00a321bdcc27bbc385
3 | timeCreated: 1484172856
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8f586378b4e144a9851e7b34d9b748ee
3 | timeCreated: 1484171803
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/LineBreaking Following Characters.txt:
--------------------------------------------------------------------------------
1 | )]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,.
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fade42e8bc714b018fac513c043d323b
3 | timeCreated: 1425440388
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/LineBreaking Leading Characters.txt:
--------------------------------------------------------------------------------
1 | ([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇〉》」$⦆¥₩ #
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d82c1b31c7e74239bff1220585707d2b
3 | timeCreated: 1425440388
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 99f836c9cb9345dba2e72c4a1f2d0695
3 | folderAsset: yes
4 | timeCreated: 1436068007
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader:
--------------------------------------------------------------------------------
1 | Shader "TextMeshPro/Bitmap Custom Atlas" {
2 |
3 | Properties {
4 | _MainTex ("Font Atlas", 2D) = "white" {}
5 | _FaceTex ("Font Texture", 2D) = "white" {}
6 | _FaceColor ("Text Color", Color) = (1,1,1,1)
7 |
8 | _VertexOffsetX ("Vertex OffsetX", float) = 0
9 | _VertexOffsetY ("Vertex OffsetY", float) = 0
10 | _MaskSoftnessX ("Mask SoftnessX", float) = 0
11 | _MaskSoftnessY ("Mask SoftnessY", float) = 0
12 |
13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
14 | _Padding ("Padding", float) = 0
15 |
16 | _StencilComp("Stencil Comparison", Float) = 8
17 | _Stencil("Stencil ID", Float) = 0
18 | _StencilOp("Stencil Operation", Float) = 0
19 | _StencilWriteMask("Stencil Write Mask", Float) = 255
20 | _StencilReadMask("Stencil Read Mask", Float) = 255
21 |
22 | _ColorMask("Color Mask", Float) = 15
23 | }
24 |
25 | SubShader{
26 |
27 | Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
28 |
29 | Stencil
30 | {
31 | Ref[_Stencil]
32 | Comp[_StencilComp]
33 | Pass[_StencilOp]
34 | ReadMask[_StencilReadMask]
35 | WriteMask[_StencilWriteMask]
36 | }
37 |
38 |
39 | Lighting Off
40 | Cull [_CullMode]
41 | ZTest [unity_GUIZTestMode]
42 | ZWrite Off
43 | Fog { Mode Off }
44 | Blend SrcAlpha OneMinusSrcAlpha
45 | ColorMask[_ColorMask]
46 |
47 | Pass {
48 | CGPROGRAM
49 | #pragma vertex vert
50 | #pragma fragment frag
51 |
52 | #pragma multi_compile __ UNITY_UI_CLIP_RECT
53 | #pragma multi_compile __ UNITY_UI_ALPHACLIP
54 |
55 |
56 | #include "UnityCG.cginc"
57 |
58 | struct appdata_t {
59 | float4 vertex : POSITION;
60 | fixed4 color : COLOR;
61 | float2 texcoord0 : TEXCOORD0;
62 | float2 texcoord1 : TEXCOORD1;
63 | };
64 |
65 | struct v2f {
66 | float4 vertex : SV_POSITION;
67 | fixed4 color : COLOR;
68 | float2 texcoord0 : TEXCOORD0;
69 | float2 texcoord1 : TEXCOORD1;
70 | float4 mask : TEXCOORD2;
71 | };
72 |
73 | uniform sampler2D _MainTex;
74 | uniform sampler2D _FaceTex;
75 | uniform float4 _FaceTex_ST;
76 | uniform fixed4 _FaceColor;
77 |
78 | uniform float _VertexOffsetX;
79 | uniform float _VertexOffsetY;
80 | uniform float4 _ClipRect;
81 | uniform float _MaskSoftnessX;
82 | uniform float _MaskSoftnessY;
83 |
84 | float2 UnpackUV(float uv)
85 | {
86 | float2 output;
87 | output.x = floor(uv / 4096);
88 | output.y = uv - 4096 * output.x;
89 |
90 | return output * 0.001953125;
91 | }
92 |
93 | v2f vert (appdata_t v)
94 | {
95 | float4 vert = v.vertex;
96 | vert.x += _VertexOffsetX;
97 | vert.y += _VertexOffsetY;
98 |
99 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
100 |
101 | float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
102 |
103 | fixed4 faceColor = v.color;
104 | faceColor *= _FaceColor;
105 |
106 | v2f OUT;
107 | OUT.vertex = vPosition;
108 | OUT.color = faceColor;
109 | OUT.texcoord0 = v.texcoord0;
110 | OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
111 | float2 pixelSize = vPosition.w;
112 | pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
113 |
114 | // Clamp _ClipRect to 16bit.
115 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
116 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
117 |
118 | return OUT;
119 | }
120 |
121 | fixed4 frag (v2f IN) : SV_Target
122 | {
123 | fixed4 color = tex2D(_MainTex, IN.texcoord0) * tex2D(_FaceTex, IN.texcoord1) * IN.color;
124 |
125 | // Alternative implementation to UnityGet2DClipping with support for softness.
126 | #if UNITY_UI_CLIP_RECT
127 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
128 | color *= m.x * m.y;
129 | #endif
130 |
131 | #if UNITY_UI_ALPHACLIP
132 | clip(color.a - 0.001);
133 | #endif
134 |
135 | return color;
136 | }
137 | ENDCG
138 | }
139 | }
140 |
141 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
142 | }
143 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 48bb5f55d8670e349b6e614913f9d910
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader:
--------------------------------------------------------------------------------
1 | Shader "TextMeshPro/Mobile/Bitmap" {
2 |
3 | Properties {
4 | _MainTex ("Font Atlas", 2D) = "white" {}
5 | _Color ("Text Color", Color) = (1,1,1,1)
6 | _DiffusePower ("Diffuse Power", Range(1.0,4.0)) = 1.0
7 |
8 | _VertexOffsetX("Vertex OffsetX", float) = 0
9 | _VertexOffsetY("Vertex OffsetY", float) = 0
10 | _MaskSoftnessX("Mask SoftnessX", float) = 0
11 | _MaskSoftnessY("Mask SoftnessY", float) = 0
12 |
13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
14 |
15 | _StencilComp("Stencil Comparison", Float) = 8
16 | _Stencil("Stencil ID", Float) = 0
17 | _StencilOp("Stencil Operation", Float) = 0
18 | _StencilWriteMask("Stencil Write Mask", Float) = 255
19 | _StencilReadMask("Stencil Read Mask", Float) = 255
20 |
21 | _ColorMask("Color Mask", Float) = 15
22 | }
23 |
24 | SubShader {
25 |
26 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
27 |
28 | Stencil
29 | {
30 | Ref[_Stencil]
31 | Comp[_StencilComp]
32 | Pass[_StencilOp]
33 | ReadMask[_StencilReadMask]
34 | WriteMask[_StencilWriteMask]
35 | }
36 |
37 |
38 | Lighting Off
39 | Cull Off
40 | ZTest [unity_GUIZTestMode]
41 | ZWrite Off
42 | Fog { Mode Off }
43 | Blend SrcAlpha OneMinusSrcAlpha
44 | ColorMask[_ColorMask]
45 |
46 | Pass {
47 | CGPROGRAM
48 | #pragma vertex vert
49 | #pragma fragment frag
50 | #pragma fragmentoption ARB_precision_hint_fastest
51 |
52 | #pragma multi_compile __ UNITY_UI_CLIP_RECT
53 | #pragma multi_compile __ UNITY_UI_ALPHACLIP
54 |
55 |
56 | #include "UnityCG.cginc"
57 |
58 | struct appdata_t {
59 | float4 vertex : POSITION;
60 | fixed4 color : COLOR;
61 | float2 texcoord0 : TEXCOORD0;
62 | float2 texcoord1 : TEXCOORD1;
63 | };
64 |
65 | struct v2f {
66 | float4 vertex : POSITION;
67 | fixed4 color : COLOR;
68 | float2 texcoord0 : TEXCOORD0;
69 | float4 mask : TEXCOORD2;
70 | };
71 |
72 | sampler2D _MainTex;
73 | fixed4 _Color;
74 | float _DiffusePower;
75 |
76 | uniform float _VertexOffsetX;
77 | uniform float _VertexOffsetY;
78 | uniform float4 _ClipRect;
79 | uniform float _MaskSoftnessX;
80 | uniform float _MaskSoftnessY;
81 |
82 | v2f vert (appdata_t v)
83 | {
84 | v2f OUT;
85 | float4 vert = v.vertex;
86 | vert.x += _VertexOffsetX;
87 | vert.y += _VertexOffsetY;
88 |
89 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
90 |
91 | OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert));
92 | OUT.color = v.color;
93 | OUT.color *= _Color;
94 | OUT.color.rgb *= _DiffusePower;
95 | OUT.texcoord0 = v.texcoord0;
96 |
97 | float2 pixelSize = OUT.vertex.w;
98 | //pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
99 |
100 | // Clamp _ClipRect to 16bit.
101 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
102 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
103 |
104 | return OUT;
105 | }
106 |
107 | fixed4 frag (v2f IN) : COLOR
108 | {
109 | fixed4 color = fixed4(IN.color.rgb, IN.color.a * tex2D(_MainTex, IN.texcoord0).a);
110 |
111 | // Alternative implementation to UnityGet2DClipping with support for softness.
112 | #if UNITY_UI_CLIP_RECT
113 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
114 | color *= m.x * m.y;
115 | #endif
116 |
117 | #if UNITY_UI_ALPHACLIP
118 | clip(color.a - 0.001);
119 | #endif
120 |
121 | return color;
122 | }
123 | ENDCG
124 | }
125 | }
126 |
127 | SubShader {
128 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
129 | Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off }
130 | Blend SrcAlpha OneMinusSrcAlpha
131 | BindChannels {
132 | Bind "Color", color
133 | Bind "Vertex", vertex
134 | Bind "TexCoord", texcoord0
135 | }
136 | Pass {
137 | SetTexture [_MainTex] {
138 | constantColor [_Color] combine constant * primary, constant * texture
139 | }
140 | }
141 | }
142 |
143 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
144 | }
145 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1e3b057af24249748ff873be7fafee47
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader:
--------------------------------------------------------------------------------
1 | Shader "TextMeshPro/Bitmap" {
2 |
3 | Properties {
4 | _MainTex ("Font Atlas", 2D) = "white" {}
5 | _FaceTex ("Font Texture", 2D) = "white" {}
6 | _FaceColor ("Text Color", Color) = (1,1,1,1)
7 |
8 | _VertexOffsetX ("Vertex OffsetX", float) = 0
9 | _VertexOffsetY ("Vertex OffsetY", float) = 0
10 | _MaskSoftnessX ("Mask SoftnessX", float) = 0
11 | _MaskSoftnessY ("Mask SoftnessY", float) = 0
12 |
13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
14 |
15 | _StencilComp("Stencil Comparison", Float) = 8
16 | _Stencil("Stencil ID", Float) = 0
17 | _StencilOp("Stencil Operation", Float) = 0
18 | _StencilWriteMask("Stencil Write Mask", Float) = 255
19 | _StencilReadMask("Stencil Read Mask", Float) = 255
20 |
21 | _ColorMask("Color Mask", Float) = 15
22 | }
23 |
24 | SubShader{
25 |
26 | Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
27 |
28 | Stencil
29 | {
30 | Ref[_Stencil]
31 | Comp[_StencilComp]
32 | Pass[_StencilOp]
33 | ReadMask[_StencilReadMask]
34 | WriteMask[_StencilWriteMask]
35 | }
36 |
37 |
38 | Lighting Off
39 | Cull [_CullMode]
40 | ZTest [unity_GUIZTestMode]
41 | ZWrite Off
42 | Fog { Mode Off }
43 | Blend SrcAlpha OneMinusSrcAlpha
44 | ColorMask[_ColorMask]
45 |
46 | Pass {
47 | CGPROGRAM
48 | #pragma vertex vert
49 | #pragma fragment frag
50 |
51 | #pragma multi_compile __ UNITY_UI_CLIP_RECT
52 | #pragma multi_compile __ UNITY_UI_ALPHACLIP
53 |
54 |
55 | #include "UnityCG.cginc"
56 |
57 | struct appdata_t {
58 | float4 vertex : POSITION;
59 | fixed4 color : COLOR;
60 | float2 texcoord0 : TEXCOORD0;
61 | float2 texcoord1 : TEXCOORD1;
62 | };
63 |
64 | struct v2f {
65 | float4 vertex : SV_POSITION;
66 | fixed4 color : COLOR;
67 | float2 texcoord0 : TEXCOORD0;
68 | float2 texcoord1 : TEXCOORD1;
69 | float4 mask : TEXCOORD2;
70 | };
71 |
72 | uniform sampler2D _MainTex;
73 | uniform sampler2D _FaceTex;
74 | uniform float4 _FaceTex_ST;
75 | uniform fixed4 _FaceColor;
76 |
77 | uniform float _VertexOffsetX;
78 | uniform float _VertexOffsetY;
79 | uniform float4 _ClipRect;
80 | uniform float _MaskSoftnessX;
81 | uniform float _MaskSoftnessY;
82 |
83 | float2 UnpackUV(float uv)
84 | {
85 | float2 output;
86 | output.x = floor(uv / 4096);
87 | output.y = uv - 4096 * output.x;
88 |
89 | return output * 0.001953125;
90 | }
91 |
92 | v2f vert (appdata_t v)
93 | {
94 | float4 vert = v.vertex;
95 | vert.x += _VertexOffsetX;
96 | vert.y += _VertexOffsetY;
97 |
98 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
99 |
100 | float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
101 |
102 | fixed4 faceColor = v.color;
103 | faceColor *= _FaceColor;
104 |
105 | v2f OUT;
106 | OUT.vertex = vPosition;
107 | OUT.color = faceColor;
108 | OUT.texcoord0 = v.texcoord0;
109 | OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
110 | float2 pixelSize = vPosition.w;
111 | pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
112 |
113 | // Clamp _ClipRect to 16bit.
114 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
115 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
116 |
117 | return OUT;
118 | }
119 |
120 | fixed4 frag (v2f IN) : SV_Target
121 | {
122 | fixed4 color = tex2D(_MainTex, IN.texcoord0);
123 | color = fixed4 (tex2D(_FaceTex, IN.texcoord1).rgb * IN.color.rgb, IN.color.a * color.a);
124 |
125 | // Alternative implementation to UnityGet2DClipping with support for softness.
126 | #if UNITY_UI_CLIP_RECT
127 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
128 | color *= m.x * m.y;
129 | #endif
130 |
131 | #if UNITY_UI_ALPHACLIP
132 | clip(color.a - 0.001);
133 | #endif
134 |
135 | return color;
136 | }
137 | ENDCG
138 | }
139 | }
140 |
141 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
142 | }
143 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 128e987d567d4e2c824d754223b3f3b0
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF Overlay.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dd89cf5b9246416f84610a006f916af7
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Masking.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bc1ede39bf3643ee8e493720e4259791
3 | timeCreated: 1463704911
4 | licenseType: Pro
5 | ShaderImporter:
6 | defaultTextures: []
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Overlay.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a02a7d8c237544f1962732b55a9aebf1
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe393ace9b354375a9cb14cdbbc28be4
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader:
--------------------------------------------------------------------------------
1 | // Simplified version of the SDF Surface shader :
2 | // - No support for Bevel, Bump or envmap
3 | // - Diffuse only lighting
4 | // - Fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH.
5 |
6 | Shader "TextMeshPro/Mobile/Distance Field (Surface)" {
7 |
8 | Properties {
9 | _FaceTex ("Fill Texture", 2D) = "white" {}
10 | _FaceColor ("Fill Color", Color) = (1,1,1,1)
11 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0
12 |
13 | _OutlineColor ("Outline Color", Color) = (0,0,0,1)
14 | _OutlineTex ("Outline Texture", 2D) = "white" {}
15 | _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
16 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0
17 |
18 | _GlowColor ("Color", Color) = (0, 1, 0, 0.5)
19 | _GlowOffset ("Offset", Range(-1,1)) = 0
20 | _GlowInner ("Inner", Range(0,1)) = 0.05
21 | _GlowOuter ("Outer", Range(0,1)) = 0.05
22 | _GlowPower ("Falloff", Range(1, 0)) = 0.75
23 |
24 | _WeightNormal ("Weight Normal", float) = 0
25 | _WeightBold ("Weight Bold", float) = 0.5
26 |
27 | // Should not be directly exposed to the user
28 | _ShaderFlags ("Flags", float) = 0
29 | _ScaleRatioA ("Scale RatioA", float) = 1
30 | _ScaleRatioB ("Scale RatioB", float) = 1
31 | _ScaleRatioC ("Scale RatioC", float) = 1
32 |
33 | _MainTex ("Font Atlas", 2D) = "white" {}
34 | _TextureWidth ("Texture Width", float) = 512
35 | _TextureHeight ("Texture Height", float) = 512
36 | _GradientScale ("Gradient Scale", float) = 5.0
37 | _ScaleX ("Scale X", float) = 1.0
38 | _ScaleY ("Scale Y", float) = 1.0
39 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
40 |
41 | _VertexOffsetX ("Vertex OffsetX", float) = 0
42 | _VertexOffsetY ("Vertex OffsetY", float) = 0
43 |
44 | //_MaskCoord ("Mask Coords", vector) = (0,0,0,0)
45 | //_MaskSoftness ("Mask Softness", float) = 0
46 | }
47 |
48 | SubShader {
49 |
50 | Tags {
51 | "Queue"="Transparent"
52 | "IgnoreProjector"="True"
53 | "RenderType"="Transparent"
54 | }
55 |
56 | LOD 300
57 | Cull [_CullMode]
58 |
59 | CGPROGRAM
60 | #pragma surface PixShader Lambert alpha:blend vertex:VertShader noforwardadd nolightmap nodirlightmap
61 | #pragma target 3.0
62 | #pragma shader_feature __ GLOW_ON
63 |
64 | #include "TMPro_Properties.cginc"
65 | #include "TMPro.cginc"
66 |
67 | half _FaceShininess;
68 | half _OutlineShininess;
69 |
70 | struct Input
71 | {
72 | fixed4 color : COLOR;
73 | float2 uv_MainTex;
74 | float2 uv2_FaceTex;
75 | float2 uv2_OutlineTex;
76 | float2 param; // Weight, Scale
77 | float3 viewDirEnv;
78 | };
79 |
80 | #include "TMPro_Surface.cginc"
81 |
82 | ENDCG
83 |
84 | // Pass to render object as a shadow caster
85 | Pass
86 | {
87 | Name "Caster"
88 | Tags { "LightMode" = "ShadowCaster" }
89 | Offset 1, 1
90 |
91 | Fog {Mode Off}
92 | ZWrite On ZTest LEqual Cull Off
93 |
94 | CGPROGRAM
95 | #pragma vertex vert
96 | #pragma fragment frag
97 | #pragma multi_compile_shadowcaster
98 | #include "UnityCG.cginc"
99 |
100 | struct v2f {
101 | V2F_SHADOW_CASTER;
102 | float2 uv : TEXCOORD1;
103 | float2 uv2 : TEXCOORD3;
104 | float alphaClip : TEXCOORD2;
105 | };
106 |
107 | uniform float4 _MainTex_ST;
108 | uniform float4 _OutlineTex_ST;
109 | float _OutlineWidth;
110 | float _FaceDilate;
111 | float _ScaleRatioA;
112 |
113 | v2f vert( appdata_base v )
114 | {
115 | v2f o;
116 | TRANSFER_SHADOW_CASTER(o)
117 | o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
118 | o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex);
119 | o.alphaClip = o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2;
120 | return o;
121 | }
122 |
123 | uniform sampler2D _MainTex;
124 |
125 | float4 frag(v2f i) : COLOR
126 | {
127 | fixed4 texcol = tex2D(_MainTex, i.uv).a;
128 | clip(texcol.a - i.alphaClip);
129 | SHADOW_CASTER_FRAGMENT(i)
130 | }
131 | ENDCG
132 | }
133 | }
134 |
135 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
136 | }
137 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 85187c2149c549c5b33f0cdb02836b17
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f7ada0af4f174f0694ca6a487b8f543d
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_SDF.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 68e6db2ebdc24f95958faec2be5558d6
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader:
--------------------------------------------------------------------------------
1 | Shader "TextMeshPro/Sprite"
2 | {
3 | Properties
4 | {
5 | _MainTex ("Sprite Texture", 2D) = "white" {}
6 | _Color ("Tint", Color) = (1,1,1,1)
7 |
8 | _StencilComp ("Stencil Comparison", Float) = 8
9 | _Stencil ("Stencil ID", Float) = 0
10 | _StencilOp ("Stencil Operation", Float) = 0
11 | _StencilWriteMask ("Stencil Write Mask", Float) = 255
12 | _StencilReadMask ("Stencil Read Mask", Float) = 255
13 |
14 | _ColorMask ("Color Mask", Float) = 15
15 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
16 |
17 | [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
18 | }
19 |
20 | SubShader
21 | {
22 | Tags
23 | {
24 | "Queue"="Transparent"
25 | "IgnoreProjector"="True"
26 | "RenderType"="Transparent"
27 | "PreviewType"="Plane"
28 | "CanUseSpriteAtlas"="True"
29 | }
30 |
31 | Stencil
32 | {
33 | Ref [_Stencil]
34 | Comp [_StencilComp]
35 | Pass [_StencilOp]
36 | ReadMask [_StencilReadMask]
37 | WriteMask [_StencilWriteMask]
38 | }
39 |
40 | Cull Off
41 | Lighting Off
42 | ZWrite Off
43 | ZTest [unity_GUIZTestMode]
44 | Blend SrcAlpha OneMinusSrcAlpha
45 | ColorMask [_ColorMask]
46 |
47 | Pass
48 | {
49 | CGPROGRAM
50 | #pragma vertex vert
51 | #pragma fragment frag
52 |
53 | #include "UnityCG.cginc"
54 | #include "UnityUI.cginc"
55 |
56 | #pragma multi_compile __ UNITY_UI_CLIP_RECT
57 | #pragma multi_compile __ UNITY_UI_ALPHACLIP
58 |
59 | struct appdata_t
60 | {
61 | float4 vertex : POSITION;
62 | float4 color : COLOR;
63 | float2 texcoord : TEXCOORD0;
64 | };
65 |
66 | struct v2f
67 | {
68 | float4 vertex : SV_POSITION;
69 | fixed4 color : COLOR;
70 | half2 texcoord : TEXCOORD0;
71 | float4 worldPosition : TEXCOORD1;
72 | };
73 |
74 | fixed4 _Color;
75 | fixed4 _TextureSampleAdd;
76 | float4 _ClipRect;
77 |
78 | v2f vert(appdata_t IN)
79 | {
80 | v2f OUT;
81 | OUT.worldPosition = IN.vertex;
82 | OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
83 |
84 | OUT.texcoord = IN.texcoord;
85 |
86 | #ifdef UNITY_HALF_TEXEL_OFFSET
87 | OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
88 | #endif
89 |
90 | OUT.color = IN.color * _Color;
91 | return OUT;
92 | }
93 |
94 | sampler2D _MainTex;
95 |
96 | fixed4 frag(v2f IN) : SV_Target
97 | {
98 | half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
99 |
100 | #if UNITY_UI_CLIP_RECT
101 | color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
102 | #endif
103 |
104 | #ifdef UNITY_UI_ALPHACLIP
105 | clip (color.a - 0.001);
106 | #endif
107 |
108 | return color;
109 | }
110 | ENDCG
111 | }
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cf81c85f95fe47e1a27f6ae460cf182c
3 | timeCreated: 1450517184
4 | licenseType: Pro
5 | ShaderImporter:
6 | defaultTextures: []
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMPro.cginc:
--------------------------------------------------------------------------------
1 | float2 UnpackUV(float uv)
2 | {
3 | float2 output;
4 | output.x = floor(uv / 4096);
5 | output.y = uv - 4096 * output.x;
6 |
7 | return output * 0.001953125;
8 | }
9 |
10 | fixed4 GetColor(half d, fixed4 faceColor, fixed4 outlineColor, half outline, half softness)
11 | {
12 | half faceAlpha = 1-saturate((d - outline * 0.5 + softness * 0.5) / (1.0 + softness));
13 | half outlineAlpha = saturate((d + outline * 0.5)) * sqrt(min(1.0, outline));
14 |
15 | faceColor.rgb *= faceColor.a;
16 | outlineColor.rgb *= outlineColor.a;
17 |
18 | faceColor = lerp(faceColor, outlineColor, outlineAlpha);
19 |
20 | faceColor *= faceAlpha;
21 |
22 | return faceColor;
23 | }
24 |
25 | float3 GetSurfaceNormal(float4 h, float bias)
26 | {
27 | bool raisedBevel = step(1, fmod(_ShaderFlags, 2));
28 |
29 | h += bias+_BevelOffset;
30 |
31 | float bevelWidth = max(.01, _OutlineWidth+_BevelWidth);
32 |
33 | // Track outline
34 | h -= .5;
35 | h /= bevelWidth;
36 | h = saturate(h+.5);
37 |
38 | if(raisedBevel) h = 1 - abs(h*2.0 - 1.0);
39 | h = lerp(h, sin(h*3.141592/2.0), _BevelRoundness);
40 | h = min(h, 1.0-_BevelClamp);
41 | h *= _Bevel * bevelWidth * _GradientScale * -2.0;
42 |
43 | float3 va = normalize(float3(1.0, 0.0, h.y - h.x));
44 | float3 vb = normalize(float3(0.0, -1.0, h.w - h.z));
45 |
46 | return cross(va, vb);
47 | }
48 |
49 | float3 GetSurfaceNormal(float2 uv, float bias, float3 delta)
50 | {
51 | // Read "height field"
52 | float4 h = {tex2D(_MainTex, uv - delta.xz).a,
53 | tex2D(_MainTex, uv + delta.xz).a,
54 | tex2D(_MainTex, uv - delta.zy).a,
55 | tex2D(_MainTex, uv + delta.zy).a};
56 |
57 | return GetSurfaceNormal(h, bias);
58 | }
59 |
60 | float3 GetSpecular(float3 n, float3 l)
61 | {
62 | float spec = pow(max(0.0, dot(n, l)), _Reflectivity);
63 | return _SpecularColor.rgb * spec * _SpecularPower;
64 | }
65 |
66 | float4 GetGlowColor(float d, float scale)
67 | {
68 | float glow = d - (_GlowOffset*_ScaleRatioB) * 0.5 * scale;
69 | float t = lerp(_GlowInner, (_GlowOuter * _ScaleRatioB), step(0.0, glow)) * 0.5 * scale;
70 | glow = saturate(abs(glow/(1.0 + t)));
71 | glow = 1.0-pow(glow, _GlowPower);
72 | glow *= sqrt(min(1.0, t)); // Fade off glow thinner than 1 screen pixel
73 | return float4(_GlowColor.rgb, saturate(_GlowColor.a * glow * 2));
74 | }
75 |
76 | float4 BlendARGB(float4 overlying, float4 underlying)
77 | {
78 | overlying.rgb *= overlying.a;
79 | underlying.rgb *= underlying.a;
80 | float3 blended = overlying.rgb + ((1-overlying.a)*underlying.rgb);
81 | float alpha = underlying.a + (1-underlying.a)*overlying.a;
82 | return float4(blended, alpha);
83 | }
84 |
85 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMPro.cginc.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 407bc68d299748449bbf7f48ee690f8d
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc:
--------------------------------------------------------------------------------
1 | // UI Editable properties
2 | uniform sampler2D _FaceTex; // Alpha : Signed Distance
3 | uniform float _FaceUVSpeedX;
4 | uniform float _FaceUVSpeedY;
5 | uniform fixed4 _FaceColor; // RGBA : Color + Opacity
6 | uniform float _FaceDilate; // v[ 0, 1]
7 | uniform float _OutlineSoftness; // v[ 0, 1]
8 |
9 | uniform sampler2D _OutlineTex; // RGBA : Color + Opacity
10 | uniform float _OutlineUVSpeedX;
11 | uniform float _OutlineUVSpeedY;
12 | uniform fixed4 _OutlineColor; // RGBA : Color + Opacity
13 | uniform float _OutlineWidth; // v[ 0, 1]
14 |
15 | uniform float _Bevel; // v[ 0, 1]
16 | uniform float _BevelOffset; // v[-1, 1]
17 | uniform float _BevelWidth; // v[-1, 1]
18 | uniform float _BevelClamp; // v[ 0, 1]
19 | uniform float _BevelRoundness; // v[ 0, 1]
20 |
21 | uniform sampler2D _BumpMap; // Normal map
22 | uniform float _BumpOutline; // v[ 0, 1]
23 | uniform float _BumpFace; // v[ 0, 1]
24 |
25 | uniform samplerCUBE _Cube; // Cube / sphere map
26 | uniform fixed4 _ReflectFaceColor; // RGB intensity
27 | uniform fixed4 _ReflectOutlineColor;
28 | //uniform float _EnvTiltX; // v[-1, 1]
29 | //uniform float _EnvTiltY; // v[-1, 1]
30 | uniform float3 _EnvMatrixRotation;
31 | uniform float4x4 _EnvMatrix;
32 |
33 | uniform fixed4 _SpecularColor; // RGB intensity
34 | uniform float _LightAngle; // v[ 0,Tau]
35 | uniform float _SpecularPower; // v[ 0, 1]
36 | uniform float _Reflectivity; // v[ 5, 15]
37 | uniform float _Diffuse; // v[ 0, 1]
38 | uniform float _Ambient; // v[ 0, 1]
39 |
40 | uniform fixed4 _UnderlayColor; // RGBA : Color + Opacity
41 | uniform float _UnderlayOffsetX; // v[-1, 1]
42 | uniform float _UnderlayOffsetY; // v[-1, 1]
43 | uniform float _UnderlayDilate; // v[-1, 1]
44 | uniform float _UnderlaySoftness; // v[ 0, 1]
45 |
46 | uniform fixed4 _GlowColor; // RGBA : Color + Intesity
47 | uniform float _GlowOffset; // v[-1, 1]
48 | uniform float _GlowOuter; // v[ 0, 1]
49 | uniform float _GlowInner; // v[ 0, 1]
50 | uniform float _GlowPower; // v[ 1, 1/(1+4*4)]
51 |
52 | // API Editable properties
53 | uniform float _ShaderFlags;
54 | uniform float _WeightNormal;
55 | uniform float _WeightBold;
56 |
57 | uniform float _ScaleRatioA;
58 | uniform float _ScaleRatioB;
59 | uniform float _ScaleRatioC;
60 |
61 | uniform float _VertexOffsetX;
62 | uniform float _VertexOffsetY;
63 |
64 | //uniform float _UseClipRect;
65 | uniform float _MaskID;
66 | uniform sampler2D _MaskTex;
67 | uniform float4 _MaskCoord;
68 | uniform float4 _ClipRect; // bottom left(x,y) : top right(z,w)
69 | //uniform float _MaskWipeControl;
70 | //uniform float _MaskEdgeSoftness;
71 | //uniform fixed4 _MaskEdgeColor;
72 | //uniform bool _MaskInverse;
73 |
74 | uniform float _MaskSoftnessX;
75 | uniform float _MaskSoftnessY;
76 |
77 | // Font Atlas properties
78 | uniform sampler2D _MainTex;
79 | uniform float _TextureWidth;
80 | uniform float _TextureHeight;
81 | uniform float _GradientScale;
82 | uniform float _ScaleX;
83 | uniform float _ScaleY;
84 | uniform float _PerspectiveFilter;
85 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3997e2241185407d80309a82f9148466
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Shaders/TMPro_Surface.cginc.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d930090c0cd643c7b55f19a38538c162
3 | ShaderImporter:
4 | defaultTextures: []
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Sprite Assets.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 512a49d95c0c4332bdd98131869c23c9
3 | folderAsset: yes
4 | timeCreated: 1441876896
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c41005c129ba4d66911b75229fd70b45
3 | timeCreated: 1480316912
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Style Sheets.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4aecb92fff08436c8303b10eab8da368
3 | folderAsset: yes
4 | timeCreated: 1441876950
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f952c082cb03451daed3ee968ac6c63e
3 | timeCreated: 1432805430
4 | licenseType: Store
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/TMP Settings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_PrefabParentObject: {fileID: 0}
7 | m_PrefabInternal: {fileID: 0}
8 | m_GameObject: {fileID: 0}
9 | m_Enabled: 1
10 | m_EditorHideFlags: 0
11 | m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3}
12 | m_Name: TMP Settings
13 | m_EditorClassIdentifier:
14 | m_enableWordWrapping: 1
15 | m_enableKerning: 1
16 | m_enableExtraPadding: 0
17 | m_enableTintAllSprites: 0
18 | m_enableParseEscapeCharacters: 1
19 | m_missingGlyphCharacter: 0
20 | m_warningsDisabled: 0
21 | m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
22 | m_defaultFontAssetPath: Fonts & Materials/
23 | m_defaultFontSize: 36
24 | m_defaultAutoSizeMinRatio: 0.5
25 | m_defaultAutoSizeMaxRatio: 2
26 | m_defaultTextMeshProTextContainerSize: {x: 20, y: 5}
27 | m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50}
28 | m_autoSizeTextContainer: 0
29 | m_fallbackFontAssets: []
30 | m_matchMaterialPreset: 1
31 | m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45,
32 | type: 2}
33 | m_defaultSpriteAssetPath: Sprite Assets/
34 | m_defaultColorGradientPresetsPath: Color Gradient Presets/
35 | m_enableEmojiSupport: 1
36 | m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e,
37 | type: 2}
38 | m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3}
39 | m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b,
40 | type: 3}
41 | m_FontCreatorRecentSettings:
42 | - sourceFontFileName:
43 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21
44 | pointSizeSamplingMode: 1
45 | pointSize: 109
46 | padding: 12
47 | packingMode: 0
48 | atlasWidth: 128
49 | atlasHeight: 128
50 | characterSetSelectionMode: 5
51 | characterSequence: 64
52 | fontStyle: 0
53 | fontStyleModifier: 2
54 | renderMode: 281
55 | includeFontFeatures: 0
56 | referenceFontAssetGUID: 903613a9fe4b65946aa20dfcce07abec
57 | - sourceFontFileName:
58 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21
59 | pointSizeSamplingMode: 0
60 | pointSize: 108
61 | padding: 12
62 | packingMode: 0
63 | atlasWidth: 128
64 | atlasHeight: 128
65 | characterSetSelectionMode: 5
66 | characterSequence: 64
67 | fontStyle: 0
68 | fontStyleModifier: 2
69 | renderMode: 2090
70 | includeFontFeatures: 0
71 | referenceFontAssetGUID: 70cf10c1d306ada42aa6cd7268db990d
72 | - sourceFontFileName:
73 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21
74 | pointSizeSamplingMode: 1
75 | pointSize: 109
76 | padding: 12
77 | packingMode: 0
78 | atlasWidth: 128
79 | atlasHeight: 128
80 | characterSetSelectionMode: 5
81 | characterSequence: 64
82 | fontStyle: 0
83 | fontStyleModifier: 2
84 | renderMode: 329
85 | includeFontFeatures: 0
86 | referenceFontAssetGUID: 396d465a5821ead47b589b228da7e980
87 | - sourceFontFileName:
88 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21
89 | pointSizeSamplingMode: 1
90 | pointSize: 338
91 | padding: 36
92 | packingMode: 0
93 | atlasWidth: 4096
94 | atlasHeight: 4096
95 | characterSetSelectionMode: 1
96 | characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633
97 | fontStyle: 0
98 | fontStyleModifier: 2
99 | renderMode: 329
100 | includeFontFeatures: 0
101 | referenceFontAssetGUID: 3a4171c252e1112499af739474d9f48e
102 | m_CreationSettingsSelectionIndex: 0
103 | m_CreationSettingsIndex: 0
104 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Resources/TMP Settings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f5b5dff67a942289a9defa416b206f3
3 | timeCreated: 1436653997
4 | licenseType: Pro
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Sprites.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d0603b6d5186471b96c778c3949c7ce2
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt:
--------------------------------------------------------------------------------
1 | This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/
2 |
3 | Please visit their website to view the complete set of their emojis and review their licensing terms.
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 381dcb09d5029d14897e55f98031fca5
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Sprites/EmojiOne.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8f05276190cf498a8153f6cbe761d4e6
3 | timeCreated: 1480316860
4 | licenseType: Pro
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/External/TextMesh Pro/Sprites/EmojiOne.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/External/TextMesh Pro/Sprites/EmojiOne.png
--------------------------------------------------------------------------------
/Assets/PlayerData.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: b11b6e8c98789024f8399c1d2ea4e995, type: 3}
13 | m_Name: PlayerData
14 | m_EditorClassIdentifier:
15 | levelProgress:
16 | - LevelName: Commando Chaos
17 | Stars: 2
18 | - LevelName: Citadel Complex
19 | Stars: 2
20 | - LevelName: Azure Oubliette
21 | Stars: 1
22 | - LevelName: Gun Vortex
23 | Stars: 0
24 |
--------------------------------------------------------------------------------
/Assets/PlayerData.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c3df7728a16d6e643b12a51a42b3d074
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5a249e1ef524fcd49ae3bdaa270183bc
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resources/DOTweenSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 16995157, guid: a811bde74b26b53498b4f6d872b09b6d, type: 3}
13 | m_Name: DOTweenSettings
14 | m_EditorClassIdentifier:
15 | useSafeMode: 1
16 | safeModeOptions:
17 | nestedTweenFailureBehaviour: 0
18 | timeScale: 1
19 | useSmoothDeltaTime: 0
20 | maxSmoothUnscaledTime: 0.15
21 | rewindCallbackMode: 0
22 | showUnityEditorReport: 0
23 | logBehaviour: 0
24 | drawGizmos: 1
25 | defaultRecyclable: 0
26 | defaultAutoPlay: 3
27 | defaultUpdateType: 0
28 | defaultTimeScaleIndependent: 0
29 | defaultEaseType: 6
30 | defaultEaseOvershootOrAmplitude: 1.70158
31 | defaultEasePeriod: 0
32 | defaultAutoKill: 1
33 | defaultLoopType: 0
34 | showPreviewPanel: 1
35 | storeSettingsLocation: 0
36 | modules:
37 | showPanel: 0
38 | audioEnabled: 0
39 | physicsEnabled: 0
40 | physics2DEnabled: 0
41 | spriteEnabled: 1
42 | uiEnabled: 1
43 | textMeshProEnabled: 0
44 | tk2DEnabled: 0
45 | showPlayingTweens: 0
46 | showPausedTweens: 0
47 |
--------------------------------------------------------------------------------
/Assets/Resources/DOTweenSettings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9103e9261ac9e0544beaf4923610af56
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/StartHere.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fbcea6b69932d0d47a10c2cc60f5e164
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFramework.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 45881f9202dcb12448c4f6c6356d76f9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: aad81f4b464f8cd4aa7eeb2dbfdb4f50
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/AUILayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a93f138be96272e4b8311ae28b9aac54
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/AUIScreenController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6ec9ebe91abca44daa8263178a8e3bd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/ScreenControllerInterfaces.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace deVoid.UIFramework {
4 | ///
5 | /// Interface that all UI Screens must implement directly or indirectly
6 | ///
7 | public interface IUIScreenController {
8 | string ScreenId { get; set; }
9 | bool IsVisible { get; }
10 |
11 | void Show(IScreenProperties props = null);
12 | void Hide(bool animate = true);
13 |
14 | Action InTransitionFinished { get; set; }
15 | Action OutTransitionFinished { get; set; }
16 | Action CloseRequest { get; set; }
17 | Action ScreenDestroyed { get; set; }
18 | }
19 |
20 | ///
21 | /// Interface that all Windows must implement
22 | ///
23 | public interface IWindowController : IUIScreenController {
24 | bool HideOnForegroundLost { get; }
25 | bool IsPopup { get; }
26 | WindowPriority WindowPriority { get; }
27 | }
28 |
29 | ///
30 | /// Interface that all Panels must implement
31 | ///
32 | public interface IPanelController : IUIScreenController {
33 | PanelPriority Priority { get; }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/ScreenControllerInterfaces.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 95d1d3dfa4d4e7f468bff24445d68bcd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/ScreenPropertyInterfaces.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework
2 | {
3 | ///
4 | /// Base interface for all the screen properties
5 | ///
6 | public interface IScreenProperties { }
7 |
8 | ///
9 | /// Base interface for all Panel properties
10 | ///
11 | public interface IPanelProperties : IScreenProperties
12 | {
13 | PanelPriority Priority { get; set; }
14 | }
15 |
16 | ///
17 | /// Base interface for Window properties.
18 | ///
19 | public interface IWindowProperties : IScreenProperties
20 | {
21 | WindowPriority WindowQueuePriority { get; set; }
22 | bool HideOnForegroundLost { get; set; }
23 | bool IsPopup { get; set; }
24 | bool SuppressPrefabProperties { get; set; }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Core/ScreenPropertyInterfaces.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 58c4b0eeea4655d4ba2491b198400441
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 69d45d361a7fc2e48a68675569d59381
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Editor/UIFrameworkTools.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bf58572716e1f644a9bd72a4eeeb2264
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/MANUAL.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 42d065c557635534cb0dd4c08548e8c6
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d28989458f4606541b8f3afdab43a1c8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/APanelController.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework {
2 | ///
3 | /// Base class for panels that need no special Properties
4 | ///
5 | public abstract class APanelController : APanelController { }
6 |
7 | ///
8 | /// Base class for Panels
9 | ///
10 | public abstract class APanelController : AUIScreenController, IPanelController where T : IPanelProperties {
11 | public PanelPriority Priority {
12 | get {
13 | if (Properties != null) {
14 | return Properties.Priority;
15 | }
16 | else {
17 | return PanelPriority.None;
18 | }
19 | }
20 | }
21 |
22 | protected sealed override void SetProperties(T props) {
23 | base.SetProperties(props);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/APanelController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 933ea2239ce61f84e90669c3cc06c3cb
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelPriority.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using UnityEngine;
3 |
4 | namespace deVoid.UIFramework
5 | {
6 | ///
7 | /// Defines to which para-layer
8 | /// the panel is going to be parented to
9 | ///
10 | public enum PanelPriority {
11 | None = 0,
12 | Prioritary = 1,
13 | Tutorial = 2,
14 | Blocker = 3,
15 | }
16 |
17 | [System.Serializable]
18 | public class PanelPriorityLayerListEntry {
19 | [SerializeField]
20 | [Tooltip("The panel priority type for a given target para-layer")]
21 | private PanelPriority priority;
22 | [SerializeField]
23 | [Tooltip("The GameObject that should house all Panels tagged with this priority")]
24 | private Transform targetParent;
25 |
26 | public Transform TargetParent {
27 | get { return targetParent; }
28 | set { targetParent = value; }
29 | }
30 |
31 | public PanelPriority Priority {
32 | get { return priority; }
33 | set { priority = value; }
34 | }
35 |
36 | public PanelPriorityLayerListEntry(PanelPriority prio, Transform parent) {
37 | priority = prio;
38 | targetParent = parent;
39 | }
40 | }
41 |
42 | [System.Serializable]
43 | public class PanelPriorityLayerList {
44 | [SerializeField]
45 | [Tooltip("A lookup of GameObjects to store panels depending on their Priority. Render priority is set by the hierarchy order of these GameObjects")]
46 | private List paraLayers = null;
47 |
48 | private Dictionary lookup;
49 |
50 | public Dictionary ParaLayerLookup {
51 | get {
52 | if (lookup == null || lookup.Count == 0) {
53 | CacheLookup();
54 | }
55 |
56 | return lookup;
57 | }
58 | }
59 |
60 | private void CacheLookup() {
61 | lookup = new Dictionary();
62 | for (int i = 0; i < paraLayers.Count; i++) {
63 | lookup.Add(paraLayers[i].Priority, paraLayers[i].TargetParent);
64 | }
65 | }
66 |
67 | public PanelPriorityLayerList(List entries) {
68 | paraLayers = entries;
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelPriority.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 90c6a81fca344ec69e812dd54d6af9ae
3 | timeCreated: 1552756429
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelProperties.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace deVoid.UIFramework {
4 | ///
5 | /// Properties common to all panels
6 | ///
7 | [System.Serializable]
8 | public class PanelProperties : IPanelProperties {
9 | [SerializeField]
10 | [Tooltip("Panels go to different para-layers depending on their priority. You can set up para-layers in the Panel Layer.")]
11 | private PanelPriority priority;
12 |
13 | public PanelPriority Priority {
14 | get { return priority; }
15 | set { priority = value; }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelProperties.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e5e7b052a1d3f054697c1d84445f71ab
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelUILayer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 |
5 | namespace deVoid.UIFramework {
6 | ///
7 | /// This Layer controls Panels.
8 | /// Panels are Screens that have no history or queuing,
9 | /// they are simply shown and hidden in the Frame
10 | /// eg: a HUD, an energy bar, a mini map etc.
11 | ///
12 | public class PanelUILayer : AUILayer {
13 | [SerializeField]
14 | [Tooltip("Settings for the priority para-layers. A Panel registered to this layer will be reparented to a different para-layer object depending on its Priority.")]
15 | private PanelPriorityLayerList priorityLayers = null;
16 |
17 | public override void ReparentScreen(IUIScreenController controller, Transform screenTransform) {
18 | var ctl = controller as IPanelController;
19 | if (ctl != null) {
20 | ReparentToParaLayer(ctl.Priority, screenTransform);
21 | }
22 | else {
23 | base.ReparentScreen(controller, screenTransform);
24 | }
25 | }
26 |
27 | public override void ShowScreen(IPanelController screen) {
28 | screen.Show();
29 | }
30 |
31 | public override void ShowScreen(IPanelController screen, TProps properties) {
32 | screen.Show(properties);
33 | }
34 |
35 | public override void HideScreen(IPanelController screen) {
36 | screen.Hide();
37 | }
38 |
39 | public bool IsPanelVisible(string panelId) {
40 | IPanelController panel;
41 | if (registeredScreens.TryGetValue(panelId, out panel)) {
42 | return panel.IsVisible;
43 | }
44 |
45 | return false;
46 | }
47 |
48 | private void ReparentToParaLayer(PanelPriority priority, Transform screenTransform) {
49 | Transform trans;
50 | if (!priorityLayers.ParaLayerLookup.TryGetValue(priority, out trans)) {
51 | trans = transform;
52 | }
53 |
54 | screenTransform.SetParent(trans, false);
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Panel/PanelUILayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3192e4f9ae2f1d7468c1a8b4ec79c8df
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/README.md:
--------------------------------------------------------------------------------
1 | # deVoid UI Framework
2 | **TL;DR:**
3 | *Step 1:*
4 |
5 | Right click on project view
6 | `Create -> deVoid UI -> UIFrame Prefab`
7 | then drag the Prefab onto your scene
8 |
9 | *Step 2:*
10 | Get a reference to your UI Frame and register some screens
11 | `uiFrame.RegisterScreen("YourScreenId", yourScreenPrefab);`
12 |
13 | *Step 3:*
14 | Show your screens
15 | `uiFrame.OpenWindow("YourWindowId");`
16 | `uiFrame.ShowPanel("YourPanelId");`
17 |
18 | Or, if you have some data payload
19 |
20 | `uiFrame.OpenWindow("YourWindowId", yourWindowProperties);`
21 | `uiFrame.ShowPanel("YourPanelId", yourPanelProperties);`
22 |
23 | *Step 4:*
24 | Now that you're familiar with the API, right click on project view
25 | `Create -> deVoid UI -> UI Settings`
26 |
27 | Rig your UI Frame prefab as the UI Template, drag all your screens in the Screens To Register list and simply do
28 |
29 | `uiFrame = yourUiSettings.CreateUIInstance();`
30 |
31 | Which will give you a new UI Frame instance and automatically do *Step 2* for you.
32 |
33 | Make sure to check out [the examples repo](https://github.com/yankooliveira/uiframework_examples) and read [the manual](https://github.com/yankooliveira/uiframework/blob/master/MANUAL.md)!
34 |
35 | ## What?
36 | The *deVoid UI Framework* (or **devUI** for short) is a simple architecture for UI handling and navigation in Unity. It enforces one simple rule: *you can **never** directly access the internals of your UI code from external code*, but anything else is fair game. You want to read data from Singletons from inside your UI? Sure. You want to sandwich mediators, views and controllers and do MVC by the book? Go for it. You want to skip the data passing functionalities and use your own MVVM framework? Power to you. Do whatever floats your boat and works best for your needs.
37 |
38 | ## Why?
39 | Having worked with mobile F2P games for years, I've done my fair share of UI. And I *hate* doing UI.
40 | So I figured the more people learn how to do it, the smaller the chances that I ever have to do it again 🌈
41 |
42 | *(Also, sharing is caring and I'm secretly a hippie)*
43 |
44 | ### Features
45 | * Simple to extend and customize
46 | * Support for navigation history and queuing
47 | * Transition animations
48 | * Blocking user input while screens transition (especially handy for touch input)
49 | * Priority and layering
50 | * Focus on type safety and flexibility
51 |
52 | ### Known Limitations
53 | * No built in support for controller navigation
54 |
55 | ### Disclaimer:
56 | This is **A** solution to work with UI - I don't believe in perfect, one-size-fits-all solutions (and nor should you in anyone who tells you otherwise). But this architecture was battle tested in more than one game over the last few years (from game jams to medium and bigger sized games), and it ticked all the boxes for me so far.
57 |
58 | While I tried to keep this it as flexible and as easy to deal with as possible, there is still some structure to be followed. I recommend checking out [the examples repo](https://github.com/yankooliveira/uiframework_examples) and taking a look at [the manual](https://github.com/yankooliveira/uiframework/blob/master/MANUAL.md) before using.
59 |
60 | Although the architecture itself is sound and was tested in live environments, this implementation was made from scratch on my free time. I have been using it for a few months now and did some cleanup and bugfixes for the public release, so it *Should Work(TM)*.
61 |
62 | ### Acknowledgements
63 | A lot of the structure is inspired by a design used by [Renan Rennó](https://www.linkedin.com/in/renanrenno/) when we worked together. Special thanks to everyone who I made use this architecture through the years and to [Sylvain Cornillon](https://www.bossastudios.com/the-team/), who allowed me to open source it and helped me find more proper names for the classes, or I'd be still calling it *"UIManagerOrWhatevs"* cause I'm a rebel.
64 |
65 | You can read my original (even more) verbose post about this architecture [in my blog](http://yankooliveira.com/index.php/2017/12/27/uisystem/) and poke me on twitter [@yankooliveira](https://twitter.com/yankooliveira).
66 |
--------------------------------------------------------------------------------
/Assets/UIFramework/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2a2bb4a6b9c909c4d8854576f9495dee
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2dbf7136f3b050d43b74d2712c1a2d2d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System;
3 |
4 | namespace deVoid.UIFramework {
5 | ///
6 | /// Screens use ATransitionComponents to animate their in and out transitions.
7 | /// This can be extended to use Lerps, animations etc.
8 | ///
9 | public abstract class ATransitionComponent : MonoBehaviour {
10 | ///
11 | /// Animate the specified target transform and execute CallWhenFinished when the animation is done.
12 | ///
13 | /// Target transform.
14 | /// Delegate to be called when animation is finished.
15 | public abstract void Animate(Transform target, Action callWhenFinished);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/ATransitionComponent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c20ef95ae53cf444990bc58f023d0ff6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using UnityEngine;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | ///
8 | /// I have avoided using the Legacy Animation system for ages, but since I know people
9 | /// will want to have hand-authored animations on their UI and I highly recommend
10 | /// *not* using Animator for that, both for workflow and performance reasons
11 | /// (ref: https://www.youtube.com/watch?v=_wxitgdx-UI&t=2883s ),
12 | /// I decided to add this example using the Legacy system. An alternative you can
13 | /// look into is the SimpleAnimationComponent
14 | /// (ref: https://blogs.unity3d.com/2017/11/28/introducing-the-simple-animation-component/ )
15 | /// Although it still runs on top of Animator, at least it might have a simpler workflow.
16 | ///
17 | /// Word of warning: this seems to work, but was barely tested. Be careful if taking it into
18 | /// production :D
19 | ///
20 | public class LegacyAnimationScreenTransition : ATransitionComponent
21 | {
22 | [SerializeField] private AnimationClip clip = null;
23 | [SerializeField] private bool playReverse = false;
24 |
25 | private Action previousCallbackWhenFinished;
26 |
27 | public override void Animate(Transform target, Action callWhenFinished) {
28 | FinishPrevious();
29 | var targetAnimation = target.GetComponent();
30 | if (targetAnimation == null) {
31 | Debug.LogError("[LegacyAnimationScreenTransition] No Animation component in " + target);
32 | if (callWhenFinished != null) {
33 | callWhenFinished();
34 | }
35 |
36 | return;
37 | }
38 |
39 | targetAnimation.clip = clip;
40 | StartCoroutine(PlayAnimationRoutine(targetAnimation, callWhenFinished));
41 | }
42 |
43 | private IEnumerator PlayAnimationRoutine(Animation targetAnimation, Action callWhenFinished) {
44 | previousCallbackWhenFinished = callWhenFinished;
45 | foreach (AnimationState state in targetAnimation) {
46 | state.time = playReverse ? state.clip.length : 0f;
47 | state.speed = playReverse ? -1f : 1f;
48 | }
49 |
50 | targetAnimation.Play(PlayMode.StopAll);
51 | yield return new WaitForSeconds(targetAnimation.clip.length);
52 | FinishPrevious();
53 | }
54 |
55 | private void FinishPrevious() {
56 | if (previousCallbackWhenFinished != null) {
57 | previousCallbackWhenFinished();
58 | previousCallbackWhenFinished = null;
59 | }
60 |
61 | StopAllCoroutines();
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/LegacyAnimationScreenTransition.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 09bbc675c80bb4a4c81b3a98d595de4f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using UnityEngine;
3 |
4 | namespace deVoid.UIFramework
5 | {
6 | ///
7 | /// This is a simple fade transition implemented as a built-in example.
8 | /// I recommend using a free tweening library like DOTween (http://dotween.demigiant.com/)
9 | /// or rolling out your own.
10 | /// Check the Examples project for more robust and battle-tested options:
11 | /// https://github.com/yankooliveira/uiframework_examples
12 | ///
13 | public class SimpleFadeTransition : ATransitionComponent
14 | {
15 | [SerializeField] private float fadeDuration = 0.5f;
16 | [SerializeField] private bool fadeOut = false;
17 |
18 | private CanvasGroup canvasGroup;
19 | private float timer;
20 | private Action currentAction;
21 | private Transform currentTarget;
22 |
23 | private float startValue;
24 | private float endValue;
25 |
26 | private bool shouldAnimate;
27 |
28 | public override void Animate(Transform target, Action callWhenFinished) {
29 | if (currentAction != null) {
30 | canvasGroup.alpha = endValue;
31 | currentAction();
32 | }
33 |
34 | canvasGroup = target.GetComponent();
35 | if (canvasGroup == null) {
36 | canvasGroup = target.gameObject.AddComponent();
37 | }
38 |
39 | if (fadeOut) {
40 | startValue = 1f;
41 | endValue = 0f;
42 | }
43 | else {
44 | startValue = 0f;
45 | endValue = 1f;
46 | }
47 |
48 | currentAction = callWhenFinished;
49 | timer = fadeDuration;
50 |
51 | canvasGroup.alpha = startValue;
52 | shouldAnimate = true;
53 | }
54 |
55 | private void Update() {
56 | if (!shouldAnimate) {
57 | return;
58 | }
59 |
60 | if (timer > 0f) {
61 | timer -= Time.deltaTime;
62 | canvasGroup.alpha = Mathf.Lerp(endValue, startValue, timer / fadeDuration);
63 | }
64 | else {
65 | canvasGroup.alpha = 1f;
66 | if (currentAction != null) {
67 | currentAction();
68 | }
69 |
70 | currentAction = null;
71 | shouldAnimate = false;
72 | }
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/Assets/UIFramework/ScreenTransitions/SimpleFadeTransition.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6f9739af8e894b7b8db28faf4bb2114d
3 | timeCreated: 1552782789
--------------------------------------------------------------------------------
/Assets/UIFramework/UIFrame.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cdc8dba95123fb24c805dbd32dc633ad
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/UISettings.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using UnityEngine;
3 |
4 | namespace deVoid.UIFramework
5 | {
6 | ///
7 | /// Template for an UI. You can rig the prefab for the UI Frame itself and all the screens that should
8 | /// be instanced and registered upon instantiating a new UI Frame.
9 | ///
10 |
11 | [CreateAssetMenu(fileName = "UISettings", menuName = "deVoid UI/UI Settings")]
12 | public class UISettings : ScriptableObject
13 | {
14 | [Tooltip("Prefab for the UI Frame structure itself")]
15 | [SerializeField] private UIFrame templateUIPrefab = null;
16 | [Tooltip("Prefabs for all the screens (both Panels and Windows) that are to be instanced and registered when the UI is instantiated")]
17 | [SerializeField] private List screensToRegister = null;
18 | [Tooltip("In case a screen prefab is not deactivated, should the system automatically deactivate its GameObject upon instantiation? If false, the screen will be at a visible state upon instantiation.")]
19 | [SerializeField] private bool deactivateScreenGOs = true;
20 |
21 | ///
22 | /// Creates an instance of the UI Frame Prefab. By default, also instantiates
23 | /// all the screens listed and registers them. If the deactivateScreenGOs flag is
24 | /// true, it will deactivate all Screen GameObjects in case they're active.
25 | ///
26 | /// Should the screens listed in the Settings file be instanced and registered?
27 | /// A new UI Frame
28 | public UIFrame CreateUIInstance(bool instanceAndRegisterScreens = true) {
29 | var newUI = Instantiate(templateUIPrefab);
30 |
31 | if (instanceAndRegisterScreens) {
32 | foreach (var screen in screensToRegister) {
33 | var screenInstance = Instantiate(screen);
34 | var screenController = screenInstance.GetComponent();
35 |
36 | if (screenController != null) {
37 | newUI.RegisterScreen(screen.name, screenController, screenInstance.transform);
38 | if (deactivateScreenGOs && screenInstance.activeSelf) {
39 | screenInstance.SetActive(false);
40 | }
41 | }
42 | else {
43 | Debug.LogError("[UIConfig] Screen doesn't contain a ScreenController! Skipping " + screen.name);
44 | }
45 | }
46 | }
47 |
48 | return newUI;
49 | }
50 |
51 | private void OnValidate() {
52 | List objectsToRemove = new List();
53 | for(int i = 0; i < screensToRegister.Count; i++) {
54 | var screenCtl = screensToRegister[i].GetComponent();
55 | if (screenCtl == null) {
56 | objectsToRemove.Add(screensToRegister[i]);
57 | }
58 | }
59 |
60 | if (objectsToRemove.Count > 0) {
61 | Debug.LogError("[UISettings] Some GameObjects that were added to the Screen Prefab List didn't have ScreenControllers attached to them! Removing.");
62 | foreach (var obj in objectsToRemove) {
63 | Debug.LogError("[UISettings] Removed " + obj.name + " from " + name + " as it has no Screen Controller attached!");
64 | screensToRegister.Remove(obj);
65 | }
66 | }
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Assets/UIFramework/UISettings.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 414062f9d9180b24eb66136c31c0fe4c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 060eefe3929d6d74c99bfaa02f6d51ab
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/AWindowController.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework
2 | {
3 | ///
4 | /// Base implementation for Window ScreenControllers that need no special Properties
5 | ///
6 | public abstract class AWindowController : AWindowController { }
7 |
8 | ///
9 | /// Base implementation for Window ScreenControllers. Its parameter is a specific type of IWindowProperties.
10 | /// In case your window doesn't need special properties, inherit from AWindowScreenController, without Generic param.
11 | ///
12 | ///
13 | ///
14 | public abstract class AWindowController : AUIScreenController, IWindowController
15 | where TProps : IWindowProperties
16 | {
17 | public bool HideOnForegroundLost {
18 | get { return Properties.HideOnForegroundLost; }
19 | }
20 |
21 | public bool IsPopup {
22 | get { return Properties.IsPopup; }
23 | }
24 |
25 | public WindowPriority WindowPriority {
26 | get { return Properties.WindowQueuePriority; }
27 | }
28 |
29 | ///
30 | /// Requests this Window to be closed, handy for rigging it directly in the Editor.
31 | /// I use the UI_ prefix to group all the methods that should be rigged in the Editor so that it's
32 | /// easy to find the screen-specific methods. It breaks naming convention, but does more good than harm as
33 | /// the amount of methods grow.
34 | /// This is *not* called every time it is closed, just upon user input - for that behaviour, see
35 | /// WhileHiding();
36 | ///
37 | public virtual void UI_Close() {
38 | CloseRequest(this);
39 | }
40 |
41 | protected sealed override void SetProperties(TProps props) {
42 | if (props != null) {
43 | // If the Properties set on the prefab should not be overwritten,
44 | // copy the default values to the passed in properties
45 | if (!props.SuppressPrefabProperties) {
46 | props.HideOnForegroundLost = Properties.HideOnForegroundLost;
47 | props.WindowQueuePriority = Properties.WindowQueuePriority;
48 | props.IsPopup = Properties.IsPopup;
49 | }
50 |
51 | Properties = props;
52 | }
53 | }
54 |
55 | protected override void HierarchyFixOnShow() {
56 | transform.SetAsLastSibling();
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/AWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: aed99ba45b466234fa100e177aba2b8a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowHistoryEntry.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework {
2 | ///
3 | /// An entry for controlling window history and queue
4 | ///
5 | public struct WindowHistoryEntry
6 | {
7 | public readonly IWindowController Screen;
8 | public readonly IWindowProperties Properties;
9 |
10 | public WindowHistoryEntry(IWindowController screen, IWindowProperties properties) {
11 | Screen = screen;
12 | Properties = properties;
13 | }
14 |
15 | public void Show() {
16 | Screen.Show(Properties);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowHistoryEntry.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3e46a9a8cfa1c5b47a7924f92d20d1e4
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowParaLayer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections.Generic;
3 |
4 | namespace deVoid.UIFramework {
5 | ///
6 | /// This is a "helper" layer so Windows with higher priority can be displayed.
7 | /// By default, it contains any window tagged as a Popup. It is controlled by the WindowUILayer.
8 | ///
9 | public class WindowParaLayer : MonoBehaviour {
10 | [SerializeField]
11 | private GameObject darkenBgObject = null;
12 |
13 | private List containedScreens = new List();
14 |
15 | public void AddScreen(Transform screenRectTransform) {
16 | screenRectTransform.SetParent(transform, false);
17 | containedScreens.Add(screenRectTransform.gameObject);
18 | }
19 |
20 | public void RefreshDarken() {
21 | for (int i = 0; i < containedScreens.Count; i++) {
22 | if (containedScreens[i] != null) {
23 | if (containedScreens[i].activeSelf) {
24 | darkenBgObject.SetActive(true);
25 | return;
26 | }
27 | }
28 | }
29 |
30 | darkenBgObject.SetActive(false);
31 | }
32 |
33 | public void DarkenBG() {
34 | darkenBgObject.SetActive(true);
35 | darkenBgObject.transform.SetAsLastSibling();
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowParaLayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a90c3299e98eab34bb731538858f57e7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowPriority.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework {
2 | ///
3 | /// Enum to define behaviour of Windows
4 | /// upon opening, in the history and queue
5 | ///
6 | public enum WindowPriority {
7 | ForceForeground = 0,
8 | Enqueue = 1,
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowPriority.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fba6c1846acd2f24e87bf68bca5e7af3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowProperties.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace deVoid.UIFramework {
4 | ///
5 | /// Properties common to all windows
6 | ///
7 | [System.Serializable]
8 | public class WindowProperties : IWindowProperties {
9 | [SerializeField]
10 | protected bool hideOnForegroundLost = true;
11 |
12 | [SerializeField]
13 | protected WindowPriority windowQueuePriority = WindowPriority.ForceForeground;
14 |
15 | [SerializeField]
16 | protected bool isPopup = false;
17 |
18 | public WindowProperties() {
19 | hideOnForegroundLost = true;
20 | windowQueuePriority = WindowPriority.ForceForeground;
21 | isPopup = false;
22 | }
23 |
24 | ///
25 | /// How should this window behave in case another window
26 | /// is already opened?
27 | ///
28 | /// Force Foreground opens it immediately, Enqueue queues it so that it's opened as soon as
29 | /// the current one is closed.
30 | public WindowPriority WindowQueuePriority {
31 | get { return windowQueuePriority; }
32 | set { windowQueuePriority = value; }
33 | }
34 |
35 | ///
36 | /// Should this window be hidden when other window takes its foreground?
37 | ///
38 | /// true if hide on foreground lost; otherwise, false.
39 | public bool HideOnForegroundLost {
40 | get { return hideOnForegroundLost; }
41 | set { hideOnForegroundLost = value; }
42 | }
43 |
44 | ///
45 | /// When properties are passed in the Open() call, should the ones
46 | /// configured in the viewPrefab be overwritten?
47 | ///
48 | /// true if suppress viewPrefab properties; otherwise, false.
49 | public bool SuppressPrefabProperties { get; set; }
50 |
51 | ///
52 | /// Popups are displayed with a black background behind them and
53 | /// in front of all other Windows
54 | ///
55 | /// true if this window is a popup; otherwise, false.
56 | public bool IsPopup {
57 | get { return isPopup; }
58 | set { isPopup = value; }
59 | }
60 |
61 | public WindowProperties(bool suppressPrefabProperties = false) {
62 | WindowQueuePriority = WindowPriority.ForceForeground;
63 | HideOnForegroundLost = false;
64 | SuppressPrefabProperties = suppressPrefabProperties;
65 | }
66 |
67 | public WindowProperties(WindowPriority priority, bool hideOnForegroundLost = false, bool suppressPrefabProperties = false) {
68 | WindowQueuePriority = priority;
69 | HideOnForegroundLost = hideOnForegroundLost;
70 | SuppressPrefabProperties = suppressPrefabProperties;
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowProperties.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f422d78763364ff4bb71d84ef242b8e6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFramework/Window/WindowUILayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e58584fae0250804580bdeaee2c0a479
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0ac30472955ca3845862445fb795afc1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cfa2cf4eb76afa1409080e7ac225d39d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/3d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/3d.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/3d.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb78cfb5c22903d40b2ccea7b662ecff
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: 8b554541f3e2cf24cb6bbea3816c4c48
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/3dExample_FancyAnimatedTransition.anim.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c57e754a0613a714584cc84ba36b9850
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 7400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/StarParticle.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: StarParticle
11 | m_Shader: {fileID: 210, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords: _ALPHATEST_ON
13 | m_LightmapFlags: 0
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: 2450
17 | stringTagMap:
18 | RenderType: TransparentCutout
19 | disabledShaderPasses:
20 | - ALWAYS
21 | m_SavedProperties:
22 | serializedVersion: 3
23 | m_TexEnvs:
24 | - _BumpMap:
25 | m_Texture: {fileID: 0}
26 | m_Scale: {x: 1, y: 1}
27 | m_Offset: {x: 0, y: 0}
28 | - _DetailAlbedoMap:
29 | m_Texture: {fileID: 0}
30 | m_Scale: {x: 1, y: 1}
31 | m_Offset: {x: 0, y: 0}
32 | - _DetailMask:
33 | m_Texture: {fileID: 0}
34 | m_Scale: {x: 1, y: 1}
35 | m_Offset: {x: 0, y: 0}
36 | - _DetailNormalMap:
37 | m_Texture: {fileID: 0}
38 | m_Scale: {x: 1, y: 1}
39 | m_Offset: {x: 0, y: 0}
40 | - _EmissionMap:
41 | m_Texture: {fileID: 0}
42 | m_Scale: {x: 1, y: 1}
43 | m_Offset: {x: 0, y: 0}
44 | - _MainTex:
45 | m_Texture: {fileID: 2800000, guid: 744ca399348c4294f82e8bd827fa35d5, type: 3}
46 | m_Scale: {x: 1, y: 1}
47 | m_Offset: {x: 0, y: 0}
48 | - _MetallicGlossMap:
49 | m_Texture: {fileID: 0}
50 | m_Scale: {x: 1, y: 1}
51 | m_Offset: {x: 0, y: 0}
52 | - _OcclusionMap:
53 | m_Texture: {fileID: 0}
54 | m_Scale: {x: 1, y: 1}
55 | m_Offset: {x: 0, y: 0}
56 | - _ParallaxMap:
57 | m_Texture: {fileID: 0}
58 | m_Scale: {x: 1, y: 1}
59 | m_Offset: {x: 0, y: 0}
60 | m_Floats:
61 | - _BlendOp: 0
62 | - _BumpScale: 1
63 | - _CameraFadingEnabled: 0
64 | - _CameraFarFadeDistance: 2
65 | - _CameraNearFadeDistance: 1
66 | - _Cull: 2
67 | - _Cutoff: 0.5
68 | - _DetailNormalMapScale: 1
69 | - _DistortionBlend: 0.5
70 | - _DistortionEnabled: 0
71 | - _DistortionStrength: 1
72 | - _DistortionStrengthScaled: 0
73 | - _DstBlend: 0
74 | - _EmissionEnabled: 0
75 | - _FlipbookMode: 0
76 | - _GlossMapScale: 1
77 | - _Glossiness: 0.5
78 | - _GlossyReflections: 1
79 | - _LightingEnabled: 1
80 | - _Metallic: 0
81 | - _Mode: 1
82 | - _OcclusionStrength: 1
83 | - _Parallax: 0.02
84 | - _SmoothnessTextureChannel: 0
85 | - _SoftParticlesEnabled: 0
86 | - _SoftParticlesFarFadeDistance: 1
87 | - _SoftParticlesNearFadeDistance: 0
88 | - _SpecularHighlights: 1
89 | - _SrcBlend: 1
90 | - _UVSec: 0
91 | - _ZWrite: 1
92 | m_Colors:
93 | - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
94 | - _Color: {r: 1, g: 1, b: 1, a: 1}
95 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
96 | - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
97 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/StarParticle.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bf1b8bb369da6a44d8bd4265254615d0
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/Trail.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: Trail
11 | m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords:
13 | m_LightmapFlags: 0
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses:
19 | - ALWAYS
20 | m_SavedProperties:
21 | serializedVersion: 3
22 | m_TexEnvs:
23 | - _BumpMap:
24 | m_Texture: {fileID: 0}
25 | m_Scale: {x: 1, y: 1}
26 | m_Offset: {x: 0, y: 0}
27 | - _DetailAlbedoMap:
28 | m_Texture: {fileID: 0}
29 | m_Scale: {x: 1, y: 1}
30 | m_Offset: {x: 0, y: 0}
31 | - _DetailMask:
32 | m_Texture: {fileID: 0}
33 | m_Scale: {x: 1, y: 1}
34 | m_Offset: {x: 0, y: 0}
35 | - _DetailNormalMap:
36 | m_Texture: {fileID: 0}
37 | m_Scale: {x: 1, y: 1}
38 | m_Offset: {x: 0, y: 0}
39 | - _EmissionMap:
40 | m_Texture: {fileID: 0}
41 | m_Scale: {x: 1, y: 1}
42 | m_Offset: {x: 0, y: 0}
43 | - _MainTex:
44 | m_Texture: {fileID: 0}
45 | m_Scale: {x: 1, y: 1}
46 | m_Offset: {x: 0, y: 0}
47 | - _MetallicGlossMap:
48 | m_Texture: {fileID: 0}
49 | m_Scale: {x: 1, y: 1}
50 | m_Offset: {x: 0, y: 0}
51 | - _OcclusionMap:
52 | m_Texture: {fileID: 0}
53 | m_Scale: {x: 1, y: 1}
54 | m_Offset: {x: 0, y: 0}
55 | - _ParallaxMap:
56 | m_Texture: {fileID: 0}
57 | m_Scale: {x: 1, y: 1}
58 | m_Offset: {x: 0, y: 0}
59 | m_Floats:
60 | - _BlendOp: 0
61 | - _BumpScale: 1
62 | - _CameraFadingEnabled: 0
63 | - _CameraFarFadeDistance: 2
64 | - _CameraNearFadeDistance: 1
65 | - _ColorMode: 0
66 | - _Cull: 2
67 | - _Cutoff: 0.5
68 | - _DetailNormalMapScale: 1
69 | - _DistortionBlend: 0.5
70 | - _DistortionEnabled: 0
71 | - _DistortionStrength: 1
72 | - _DistortionStrengthScaled: 0
73 | - _DstBlend: 0
74 | - _EmissionEnabled: 0
75 | - _FlipbookMode: 0
76 | - _GlossMapScale: 1
77 | - _Glossiness: 0.5
78 | - _GlossyReflections: 1
79 | - _LightingEnabled: 0
80 | - _Metallic: 0
81 | - _Mode: 0
82 | - _OcclusionStrength: 1
83 | - _Parallax: 0.02
84 | - _SmoothnessTextureChannel: 0
85 | - _SoftParticlesEnabled: 0
86 | - _SoftParticlesFarFadeDistance: 1
87 | - _SoftParticlesNearFadeDistance: 0
88 | - _SpecularHighlights: 1
89 | - _SrcBlend: 1
90 | - _UVSec: 0
91 | - _ZWrite: 1
92 | m_Colors:
93 | - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
94 | - _Color: {r: 1, g: 1, b: 1, a: 1}
95 | - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
96 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
97 | - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
98 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/Trail.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 07392310de2491d4a902ee93d342ba79
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/eye.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/eye.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5bef3a0aed901a240aab4d0e45f717ba
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: 2f9d25f3d5a5b5a48bf3f8e08372c650
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/home.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/home.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1e0aafccc644fcc40a0ff98e641cf4ae
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: 49d44c5eeceb5a64bb7ea199f20d3017
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/person.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/person.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/person.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6785b2af006c0554c8176dfb7ae21ee1
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: 68ae5dfff367fea4e8500d88d630da42
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/smiley.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/smiley.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/smiley.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5fe371a3d11c56d4b877ee4f70d9117e
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: c74010edffc2201438a733939139ffc6
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/star.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/star.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 744ca399348c4294f82e8bd827fa35d5
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: d6d2c02c396c94d49925642ff6eb7b8d
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yankooliveira/uiframework_examples/e8d9d72e580dad8825d208d7a4ed97a6c24af725/Assets/UIFrameworkExamples/Art/warning.png
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Art/warning.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9c5ff6b53e8f2d649ba2a5487952cbca
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | spriteSheet:
73 | serializedVersion: 2
74 | sprites: []
75 | outline: []
76 | physicsShape: []
77 | bones: []
78 | spriteID: 64e8d71f899619c499a18733810da47c
79 | vertices: []
80 | indices:
81 | edges: []
82 | weights: []
83 | spritePackingTag:
84 | pSDRemoveMatte: 0
85 | pSDShowRemoveMatteOption: 0
86 | userData:
87 | assetBundleName:
88 | assetBundleVariant:
89 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/DefaultUISettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: 414062f9d9180b24eb66136c31c0fe4c, type: 3}
13 | m_Name: DefaultUISettings
14 | m_EditorClassIdentifier:
15 | templateUIPrefab: {fileID: 358001020665244776, guid: 8ff5283766dd8614a8838c8489cb528c,
16 | type: 3}
17 | screensToRegister:
18 | - {fileID: 7617306793594988998, guid: 0a680a728e2bff444bd5b6b236aac4ee, type: 3}
19 | - {fileID: 3955197997429667027, guid: 45f336f4b18fc084db012ee283bb1be4, type: 3}
20 | - {fileID: 3354577186298565417, guid: 3a68b7318cee11343af713222804c704, type: 3}
21 | - {fileID: 3672568053856412771, guid: fb86aca5b5eaebe4bb3058576a1beadc, type: 3}
22 | - {fileID: 8890043933281423490, guid: e7d17039446a5ac41afee18e47ffc57f, type: 3}
23 | - {fileID: 2592118604778629170, guid: 88f2f76f2f0c8c640930f0bc9d5974c7, type: 3}
24 | - {fileID: 3354577186298565417, guid: 80be0c317fa558843b7df437ee48c2ae, type: 3}
25 | - {fileID: 3354577186298565417, guid: 98220a950995ef343bb8df2130378dda, type: 3}
26 | - {fileID: 2198531993298414313, guid: 5637ec63a9899c340abe04789b5fa363, type: 3}
27 | deactivateScreenGOs: 1
28 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/DefaultUISettings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9ec55674dad24fa459cb72abf8798b47
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 527c565c1edb482438c61bdde0ad91ae
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3d904e81fb147194ca299c7a8c262276
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/CameraProjectionWindow.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98220a950995ef343bb8df2130378dda
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/ConfirmationPopup.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb86aca5b5eaebe4bb3058576a1beadc
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/HomeWindow.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3a68b7318cee11343af713222804c704
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/NavigationPanel.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 45f336f4b18fc084db012ee283bb1be4
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/PlayerWindow.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 88f2f76f2f0c8c640930f0bc9d5974c7
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/PopupExampleWindow.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e7d17039446a5ac41afee18e47ffc57f
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/StartGameWindow.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0a680a728e2bff444bd5b6b236aac4ee
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/ThreeDExample.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 80be0c317fa558843b7df437ee48c2ae
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/Screens/ToastPanel.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5637ec63a9899c340abe04789b5fa363
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Prefabs/UIFrame.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8ff5283766dd8614a8838c8489cb528c
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9b5aaa3eac56b0e40b1fa7c6b345dc46
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 94d3c2c64a33df64e956e17c3c1be1d0
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Editor/ScreenIdGenerator.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e199115da2f5bb049881978738afa5ee
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Extras.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8581e14894a270e4c9f4f1aa48ca0b8b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using deVoid.Utils;
4 | using UnityEngine;
5 |
6 | namespace deVoid.UIFramework.Examples
7 | {
8 | public class PlayerDataUpdatedSignal : ASignal> { }
9 |
10 | [Serializable]
11 | public class PlayerDataEntry
12 | {
13 | public string LevelName;
14 | [Range(0,3)]
15 | public int Stars;
16 | }
17 |
18 | [CreateAssetMenu(fileName = "PlayerData", menuName = "deVoid UI/Fake Player Data")]
19 | public class FakePlayerData : ScriptableObject
20 | {
21 | [SerializeField]
22 | private List levelProgress = null;
23 |
24 | public List LevelProgress {
25 | get { return levelProgress; }
26 | }
27 |
28 | ///
29 | /// This is called by the Unity Editor in MonoBehaviours and
30 | /// ScriptableObjects whenever a value is changed in the inspector.
31 | /// Here I'm using it to propagate the changes for the example,
32 | /// but in practice, you could implement the same kind of behaviour
33 | /// by having an observable variable passed into the screen via its
34 | /// properties, or other forms of data-binding data to the controller.
35 | ///
36 | private void OnValidate() {
37 | Signals.Get().Dispatch(levelProgress);
38 | }
39 | }
40 | }
41 |
42 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Extras/FakePlayerData.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b11b6e8c98789024f8399c1d2ea4e995
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7ff28458e9fdd8842aeed2d0afaaaebc
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | [Serializable]
8 | public class CameraProjectionWindowProperties : WindowProperties
9 | {
10 | public readonly Camera WorldCamera;
11 | public readonly Transform TransformToFollow;
12 |
13 | public CameraProjectionWindowProperties(Camera worldCamera, Transform toFollow) {
14 | WorldCamera = worldCamera;
15 | TransformToFollow = toFollow;
16 | }
17 | }
18 |
19 | public class CameraProjectionWindowController : AWindowController
20 | {
21 | [SerializeField]
22 | private UIFollowComponent followTemplate = null;
23 |
24 | private List allElements = new List();
25 |
26 | protected override void OnPropertiesSet() {
27 | CreateNewLabel(Properties.TransformToFollow,"Look at me!", null);
28 | }
29 |
30 | protected override void WhileHiding() {
31 | foreach (var element in allElements) {
32 | Destroy(element.gameObject);
33 | }
34 | allElements.Clear();
35 | // This is the kind of thing you *COULD* do, but you usually wouldn't
36 | // want to - in theory this is UI code, so it shouldn't control external things.
37 | // This is an example of "with great power comes great responsibility":
38 | // the UI Framework enforces very few rules, but the rest is up to you.
39 | Properties.TransformToFollow.parent.gameObject.SetActive(false);
40 | }
41 |
42 | private void LateUpdate() {
43 | for (int i = 0; i < allElements.Count; i++) {
44 | allElements[i].UpdatePosition(Properties.WorldCamera);
45 | }
46 | }
47 |
48 | private void CreateNewLabel(Transform target, string label, Sprite icon) {
49 | var followComponent = Instantiate(followTemplate, followTemplate.transform.parent, false);
50 | followComponent.LabelDestroyed += OnLabelDestroyed;
51 | followComponent.gameObject.SetActive(true);
52 | followComponent.SetFollow(target);
53 | followComponent.SetText(label);
54 |
55 | if (icon != null) {
56 | followComponent.SetIcon(icon);
57 | }
58 |
59 | allElements.Add(followComponent);
60 | }
61 |
62 | private void OnLabelDestroyed(UIFollowComponent destroyedLabel) {
63 | allElements.Remove(destroyedLabel);
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/CameraProjectionWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f62375b573ca1174b94825b05482e166
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using deVoid.Utils;
3 | using TMPro;
4 | using UnityEngine;
5 | using UnityEngine.UI;
6 |
7 | namespace deVoid.UIFramework.Examples
8 | {
9 | public class ShowConfirmationPopupSignal : ASignal { }
10 |
11 | [Serializable]
12 | public class ConfirmationPopupController: AWindowController
13 | {
14 | [SerializeField] public TextMeshProUGUI titleLabel;
15 | [SerializeField] public TextMeshProUGUI messageLabel;
16 | [SerializeField] public TextMeshProUGUI confirmButtonLabel;
17 | [SerializeField] public TextMeshProUGUI cancelButtonLabel;
18 | [SerializeField] public GameObject cancelButtonObject;
19 | protected override void OnPropertiesSet() {
20 | titleLabel.text = Properties.Title;
21 | messageLabel.text = Properties.Message;
22 | confirmButtonLabel.text = Properties.ConfirmButtonText;
23 | cancelButtonLabel.text = Properties.CancelButtonText;
24 |
25 | cancelButtonObject.SetActive(Properties.CancelAction != null);
26 |
27 | }
28 |
29 | public void UI_Confirm() {
30 | UI_Close();
31 | if (Properties.ConfirmAction != null) {
32 | Properties.ConfirmAction();
33 | }
34 | }
35 |
36 | public void UI_Cancel() {
37 | UI_Close();
38 | if (Properties.CancelAction != null) {
39 | Properties.CancelAction();
40 | }
41 | }
42 | }
43 |
44 | [Serializable]
45 | public class ConfirmationPopupProperties : WindowProperties
46 | {
47 | public readonly string Title;
48 | public readonly string Message;
49 | public readonly string ConfirmButtonText;
50 | public readonly string CancelButtonText;
51 | public readonly Action CancelAction;
52 | public readonly Action ConfirmAction;
53 |
54 | public ConfirmationPopupProperties(string title, string message,
55 | string confirmButtonText = "Confirm", Action confirmAction = null,
56 | string cancelButtonText = "Cancel", Action cancelAction = null) {
57 | Title = title;
58 | Message = message;
59 | ConfirmButtonText = confirmButtonText;
60 | CancelButtonText = cancelButtonText;
61 | CancelAction = cancelAction;
62 | ConfirmAction = confirmAction;
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ConfirmationPopupController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6913d1a1cc99c44f80bf003a9cf820e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs:
--------------------------------------------------------------------------------
1 | namespace deVoid.UIFramework.Examples
2 | {
3 | ///
4 | /// You usually won't have empty windows, as you'll almost always have
5 | /// data to be passed onto them for set up. However, you may have multiple
6 | /// windows that use the same controller, you just need them to have different
7 | /// ids. More than one window in this demo is totally static and defined by
8 | /// its prefab, and they are all using this empty window.
9 | /// Even though it has no implementation, it still provides the functionality
10 | /// for animation/priority etc.
11 | ///
12 | public class EmptyWindowController : AWindowController { }
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/EmptyWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dfde723a98b24660a740ac83905f195e
3 | timeCreated: 1552851288
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using deVoid.UIFramework;
4 | using deVoid.UIFramework.Examples;
5 | using deVoid.Utils;
6 | using UnityEngine;
7 |
8 | [Serializable]
9 | public class NavigationPanelEntry
10 | {
11 | [SerializeField] private Sprite sprite = null;
12 | [SerializeField] private string buttonText = "";
13 | [SerializeField] private string targetScreen = "";
14 |
15 | public Sprite Sprite {
16 | get { return sprite; }
17 | }
18 |
19 | public string ButtonText {
20 | get { return buttonText; }
21 | }
22 |
23 | public string TargetScreen {
24 | get { return targetScreen; }
25 | }
26 | }
27 |
28 | public class NavigateToWindowSignal : ASignal { }
29 | public class NavigationPanelController : APanelController
30 | {
31 | [SerializeField]
32 | private List navigationTargets = new List();
33 | [SerializeField]
34 | private NavigationPanelButton templateButton = null;
35 |
36 | private readonly List currentButtons = new List();
37 |
38 | // I usually always place AddListeners and RemoveListeners together
39 | // to reduce the chances of adding a listener and not removing it.
40 | protected override void AddListeners() {
41 | Signals.Get().AddListener(OnExternalNavigation);
42 | }
43 |
44 | protected override void RemoveListeners() {
45 | Signals.Get().RemoveListener(OnExternalNavigation);
46 | }
47 |
48 | ///
49 | /// This is called whenever this screen is opened
50 | /// be it for the first time or coming from the history/queue
51 | ///
52 | protected override void OnPropertiesSet() {
53 | ClearEntries();
54 | foreach (var target in navigationTargets) {
55 | var newBtn = Instantiate(templateButton);
56 | // When using UI, never forget to pass the parameter
57 | // worldPositionStays as FALSE, otherwise your RectTransform
58 | // won't layout properly after reparenting.
59 | // This is the cause for the most common head-scratching issues
60 | // when starting to deal with Unity UI: adding objects via the editor
61 | // working fine but objects instanced via code having broken sizes/positions
62 | newBtn.transform.SetParent(templateButton.transform.parent, false);
63 | newBtn.SetData(target);
64 | newBtn.gameObject.SetActive(true);
65 | newBtn.ButtonClicked += OnNavigationButtonClicked;
66 | currentButtons.Add(newBtn);
67 | }
68 |
69 | // The first button is selected by default
70 | OnNavigationButtonClicked(currentButtons[0]);
71 | }
72 |
73 | private void OnNavigationButtonClicked(NavigationPanelButton currentlyClickedButton) {
74 | Signals.Get().Dispatch(currentlyClickedButton.Target);
75 | foreach (var button in currentButtons) {
76 | button.SetCurrentNavigationTarget(currentlyClickedButton);
77 | }
78 | }
79 |
80 | private void OnExternalNavigation(string screenId) {
81 | foreach (var button in currentButtons) {
82 | button.SetCurrentNavigationTarget(screenId);
83 | }
84 | }
85 |
86 | private void ClearEntries() {
87 | foreach (var button in currentButtons) {
88 | button.ButtonClicked -= OnNavigationButtonClicked;
89 | Destroy(button.gameObject);
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/NavigationPanelController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 800b00f1adb3ccb42bb2cfee5cf1af23
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using deVoid.Utils;
4 | using UnityEngine;
5 |
6 | namespace deVoid.UIFramework.Examples
7 | {
8 | ///
9 | /// This is the Properties class for this specific window.
10 | /// It carries the payload which will be used to fill up this
11 | /// window upon opening.
12 | ///
13 | [Serializable]
14 | public class PlayerWindowProperties : WindowProperties
15 | {
16 | public readonly List PlayerData;
17 |
18 | public PlayerWindowProperties(List data) {
19 | PlayerData = data;
20 | }
21 | }
22 |
23 | public class PlayerWindowController : AWindowController
24 | {
25 | [SerializeField]
26 | private LevelProgressComponent templateLevelEntry = null;
27 |
28 | private List currentLevels = new List();
29 |
30 | ///
31 | /// Here I'm listening to a global signal that is fired by the ScriptableObject
32 | /// itself as a way of exemplifying how you could do this in your codebase.
33 | /// I could optionally carry the ScriptableObject itself, store a reference to it
34 | /// and do the same process via direct event hooks.
35 | ///
36 | protected override void AddListeners() {
37 | Signals.Get().AddListener(OnDataUpdated);
38 | }
39 |
40 | protected override void RemoveListeners() {
41 | Signals.Get().RemoveListener(OnDataUpdated);
42 | }
43 |
44 | protected override void OnPropertiesSet() {
45 | OnDataUpdated(Properties.PlayerData);
46 | }
47 |
48 | private void OnDataUpdated(List data) {
49 | VerifyElementCount(data.Count);
50 | RefreshElementData(data);
51 | }
52 |
53 | private void VerifyElementCount(int levelCount) {
54 | if (currentLevels.Count == levelCount) {
55 | return;
56 | }
57 |
58 | if (currentLevels.Count < levelCount) {
59 | while (currentLevels.Count < levelCount) {
60 | var newLevel = Instantiate(templateLevelEntry,
61 | templateLevelEntry.transform.parent,
62 | false); // Never forget to pass worldPositionStays as false for UI!
63 | newLevel.gameObject.SetActive(true);
64 | currentLevels.Add(newLevel);
65 | }
66 | }
67 | else {
68 | while (currentLevels.Count > levelCount) {
69 | var levelToRemove = currentLevels[currentLevels.Count - 1];
70 | currentLevels.Remove(levelToRemove);
71 | Destroy(levelToRemove.gameObject);
72 | }
73 | }
74 | }
75 |
76 | private void RefreshElementData(List playerLevelProgress) {
77 | for (int i = 0; i < currentLevels.Count; i++) {
78 | currentLevels[i].SetData(playerLevelProgress[i], i);
79 | }
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PlayerWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7340a46b47324d80b4367278fc02a3b1
3 | timeCreated: 1552944131
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs:
--------------------------------------------------------------------------------
1 | using deVoid.Utils;
2 | using UnityEngine;
3 | using UnityEngine.UI;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | public class PopupExampleWindowController : AWindowController
8 | {
9 | [SerializeField]
10 | private Image exampleImage = null;
11 |
12 | private int currentPopupExample;
13 | private Color originalColor;
14 |
15 | ///
16 | /// You can use all of Unity's regular functions, as Screens
17 | /// are all MonoBehaviours, but don't forget that many of them
18 | /// have important operations being called in their base methods
19 | ///
20 | protected override void Awake() {
21 | base.Awake();
22 | originalColor = exampleImage.color;
23 | }
24 |
25 | public void UI_ShowPopup() {
26 | Signals.Get().Dispatch(GetPopupData());
27 | }
28 |
29 | private ConfirmationPopupProperties GetPopupData() {
30 | ConfirmationPopupProperties testProps = null;
31 |
32 | switch (currentPopupExample) {
33 | case 0:
34 | testProps = new ConfirmationPopupProperties("Uh-oh!",
35 | "You were curious and clicked the button! Try a few more times.",
36 | "Got it!");
37 | break;
38 | case 1:
39 | testProps = new ConfirmationPopupProperties("Question:",
40 | "What is your favourite color?",
41 | "Blue", OnBlueSelected,
42 | "Red", OnRedSelected);
43 | break;
44 | case 2:
45 | testProps = new ConfirmationPopupProperties("Pretty cool huh?",
46 | "Let's return our buddy to its original color.",
47 | "Fine.", OnRevertColors);
48 | break;
49 | case 3:
50 | testProps = new ConfirmationPopupProperties("YOU DIED",
51 | "The Dark Souls of Pop-Ups", "Respawn");
52 | break;
53 | }
54 |
55 | currentPopupExample++;
56 | if (currentPopupExample > 3) {
57 | currentPopupExample = 0;
58 | }
59 |
60 | return testProps;
61 | }
62 |
63 | private void OnRevertColors() {
64 | exampleImage.color = originalColor;
65 | }
66 |
67 | private void OnRedSelected() {
68 | exampleImage.color = Color.red;
69 | }
70 |
71 | private void OnBlueSelected() {
72 | exampleImage.color = Color.blue;
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/PopupExampleWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bdb359b15cef456c87b9d85d0d8a9239
3 | timeCreated: 1552866528
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs:
--------------------------------------------------------------------------------
1 | using deVoid.Utils;
2 |
3 | namespace deVoid.UIFramework.Examples
4 | {
5 | public class StartDemoSignal : ASignal { }
6 |
7 | public class StartWindowController : AWindowController
8 | {
9 | public void UI_Start() {
10 | Signals.Get().Dispatch();
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/StartWindowController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 18cc5984687341548acdac6ef7ea7e6b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using deVoid.Utils;
4 | using DG.Tweening;
5 | using UnityEngine;
6 |
7 | namespace deVoid.UIFramework.Examples
8 | {
9 | ///
10 | /// Yes, this panel is there, all the time, just waiting for its moment to shine
11 | ///
12 | public class ToastPanelController : APanelController
13 | {
14 | [SerializeField] private RectTransform toastRect = null;
15 | [SerializeField] private float toastDuration = 0.5f;
16 | [SerializeField] private float toastPause = 2f;
17 | [SerializeField] private Ease toastEase = Ease.Linear;
18 |
19 | private bool isToasting;
20 |
21 | ///
22 | /// We're making this respond to the same signal as the PlayerWindow does.
23 | /// This allows us to have the toast if it's present, but there's no issues if
24 | /// it's not present for any reason.
25 | ///
26 | protected override void AddListeners() {
27 | Signals.Get().AddListener(OnDataUpdated);
28 | }
29 |
30 | protected override void RemoveListeners() {
31 | Signals.Get().RemoveListener(OnDataUpdated);
32 | }
33 |
34 | private void OnDataUpdated(List data) {
35 | if (isToasting) {
36 | return;
37 | }
38 |
39 | // HACK: more info below
40 | StartCoroutine(YieldForDOTween());
41 | }
42 |
43 | ///
44 | /// TIL: DOTween uses AddComponent internally, which means
45 | /// it can't be called OnValidate.
46 | /// Since I've used that to avoid having a custom inspector
47 | /// just for the FakePlayerData, I'll allow myself this
48 | /// hack, otherwise I'll be stuck writing custom inspectors
49 | /// instead of writing documentation :D
50 | /// It just emits a harmless warning and wouldn't happen
51 | /// in a real-life situation as OnValidate is only called
52 | /// in the Editor.
53 | ///
54 | private IEnumerator YieldForDOTween() {
55 | yield return null;
56 |
57 | isToasting = true;
58 | Sequence seq = DOTween.Sequence();
59 | seq.Append(toastRect.DOAnchorPosY(0f, toastDuration).SetEase(toastEase));
60 | seq.AppendInterval(toastPause);
61 | seq.Append(toastRect.DOAnchorPosY(toastRect.rect.height, toastDuration).SetEase(toastEase));
62 | seq.OnComplete(() => isToasting = false);
63 |
64 | seq.Play();
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenControllers/ToastPanelController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f8605f786ebb9fa438c790fd56239290
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Mono Runtime Version: 2.0.50727.1433
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | // ------------------------------------------------------------------------------
10 |
11 | namespace deVoid.UIFramework.Examples {
12 |
13 |
14 | public sealed class ScreenIds {
15 |
16 | public const string CameraProjectionWindow = "CameraProjectionWindow";
17 |
18 | public const string ConfirmationPopup = "ConfirmationPopup";
19 |
20 | public const string HomeWindow = "HomeWindow";
21 |
22 | public const string NavigationPanel = "NavigationPanel";
23 |
24 | public const string PlayerWindow = "PlayerWindow";
25 |
26 | public const string PopupExampleWindow = "PopupExampleWindow";
27 |
28 | public const string StartGameWindow = "StartGameWindow";
29 |
30 | public const string ThreeDExample = "ThreeDExample";
31 |
32 | public const string ToastPanel = "ToastPanel";
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenIds.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 141738f766781504a879b1eed120a1ff
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenTransitions.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fa502d0ef331d52469b273533283b66c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using DG.Tweening;
3 | using UnityEngine;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | public class ScaleScreenTransition : ATransitionComponent
8 | {
9 | [SerializeField] protected bool isOutAnimation;
10 | [SerializeField] protected float duration = 0.5f;
11 | [SerializeField] protected bool doFade;
12 | [SerializeField] protected float fadeDurationPercent = 0.5f;
13 | [SerializeField] protected Ease ease = Ease.Linear;
14 | [SerializeField] [Range(0f, 1f)]
15 | protected float xYSplit = 0.25f;
16 |
17 | public override void Animate(Transform target, Action callWhenFinished) {
18 | RectTransform rTransform = target as RectTransform;
19 | CanvasGroup canvasGroup = null;
20 | if (doFade) {
21 | canvasGroup = rTransform.GetComponent();
22 | if (canvasGroup == null) {
23 | canvasGroup = rTransform.gameObject.AddComponent();
24 | }
25 |
26 | canvasGroup.DOFade(isOutAnimation ? 0f : 1f, duration * fadeDurationPercent);
27 | }
28 |
29 | rTransform.DOKill();
30 | if (isOutAnimation) {
31 | rTransform.DOScale(0f, duration).SetEase(ease)
32 | .OnComplete(() => Cleanup(callWhenFinished, rTransform, canvasGroup))
33 | .SetUpdate(true);
34 | }
35 | else {
36 | Sequence scaleSequence = DOTween.Sequence();
37 | scaleSequence.SetUpdate(true);
38 | rTransform.localScale = new Vector3(0f, 0.02f, 0f);
39 |
40 | var xScale = rTransform.DOScaleX(1f, duration * xYSplit).SetEase(ease);
41 | var yScale = rTransform.DOScaleY(1f, duration * 1f - xYSplit).SetEase(ease);
42 | scaleSequence.Append(xScale).Append(yScale).OnComplete(
43 | () => Cleanup(callWhenFinished, rTransform, canvasGroup)
44 | ).SetUpdate(true);
45 |
46 | scaleSequence.Play();
47 | }
48 | }
49 |
50 | private void Cleanup(Action callWhenFinished, RectTransform rTransform, CanvasGroup canvasGroup) {
51 | callWhenFinished();
52 | rTransform.localScale = Vector3.one;
53 | if (canvasGroup != null) {
54 | canvasGroup.alpha = 1f;
55 | }
56 | }
57 | }
58 | }
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/ScaleScreenTransition.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fba1e145d32ecc1418c1b103ff6a7b8b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using DG.Tweening;
3 | using UnityEngine;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | public class SlideScreenTransition : ATransitionComponent
8 | {
9 | public enum Position
10 | {
11 | None = 0,
12 | Left = 1,
13 | Right = 2,
14 | Top = 3,
15 | Bottom = 4,
16 | }
17 |
18 | [SerializeField] protected Position origin = Position.Left;
19 | [SerializeField] protected bool isOutAnimation;
20 | [SerializeField] protected float duration = 0.5f;
21 | [SerializeField] protected bool doFade;
22 | [SerializeField] protected float fadeDurationPercent = 0.5f;
23 | [SerializeField] protected Ease ease = Ease.Linear;
24 |
25 | public Position Origin {
26 | get { return origin; }
27 | set { origin = value; }
28 | }
29 |
30 | public override void Animate(Transform target, Action callWhenFinished) {
31 | RectTransform rTransform = target as RectTransform;
32 | var origAnchoredPos = rTransform.anchoredPosition;
33 | Vector3 startPosition = Vector3.zero;
34 |
35 | switch (origin) {
36 | case Position.Left:
37 | startPosition = new Vector3(-rTransform.rect.width, 0.0f, 0.0f);
38 | break;
39 | case Position.Right:
40 | startPosition = new Vector3(rTransform.rect.width, 0.0f, 0.0f);
41 | break;
42 | case Position.Top:
43 | startPosition = new Vector3(0.0f, rTransform.rect.height, 0.0f);
44 | break;
45 | case Position.Bottom:
46 | startPosition = new Vector3(0.0f, -rTransform.rect.height, 0.0f);
47 | break;
48 | }
49 |
50 | rTransform.anchoredPosition = isOutAnimation ? Vector3.zero : startPosition;
51 |
52 | rTransform.DOKill();
53 |
54 | CanvasGroup canvasGroup = null;
55 | if (doFade) {
56 | canvasGroup = rTransform.GetComponent();
57 | if (canvasGroup == null) {
58 | canvasGroup = rTransform.gameObject.AddComponent();
59 | }
60 |
61 | canvasGroup.DOFade(isOutAnimation ? 0f : 1f, duration * fadeDurationPercent);
62 | }
63 |
64 | rTransform.DOAnchorPos(isOutAnimation ? startPosition : Vector3.zero, duration, true)
65 | .SetEase(ease).OnComplete(
66 | () => {
67 | callWhenFinished();
68 | rTransform.anchoredPosition = origAnchoredPos;
69 | if (canvasGroup != null) {
70 | canvasGroup.alpha = 1f;
71 | }
72 | }).SetUpdate(true);
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/ScreenTransitions/SlideScreenTransition.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6f0ffd164e4450f439d7c219e6c88ce7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using deVoid.Utils;
4 | using UnityEngine;
5 |
6 | namespace deVoid.UIFramework.Examples
7 | {
8 | public class UIDemoController : MonoBehaviour
9 | {
10 | [SerializeField] private UISettings defaultUISettings = null;
11 | [SerializeField] private FakePlayerData fakePlayerData = null;
12 | [SerializeField] private Camera cam = null;
13 | [SerializeField] private Transform transformToFollow = null;
14 |
15 | private UIFrame uiFrame;
16 |
17 | private void Awake() {
18 | uiFrame = defaultUISettings.CreateUIInstance();
19 | Signals.Get().AddListener(OnStartDemo);
20 | Signals.Get().AddListener(OnNavigateToWindow);
21 | Signals.Get().AddListener(OnShowConfirmationPopup);
22 | }
23 |
24 | private void OnDestroy() {
25 | Signals.Get().RemoveListener(OnStartDemo);
26 | Signals.Get().RemoveListener(OnNavigateToWindow);
27 | Signals.Get().RemoveListener(OnShowConfirmationPopup);
28 | }
29 |
30 | private void Start() {
31 | uiFrame.OpenWindow(ScreenIds.StartGameWindow);
32 | }
33 |
34 | private void OnStartDemo() {
35 | // The navigation panel will automatically navigate
36 | // to the first screen upon opening
37 | uiFrame.ShowPanel(ScreenIds.NavigationPanel);
38 | uiFrame.ShowPanel(ScreenIds.ToastPanel);
39 | }
40 |
41 | private void OnNavigateToWindow(string windowId) {
42 | // You usually don't have to do this as the system takes care of everything
43 | // automatically, but since we're dealing with navigation and the Window layer
44 | // has a history stack, this way we can make sure we're not just adding
45 | // entries to the stack indefinitely
46 | uiFrame.CloseCurrentWindow();
47 |
48 | switch (windowId) {
49 | case ScreenIds.PlayerWindow:
50 | uiFrame.OpenWindow(windowId, new PlayerWindowProperties(fakePlayerData.LevelProgress));
51 | break;
52 | case ScreenIds.CameraProjectionWindow:
53 | transformToFollow.parent.gameObject.SetActive(true);
54 | uiFrame.OpenWindow(windowId, new CameraProjectionWindowProperties(cam, transformToFollow));
55 | break;
56 | default:
57 | uiFrame.OpenWindow(windowId);
58 | break;
59 | }
60 | }
61 |
62 | private void OnShowConfirmationPopup(ConfirmationPopupProperties popupPayload) {
63 | uiFrame.OpenWindow(ScreenIds.ConfirmationPopup, popupPayload);
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/UIDemoController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6ea977a77c0032e458147f6d2e676e01
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c9b743a1e258bf14ea6bd2629919e4e8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | public class AutoMove : MonoBehaviour
8 | {
9 | [SerializeField] private Vector2 minMaxPosition = Vector2.zero;
10 | [SerializeField] private float speed = 0f;
11 | [SerializeField] private Vector2 minMaxPositionY = Vector2.zero;
12 | [SerializeField] private float speedY = 0f;
13 | [SerializeField] private Vector3 rotationSpeed = Vector3.zero;
14 |
15 | private void Update() {
16 | transform.Rotate(rotationSpeed * Time.deltaTime, Space.Self);
17 | float x = Mathf.Lerp(minMaxPosition.x, minMaxPosition.y, (Mathf.Sin(Time.time*speed)+1)/2f);
18 | float y = Mathf.Lerp(minMaxPositionY.x, minMaxPositionY.y, (Mathf.Sin(Time.time*speedY)+1)/2f);
19 | transform.localPosition = new Vector3(x, y, transform.position.z);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets/AutoMove.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 190344ed5d8d33b42951e2311f8aad96
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs:
--------------------------------------------------------------------------------
1 | using TMPro;
2 | using UnityEngine;
3 | using UnityEngine.UI;
4 |
5 | namespace deVoid.UIFramework.Examples
6 | {
7 | public class LevelProgressComponent : MonoBehaviour
8 | {
9 | [SerializeField] private TextMeshProUGUI levelCounter = null;
10 | [SerializeField] private TextMeshProUGUI levelName = null;
11 | [SerializeField] private Image[] stars = null;
12 | [SerializeField] private Color starOn = Color.yellow;
13 | [SerializeField] private Color starOff = Color.black;
14 |
15 | public void SetData(PlayerDataEntry entry, int levelNumber) {
16 | levelCounter.text = "Level " + (levelNumber + 1);
17 | levelName.text = entry.LevelName;
18 | for (int i = 0; i < stars.Length; i++) {
19 | if (i + 1 <= entry.Stars) {
20 | stars[i].color = starOn;
21 | }
22 | else {
23 | stars[i].color = starOff;
24 | }
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets/LevelProgressComponent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b3c8348a523d4f90a0152195738c1913
3 | timeCreated: 1553028290
--------------------------------------------------------------------------------
/Assets/UIFrameworkExamples/Scripts/Widgets/NavigationPanelButton.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using TMPro;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | namespace deVoid.UIFramework.Examples
7 | {
8 | [RequireComponent(typeof(Button))]
9 | public class NavigationPanelButton : MonoBehaviour
10 | {
11 | [SerializeField]
12 | private TextMeshProUGUI buttonLabel = null;
13 | [SerializeField]
14 | private Image icon = null;
15 |
16 | public event Action ButtonClicked;
17 |
18 | private NavigationPanelEntry navigationData = null;
19 | private Button _button = null;
20 | private Button button {
21 | get {
22 | if (_button == null) {
23 | _button = GetComponent