aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2021-05-26 21:43:55 -0400
committerAndrew Lee <alee14498@protonmail.com>2021-05-26 21:43:55 -0400
commit4d0cfd3641c3a5cb7c4bccfbad0476e366324524 (patch)
treedb712419558d80a5cc5d0e4dfb386ee7f51fa4a5
parent914e6702935f5b76cbb078117de575dc26e5ef1f (diff)
downloadprototype-a-4d0cfd3641c3a5cb7c4bccfbad0476e366324524.tar.gz
prototype-a-4d0cfd3641c3a5cb7c4bccfbad0476e366324524.tar.bz2
prototype-a-4d0cfd3641c3a5cb7c4bccfbad0476e366324524.zip
Demo house, Discord RPC, Graphy, new models
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor.meta8
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Changelog.txt161
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Changelog.txt.meta13
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor.meta8
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs577
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs118
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta11
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs839
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta11
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs61
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta11
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef23
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt18
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta10
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otfbin0 -> 6040 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta22
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt202
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta10
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttfbin0 -> 170760 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf.meta23
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttfbin0 -> 171676 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf.meta23
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/GUI.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin1494
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin.meta10
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Graphy_CustomizationScene.unitypackage.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/LICENSE21
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/LICENSE.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat.meta15
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat.meta15
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat.meta16
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat.meta16
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat.meta16
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat.meta16
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal.meta8
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab887
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab662
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab1426
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab1396
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab668
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab.meta22
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/README.md112
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/README.md.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdfbin0 -> 2512948 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf.meta14
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime.meta8
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs363
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs290
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs235
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs210
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs90
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs197
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs249
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs145
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs154
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs35
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs570
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs848
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs271
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs237
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs43
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs96
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs137
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef21
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef.meta7
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/UI.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs26
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs26
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs65
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs196
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs117
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs84
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs.meta12
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Shaders.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader182
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader190
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures.meta9
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.pngbin0 -> 17251 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png.meta105
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.pngbin0 -> 2158 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png.meta94
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.pngbin0 -> 2315 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png.meta94
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.pngbin0 -> 2153 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png.meta94
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.pngbin0 -> 2297 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png.meta94
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.pngbin0 -> 1766 bytes
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png.meta103
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/package.json20
-rw-r--r--Assets/Graphy - Ultimate Stats Monitor/package.json.meta7
-rw-r--r--Assets/Materials/Yellow.mat124
-rw-r--r--Assets/Materials/Yellow.mat.meta8
-rw-r--r--Assets/Models/couch.blendbin0 -> 841016 bytes
-rw-r--r--Assets/Models/couch.blend.meta102
-rw-r--r--Assets/Models/couch.blend1bin0 -> 819864 bytes
-rw-r--r--Assets/Models/couch.blend1.meta7
-rw-r--r--Assets/Models/tv.blendbin0 -> 796124 bytes
-rw-r--r--Assets/Models/tv.blend.meta102
-rw-r--r--Assets/Models/tv.blend1bin0 -> 796156 bytes
-rw-r--r--Assets/Models/tv.blend1.meta7
-rw-r--r--Assets/Plugins.meta8
-rw-r--r--Assets/Plugins/DiscordGameSDK.meta8
-rw-r--r--Assets/Plugins/DiscordGameSDK/ActivityManager.cs12
-rw-r--r--Assets/Plugins/DiscordGameSDK/ActivityManager.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/Constants.cs9
-rw-r--r--Assets/Plugins/DiscordGameSDK/Constants.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/Core.cs4199
-rw-r--r--Assets/Plugins/DiscordGameSDK/Core.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/ImageManager.cs53
-rw-r--r--Assets/Plugins/DiscordGameSDK/ImageManager.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/LobbyManager.cs26
-rw-r--r--Assets/Plugins/DiscordGameSDK/LobbyManager.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/StorageManager.cs20
-rw-r--r--Assets/Plugins/DiscordGameSDK/StorageManager.cs.meta11
-rw-r--r--Assets/Plugins/DiscordGameSDK/StoreManager.cs32
-rw-r--r--Assets/Plugins/DiscordGameSDK/StoreManager.cs.meta11
-rw-r--r--Assets/Plugins/x86.meta8
-rw-r--r--Assets/Plugins/x86/discord_game_sdk.dllbin0 -> 3154744 bytes
-rw-r--r--Assets/Plugins/x86/discord_game_sdk.dll.libbin0 -> 2358 bytes
-rw-r--r--Assets/Plugins/x86/discord_game_sdk.dll.lib.meta7
-rw-r--r--Assets/Plugins/x86/discord_game_sdk.dll.meta52
-rw-r--r--Assets/Plugins/x86_64.meta8
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.bundlebin0 -> 4130000 bytes
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.bundle.meta52
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dllbin0 -> 3891512 bytes
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dll.libbin0 -> 2352 bytes
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dll.lib.meta7
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dll.meta52
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dylibbin0 -> 4130000 bytes
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.dylib.meta52
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.sobin0 -> 7122200 bytes
-rw-r--r--Assets/Plugins/x86_64/discord_game_sdk.so.meta52
-rw-r--r--Assets/Scenes/SampleScene.unity7126
-rw-r--r--Assets/Scenes/SampleScene/Global Volume Profile.asset46
-rw-r--r--Assets/Scenes/SampleScene/Global Volume Profile.asset.meta8
-rw-r--r--Assets/Scenes/SampleScene/LightingData.assetbin18248 -> 18280 bytes
-rw-r--r--Assets/Scripts/DiscordController.cs52
-rw-r--r--Assets/Scripts/DiscordController.cs.meta11
-rw-r--r--Assets/Shaders.meta8
-rw-r--r--Assets/Shaders/ShaderVariants.shadervariants439
-rw-r--r--Assets/Shaders/ShaderVariants.shadervariants.meta8
-rw-r--r--Assets/Shaders/UniversalRenderPipelineAsset.asset (renamed from Assets/UniversalRenderPipelineAsset.asset)8
-rw-r--r--Assets/Shaders/UniversalRenderPipelineAsset.asset.meta (renamed from Assets/UniversalRenderPipelineAsset.asset.meta)0
-rw-r--r--Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset (renamed from Assets/UniversalRenderPipelineAsset_Renderer.asset)0
-rw-r--r--Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset.meta (renamed from Assets/UniversalRenderPipelineAsset_Renderer.asset.meta)0
-rw-r--r--Packages/manifest.json3
-rw-r--r--Packages/packages-lock.json32
-rw-r--r--ProjectSettings/PackageManagerSettings.asset4
-rw-r--r--ProjectSettings/Packages/com.unity.probuilder/Settings.json163
-rw-r--r--ProjectSettings/Packages/com.unity.progrids/Settings.json7
-rw-r--r--ProjectSettings/QualitySettings.asset2
200 files changed, 28567 insertions, 146 deletions
diff --git a/Assets/Graphy - Ultimate Stats Monitor.meta b/Assets/Graphy - Ultimate Stats Monitor.meta
new file mode 100644
index 0000000..0344954
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7b1be47ea1594b918bc57fd9db545cd9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt b/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt
new file mode 100644
index 0000000..c8aff5c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt
@@ -0,0 +1,161 @@
+-----------------------------
+v2.1.3
+
+- Added null check for Keyboard.current.
+
+-----------------------------
+v2.1.2
+
+- Fixed NullRef in AudioMonitor if no main camera is in the scene.
+
+-----------------------------
+v2.1.1
+
+- Small hotfix for a index of out bounds error.
+- Simplified Singleton class to allow Graphy to be Destroyed.
+- Deallocating cached strings on Destroy to free up memory.
+
+-----------------------------
+v2.1.0
+
+- Pretty big refactor.
+- Lots of optimization.
+- Removed min/max fps for 1% and 0.1% lows, which is the industry standard now.
+- Improved UI. Added rounded corners and a better default color palette.
+
+-----------------------------
+v2.0.1
+
+- Updated package.json to 2.0.1.
+
+-----------------------------
+v2.0.0
+
+- Now supports UPM (Unity Package Manager).
+- Minimum official supported version is now Unity 2019.3.0. If you want a version that supports 5.4+, go to Github to download it.
+- Lots of minor tweaks, optimizations and bugfixes.
+
+-----------------------------
+v1.6.0
+
+This is the last release that will officially support Unity 5.4+. Next releases will be targeted towards 2019.3+.
+
+- Minor tweaks, optimizations and bugfixes.
+- Added support for VR single pass instanced rendering.
+
+-----------------------------
+v1.5.2
+
+- Removed asmdefs to avoid missing reference issues in new Unity alpha versions.
+- Improvements avgFps calculation, changed list to array (thanks @Kaladrius2trip).
+
+-----------------------------
+v1.5.1
+
+- Hide Graphy in Game view when it's be disabled on startup.
+- Fixed error if no camera is present in the scene.
+- Added SceneManager namespace so to avoid possible conflicts.
+- Added support for asmdefs (thanks @QSFW).
+
+-----------------------------
+v1.5
+
+- Fixed a number alignment in the audio module (thanks @SuperPenguin).
+- Refactored some code to avoid warnings with the new NET framework 4.0.
+- Shader sorting fix for Screen Space - Camera.
+- Fixed a possible Null Reference Error in the debugger (thanks @strawlink).
+- Fixed import settings in 2 textures (thanks @strawlink).
+- Renamed all Action into System.Action to avoid possible namespace conflicts.
+- Fixed the int rounding to prevent 59.99999FPS from turning into 59FPS (thanks @Rockylars).
+
+-----------------------------
+v1.4.3
+
+- Renamed all the classes with the "G_" prefix to avoid namespace issues with external code (thanks @Rockylars).
+- Refactored some code and added explanations and regions in the G_ShaderGraph class.
+- Assigned all the variables in their declaration to avoid a new NET framework warning.
+
+-----------------------------
+v1.4.2
+
+- Added the option to disable hotkeys.
+- Disabled hotkey check when Editor is not focused (thanks @Rockylars).
+- Refatored and cleaned up code (thanks @Rockylars).
+- Fixed a bug where if the app was defocused and focused back, it would reset Graphy's module active values (thanks @Rockylars).
+
+-----------------------------
+v1.4.1
+
+- Introduced plenty of safety checks to avoid some null reference errors.
+- Possibly fixed the graphs bug when the Editor is defocused and focused back.
+- Code cleanup and refactoring.
+
+-----------------------------
+v1.4
+
+- Updated the header comments in all scripts.
+- Added option to toggle active on start up (thanks @DarkMio).
+- Removed a leftover raycast script in the Graphy UI.Canvas (thanks @DarkMio).
+- Updated the shaders to use UnityObjectToClipPos() (thanks @DarkMio).
+- Bug-Fix: NullRef for EditorStyles.boldlabel (thanks @Flavelius)
+
+-----------------------------
+v1.3
+
+- Added a second graph to the Audio module that shows the highest spectrum value.
+- Added option to Toggle Active and Mode, as well as setting a specific Preset from the API.
+- Fixed a bug that occured when Time.timeScale = 0 (thanks @xDavidLeon!).
+
+-----------------------------
+v1.2.2
+
+- Improved the dB calculations, now the values are much more precise.
+
+-----------------------------
+v1.2.1
+
+- Modified the default UI text values to more generic placeholders to increase clarity.
+- Small fixes in the audio module.
+
+-----------------------------
+v1.2
+
+- MASSIVE reduction in garbage generation. From 8-10 KB every 2-3 seconds to just 200-300 bytes. Garbage generation right now is negligible.
+- Some code optimizations.
+
+-----------------------------
+v1.1
+
+- New Feature: Added a modifiable MODE. If set to LIGHT it will reduce some features or maximum values (like graph resolution) but it will improve compatibility with older hardware.
+- Small performance optimizations.
+- Code refactoring.
+- Improved the vetical alpha fade-off effect in the graph to make it more visible for lower values.
+- Updated the "Customize Graphy" scene to account for these new changes.
+
+-----------------------------
+v1.0
+
+- First major update!
+- Removed some leftover raycast targets from the Graphy UI to avoid interfering with users UI.
+- Added a Customization Scene that allows changing all the parameters in runtime to improve the user experience when testing new values.
+- Added a feature to rescale the background overlay of the Advanced Data module to the text with the highest width.
+- Made ALL parameters modifiable from code using the API.
+- Fixed a bug where sometimes the Graphy Manager would fail trying to retrieve the Audio Module.
+- Improved stabilty.
+
+-----------------------------
+v0.6
+
+- Added a feature to choose if you want to apply a background overlay to Graphy, improving readability in cluttered scenes.
+- Optimized the access to Shader parameters when updating them, improving performance.
+
+-----------------------------
+v0.5.1
+
+- Added a feature to choose if you want to keep Graphy alive through scene changes. Careful, if you activate it but Graphy is the child of another object, the root GameObject will also survive scene changes.
+- Fixed a bug where setting Graphy as a child of another object would break the graphs.
+
+-----------------------------
+v0.5
+
+- Initial release!
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt.meta b/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt.meta
new file mode 100644
index 0000000..c5c14b4
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Changelog.txt.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 425066d07b7c1204887be96c53348ac6
+labels:
+- counter
+- fps
+- graphy
+- tayx
+timeCreated: 1515072754
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor.meta
new file mode 100644
index 0000000..b1cfdff
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 74026f7916b08a343916493b0a1752cc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs
new file mode 100644
index 0000000..a4e738f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs
@@ -0,0 +1,577 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 02-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using System;
+using UnityEngine;
+using System.Collections.Generic;
+using System.IO;
+using UnityEditor;
+
+namespace Tayx.Graphy
+{
+ [CustomEditor(typeof(GraphyDebugger))]
+ internal class GraphyDebuggerEditor : Editor
+ {
+ /* ----- TODO: ----------------------------
+ * Add summaries to the variables.
+ * Add summaries to the functions.
+ * Finish spacing on "OnInspectorGUI".
+ * Add sections to "OnInspectorGUI".
+ * Fix the use of Space to be consistent with "GraphyManagerEditor".
+ * --------------------------------------*/
+
+ #region Variables -> Private
+
+ private GraphyDebugger m_target;
+
+ private int m_newDebugPacketListSize = 0;
+
+ private int m_previouslySelectedDebugPacketIndex = 0;
+ private int m_currentlySelectedDebugPacketIndex = 0;
+
+ private int m_selectedDebugPacketCondition = 0;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void OnEnable()
+ {
+ m_target = (GraphyDebugger) target;
+ }
+
+ #endregion
+
+ #region Methods -> Public Override
+
+ public override void OnInspectorGUI()
+ {
+ if (m_target == null && target == null)
+ {
+ base.OnInspectorGUI();
+
+ return;
+ }
+
+ float defaultLabelWidth = EditorGUIUtility.labelWidth;
+ float defaultFieldWidth = EditorGUIUtility.fieldWidth;
+
+ //===== CONTENT REGION ========================================================================
+
+ GUILayout.Space(20);
+
+ #region Section -> Logo
+
+ if (GraphyEditorStyle.DebuggerLogoTexture != null)
+ {
+ GUILayout.Label
+ (
+ image: GraphyEditorStyle.DebuggerLogoTexture,
+ style: new GUIStyle(GUI.skin.GetStyle("Label"))
+ {
+ alignment = TextAnchor.UpperCenter
+ }
+ );
+
+ GUILayout.Space(10);
+ }
+ else
+ {
+ EditorGUILayout.LabelField
+ (
+ label: "[ GRAPHY - DEBUGGER ]",
+ style: GraphyEditorStyle.HeaderStyle1
+ );
+ }
+
+ #endregion
+
+ GUILayout.Space(5); //Extra pixels added when the logo is used.
+
+ #region Section -> Settings
+
+ SerializedObject serObj = serializedObject;
+
+ SerializedProperty debugPacketList = serObj.FindProperty("m_debugPackets"); // Find the List in our script and create a refrence of it
+
+ //Update our list
+ serObj.Update();
+
+ EditorGUILayout.LabelField("Current [Debug Packets] list size: " + debugPacketList.arraySize);
+
+ EditorGUIUtility.fieldWidth = 32;
+ EditorGUILayout.BeginHorizontal();
+
+
+
+ m_newDebugPacketListSize = EditorGUILayout.IntField
+ (
+ label: "Define a new list size",
+ value: m_newDebugPacketListSize
+ );
+
+ if (GUILayout.Button("Resize List"))
+ {
+ if (EditorUtility.DisplayDialog
+ (
+ title:
+ "Resize List",
+
+ message:
+ "Are you sure you want to resize the entire List?\n\n" +
+ "Current List Size -> " +
+ debugPacketList.arraySize +
+ "\n" +
+ "New List Size -> " +
+ m_newDebugPacketListSize +
+ "\n" +
+ "This will add default entries if the value is greater than the list size, or erase the bottom values until the new size specified.",
+
+ ok:
+ "Resize",
+
+ cancel:
+ "Cancel")
+ )
+ {
+ m_currentlySelectedDebugPacketIndex = 0;
+
+ if (m_newDebugPacketListSize != debugPacketList.arraySize)
+ {
+ while (m_newDebugPacketListSize > debugPacketList.arraySize)
+ {
+ debugPacketList.InsertArrayElementAtIndex(debugPacketList.arraySize);
+ SetDefaultDebugPacketValues(debugPacketList);
+ }
+ while (m_newDebugPacketListSize < debugPacketList.arraySize)
+ {
+ debugPacketList.DeleteArrayElementAtIndex(debugPacketList.arraySize - 1);
+ }
+ }
+ }
+ }
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUILayout.LabelField("NOT RECOMMENDED (Only use for first initialization)", EditorStyles.centeredGreyMiniLabel);
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ if (debugPacketList.arraySize < 1)
+ {
+ m_previouslySelectedDebugPacketIndex = 0;
+ m_currentlySelectedDebugPacketIndex = 0;
+ m_selectedDebugPacketCondition = 0;
+
+ serializedObject.ApplyModifiedProperties();
+ return;
+ }
+
+ GraphyEditorStyle.HeaderStyle2.contentOffset = Vector2.down * 3f;
+
+ EditorGUILayout.LabelField("Selected debug packet:");
+
+ EditorGUILayout.BeginHorizontal();
+
+ List<string> debugPacketNames = new List<string>();
+ for (int i = 0; i < debugPacketList.arraySize; i++)
+ {
+ SerializedProperty listItem = debugPacketList.GetArrayElementAtIndex(i);
+ // NOTE: If the Popup detects two equal strings, it just paints 1, that's why I always add the "i"
+ char checkMark = listItem.FindPropertyRelative("Active").boolValue ? '\u2714' : '\u2718';
+ debugPacketNames.Add
+ (
+ (i + 1) +
+ " (" +
+ checkMark +
+ ") " +
+ " - ID: " +
+ listItem.FindPropertyRelative("Id").intValue +
+ " (Conditions: " +
+ listItem.FindPropertyRelative("DebugConditions").arraySize +
+ ")"
+ );
+ }
+
+ m_currentlySelectedDebugPacketIndex = EditorGUILayout.Popup(m_currentlySelectedDebugPacketIndex, debugPacketNames.ToArray());
+
+ if (m_currentlySelectedDebugPacketIndex != m_previouslySelectedDebugPacketIndex)
+ {
+ m_selectedDebugPacketCondition = 0;
+
+ m_previouslySelectedDebugPacketIndex = m_currentlySelectedDebugPacketIndex;
+ }
+
+ Color defaultGUIColor = GUI.color;
+
+ GUI.color = new Color(0.7f, 1f, 0.0f, 1f);
+
+ //Or add a new item to the List<> with a button
+
+ if (GUILayout.Button("Add", GUILayout.Width(60)))
+ {
+ debugPacketList.InsertArrayElementAtIndex(debugPacketList.arraySize);
+ SetDefaultDebugPacketValues(debugPacketList);
+ }
+
+ GUI.color = new Color(1f, 0.7f, 0.0f, 1f);
+
+ //Remove this index from the List
+
+ if (GUILayout.Button("Remove", GUILayout.Width(60)))
+ {
+ debugPacketList.DeleteArrayElementAtIndex(m_currentlySelectedDebugPacketIndex);
+ if (m_currentlySelectedDebugPacketIndex > 0)
+ {
+ m_currentlySelectedDebugPacketIndex--;
+ }
+
+ if (debugPacketList.arraySize < 1)
+ {
+ serializedObject.ApplyModifiedProperties();
+ return;
+ }
+ }
+
+ GUI.color = defaultGUIColor;
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ //Display our list to the inspector window
+
+ SerializedProperty listItemSelected = debugPacketList.GetArrayElementAtIndex(m_currentlySelectedDebugPacketIndex);
+
+ SerializedProperty Active = listItemSelected.FindPropertyRelative("Active");
+ SerializedProperty Id = listItemSelected.FindPropertyRelative("Id");
+ SerializedProperty ExecuteOnce = listItemSelected.FindPropertyRelative("ExecuteOnce");
+ SerializedProperty InitSleepTime = listItemSelected.FindPropertyRelative("InitSleepTime");
+ SerializedProperty ExecuteSleepTime = listItemSelected.FindPropertyRelative("ExecuteSleepTime");
+ SerializedProperty ConditionEvaluation = listItemSelected.FindPropertyRelative("ConditionEvaluation");
+ SerializedProperty DebugConditions = listItemSelected.FindPropertyRelative("DebugConditions");
+ SerializedProperty MessageType = listItemSelected.FindPropertyRelative("MessageType");
+ SerializedProperty Message = listItemSelected.FindPropertyRelative("Message");
+ SerializedProperty TakeScreenshot = listItemSelected.FindPropertyRelative("TakeScreenshot");
+ SerializedProperty ScreenshotFileName = listItemSelected.FindPropertyRelative("ScreenshotFileName");
+ SerializedProperty DebugBreak = listItemSelected.FindPropertyRelative("DebugBreak");
+ SerializedProperty UnityEvents = listItemSelected.FindPropertyRelative("UnityEvents");
+
+ #endregion
+
+ EditorGUILayout.LabelField
+ (
+ label:
+ "[ PACKET ] - ID: " +
+ Id.intValue +
+ " (Conditions: " +
+ DebugConditions.arraySize +
+ ")",
+
+ style: GraphyEditorStyle.HeaderStyle2
+ );
+
+ EditorGUIUtility.labelWidth = 150;
+ EditorGUIUtility.fieldWidth = 35;
+
+ Active.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Active",
+ tooltip: "If false, it will not be checked"
+ ),
+ value: Active.boolValue
+ );
+
+ Id.intValue = EditorGUILayout.IntField
+ (
+ new GUIContent
+ (
+ text: "ID",
+ tooltip: "Optional Id. It's used to get or remove DebugPackets in runtime"
+ ),
+ value: Id.intValue
+ );
+
+ ExecuteOnce.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Execute once",
+ tooltip: "If true, once the actions are executed, this DebugPacket will delete itself"
+ ),
+ value: ExecuteOnce.boolValue
+ );
+
+ InitSleepTime.floatValue = EditorGUILayout.FloatField
+ (
+ new GUIContent
+ (
+ text: "Init sleep time",
+ tooltip: "Time to wait before checking if conditions are met (use this to avoid low fps drops triggering the conditions when loading the game)"
+ ),
+ value: InitSleepTime.floatValue
+ );
+
+ ExecuteSleepTime.floatValue = EditorGUILayout.FloatField
+ (
+ new GUIContent
+ (
+ text: "Sleep time after execute",
+ tooltip: "Time to wait before checking if conditions are met again (once they have already been met and if ExecuteOnce is false)"
+ ),
+ value: ExecuteSleepTime.floatValue
+ );
+
+
+
+ EditorGUIUtility.labelWidth = defaultLabelWidth;
+ EditorGUIUtility.fieldWidth = defaultFieldWidth;
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ EditorGUILayout.LabelField("[ CONDITIONS ] (" + DebugConditions.arraySize + ")", GraphyEditorStyle.HeaderStyle2);
+
+ EditorGUILayout.PropertyField
+ (
+ ConditionEvaluation,
+ new GUIContent("Condition evaluation")
+ );
+
+ EditorGUILayout.Space();
+
+ if (DebugConditions.arraySize < 1)
+ {
+ DebugConditions.InsertArrayElementAtIndex(DebugConditions.arraySize);
+ m_selectedDebugPacketCondition = 0;
+ }
+
+ EditorGUILayout.BeginHorizontal();
+
+ List<string> debugPacketConditionNames = new List<string>();
+ for (int i = 0; i < DebugConditions.arraySize; i++)
+ {
+ SerializedProperty listItem = DebugConditions.GetArrayElementAtIndex(i);
+ // NOTE: If the Popup detects two equal strings, it just paints 1, that's why I always add the "i"
+
+ string conditionName = (i + 1).ToString() + " - ";
+ conditionName += GetComparerStringFromDebugVariable((GraphyDebugger.DebugVariable)listItem.FindPropertyRelative("Variable").intValue) + " ";
+ conditionName += GetComparerStringFromDebugComparer((GraphyDebugger.DebugComparer)listItem.FindPropertyRelative("Comparer").intValue) + " ";
+ conditionName += listItem.FindPropertyRelative("Value").floatValue.ToString();
+
+ debugPacketConditionNames.Add(conditionName);
+ }
+
+ m_selectedDebugPacketCondition = EditorGUILayout.Popup(m_selectedDebugPacketCondition, debugPacketConditionNames.ToArray());
+
+ GUI.color = new Color(0.7f, 1f, 0.0f, 1f);
+
+ if (GUILayout.Button("Add", GUILayout.Width(60)))
+ {
+ DebugConditions.InsertArrayElementAtIndex(DebugConditions.arraySize);
+ }
+
+ if (DebugConditions.arraySize > 1)
+ {
+ GUI.color = new Color(1f, 0.7f, 0.0f, 1f);
+ }
+ else
+ {
+ GUI.color = new Color(1f, 0.7f, 0.0f, 0.5f);
+ }
+
+ //Remove this index from the List
+ if (GUILayout.Button("Remove", GUILayout.Width(60)))
+ {
+ if (DebugConditions.arraySize > 1)
+ {
+ DebugConditions.DeleteArrayElementAtIndex(m_selectedDebugPacketCondition);
+ if (m_selectedDebugPacketCondition > 0)
+ {
+ m_selectedDebugPacketCondition--;
+ }
+ }
+ }
+
+ GUI.color = defaultGUIColor;
+
+ EditorGUILayout.EndHorizontal();
+
+ SerializedProperty conditionListItemSelected = DebugConditions.GetArrayElementAtIndex(m_selectedDebugPacketCondition);
+
+ SerializedProperty Variable = conditionListItemSelected.FindPropertyRelative("Variable");
+ SerializedProperty Comparer = conditionListItemSelected.FindPropertyRelative("Comparer");
+ SerializedProperty Value = conditionListItemSelected.FindPropertyRelative("Value");
+
+ EditorGUILayout.PropertyField
+ (
+ Variable,
+ new GUIContent("Variable")
+ );
+
+ EditorGUILayout.PropertyField
+ (
+ Comparer,
+ new GUIContent("Comparer")
+ );
+
+ EditorGUILayout.PropertyField
+ (
+ Value,
+ new GUIContent("Value")
+ );
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ EditorGUILayout.LabelField("[ ACTIONS ]", GraphyEditorStyle.HeaderStyle2);
+
+ EditorGUIUtility.labelWidth = 140;
+ EditorGUIUtility.fieldWidth = 35;
+
+ EditorGUILayout.PropertyField
+ (
+ MessageType,
+ new GUIContent("Message type")
+ );
+
+ EditorGUILayout.PropertyField(Message);
+
+ TakeScreenshot.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Take screenshot",
+ tooltip: "If true, it takes a screenshot and stores it. The location where the image is written to can include a directory/folder list. With no directory/folder list the image will be written into the Project folder. On mobile platforms the filename is appended to the persistent data path."
+ ),
+ value: TakeScreenshot.boolValue
+ );
+
+ if (TakeScreenshot.boolValue)
+ {
+ EditorGUILayout.PropertyField
+ (
+ ScreenshotFileName,
+ new GUIContent
+ (
+ text: "Screenshot file name",
+ tooltip: "Avoid this characters: * . \" / \\ [ ] : ; | = , \n\nIt will have the date appended at the end to avoid overwriting."
+ )
+ );
+ }
+
+ DebugBreak.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Debug Break",
+ tooltip: "If true, it pauses the editor"
+ ),
+ DebugBreak.boolValue
+ );
+
+ EditorGUILayout.PropertyField(UnityEvents);
+
+ EditorGUIUtility.labelWidth = defaultLabelWidth;
+ EditorGUIUtility.fieldWidth = defaultFieldWidth;
+
+ serializedObject.ApplyModifiedProperties();
+
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void SetDefaultDebugPacketValues(SerializedProperty debugPacketSerializedProperty)
+ {
+ GraphyDebugger.DebugPacket debugPacket = new GraphyDebugger.DebugPacket();
+
+ debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1)
+ .FindPropertyRelative("Active")
+ .boolValue = debugPacket.Active;
+
+ debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1)
+ .FindPropertyRelative("Id")
+ .intValue = debugPacketSerializedProperty.arraySize;
+
+ debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1)
+ .FindPropertyRelative("ExecuteOnce")
+ .boolValue = debugPacket.ExecuteOnce;
+
+ debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1)
+ .FindPropertyRelative("InitSleepTime")
+ .floatValue = debugPacket.InitSleepTime;
+
+ debugPacketSerializedProperty.GetArrayElementAtIndex(debugPacketSerializedProperty.arraySize - 1)
+ .FindPropertyRelative("ExecuteSleepTime")
+ .floatValue = debugPacket.ExecuteSleepTime;
+ }
+
+ private string GetComparerStringFromDebugVariable(GraphyDebugger.DebugVariable debugVariable)
+ {
+ switch (debugVariable)
+ {
+ case GraphyDebugger.DebugVariable.Fps:
+ return "FPS Current";
+ case GraphyDebugger.DebugVariable.Fps_Min:
+ return "FPS Min";
+ case GraphyDebugger.DebugVariable.Fps_Max:
+ return "FPS Max";
+ case GraphyDebugger.DebugVariable.Fps_Avg:
+ return "FPS Avg";
+
+ case GraphyDebugger.DebugVariable.Ram_Allocated:
+ return "Ram Allocated";
+ case GraphyDebugger.DebugVariable.Ram_Reserved:
+ return "Ram Reserved";
+ case GraphyDebugger.DebugVariable.Ram_Mono:
+ return "Ram Mono";
+
+ case GraphyDebugger.DebugVariable.Audio_DB:
+ return "Audio DB";
+
+ default:
+ return null;
+
+ }
+ }
+
+ private string GetComparerStringFromDebugComparer(GraphyDebugger.DebugComparer debugComparer)
+ {
+ switch (debugComparer)
+ {
+ case GraphyDebugger.DebugComparer.Less_than:
+ return "<";
+ case GraphyDebugger.DebugComparer.Equals_or_less_than:
+ return "<=";
+ case GraphyDebugger.DebugComparer.Equals:
+ return "==";
+ case GraphyDebugger.DebugComparer.Equals_or_greater_than:
+ return ">=";
+ case GraphyDebugger.DebugComparer.Greater_than:
+ return ">";
+
+ default:
+ return null;
+ }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta
new file mode 100644
index 0000000..8fef7e1
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyDebuggerEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4a96825e094d61441b5247d0c32652b3
+timeCreated: 1514907656
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs
new file mode 100644
index 0000000..1bde15a
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs
@@ -0,0 +1,118 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 02-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using System;
+using System.IO;
+using UnityEditor;
+using UnityEngine;
+
+namespace Tayx.Graphy
+{
+ internal static class GraphyEditorStyle
+ {
+ #region Variables -> Private
+
+ private static Texture2D _managerLogoTexture = null;
+ private static Texture2D _debuggerLogoTexture = null;
+ private static GUISkin m_skin = null;
+ private static GUIStyle m_headerStyle1 = null;
+ private static GUIStyle m_headerStyle2 = null;
+ private static GUIStyle m_foldoutStyle = null;
+ private static string path;
+
+ #endregion
+
+ #region Properties -> Public
+
+ public static Texture2D ManagerLogoTexture => _managerLogoTexture;
+ public static Texture2D DebuggerLogoTexture => _debuggerLogoTexture;
+ public static GUISkin Skin => m_skin;
+ public static GUIStyle HeaderStyle1 => m_headerStyle1;
+ public static GUIStyle HeaderStyle2 => m_headerStyle2;
+ public static GUIStyle FoldoutStyle => m_foldoutStyle;
+
+ #endregion
+
+ #region Static Constructor
+
+ static GraphyEditorStyle()
+ {
+ string managerLogoGuid = AssetDatabase.FindAssets( $"Manager_Logo_{(EditorGUIUtility.isProSkin ? "White" : "Dark")}" )[0];
+ string debuggerLogoGuid = AssetDatabase.FindAssets( $"Debugger_Logo_{(EditorGUIUtility.isProSkin ? "White" : "Dark")}" )[0];
+ string guiSkinGuid = AssetDatabase.FindAssets( "GraphyGUISkin" )[ 0 ];
+
+ _managerLogoTexture = AssetDatabase.LoadAssetAtPath<Texture2D>
+ (
+ AssetDatabase.GUIDToAssetPath( managerLogoGuid )
+ );
+
+ _debuggerLogoTexture = AssetDatabase.LoadAssetAtPath<Texture2D>
+ (
+ AssetDatabase.GUIDToAssetPath( debuggerLogoGuid )
+ );
+
+ m_skin = AssetDatabase.LoadAssetAtPath<GUISkin>
+ (
+ AssetDatabase.GUIDToAssetPath( guiSkinGuid )
+ );
+
+ if (m_skin != null)
+ {
+ m_headerStyle1 = m_skin.GetStyle("Header1");
+ m_headerStyle2 = m_skin.GetStyle("Header2");
+
+ SetGuiStyleFontColor
+ (
+ guiStyle: m_headerStyle2,
+ color: EditorGUIUtility.isProSkin ? Color.white : Color.black
+ );
+ }
+ else
+ {
+ m_headerStyle1 = EditorStyles.boldLabel;
+ m_headerStyle2 = EditorStyles.boldLabel;
+ }
+
+ m_foldoutStyle = new GUIStyle(EditorStyles.foldout)
+ {
+ font = m_headerStyle2.font,
+ fontStyle = m_headerStyle2.fontStyle,
+ contentOffset = Vector2.down * 3f
+ };
+
+ SetGuiStyleFontColor
+ (
+ guiStyle: m_foldoutStyle,
+ color: EditorGUIUtility.isProSkin ? Color.white : Color.black
+ );
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private static void SetGuiStyleFontColor(GUIStyle guiStyle, Color color)
+ {
+ guiStyle.normal.textColor = color;
+ guiStyle.hover.textColor = color;
+ guiStyle.active.textColor = color;
+ guiStyle.focused.textColor = color;
+ guiStyle.onNormal.textColor = color;
+ guiStyle.onHover.textColor = color;
+ guiStyle.onActive.textColor = color;
+ guiStyle.onFocused.textColor = color;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta
new file mode 100644
index 0000000..953313c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyEditorStyle.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1bb06e7c222a60f47a476e2648224330
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs
new file mode 100644
index 0000000..b535b45
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs
@@ -0,0 +1,839 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 20-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using System;
+using UnityEngine;
+using System.IO;
+using UnityEditor;
+
+namespace Tayx.Graphy
+{
+ [CustomEditor(typeof(GraphyManager))]
+ internal class GraphyManagerEditor : Editor
+ {
+ /* ----- TODO: ----------------------------
+ * Add summaries to the variables.
+ * Add summaries to the functions.
+ * --------------------------------------*/
+
+ #region Variables -> Private
+
+ private GraphyManager m_target;
+
+ private int[] m_spectrumSizeValues =
+ {
+ 128,
+ 256,
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 8192
+ };
+
+ #region Section -> Settings
+
+ private SerializedProperty m_graphyMode;
+
+ private SerializedProperty m_enableOnStartup;
+
+ private SerializedProperty m_keepAlive;
+
+ private SerializedProperty m_background;
+ private SerializedProperty m_backgroundColor;
+
+ private SerializedProperty m_enableHotkeys;
+
+ private SerializedProperty m_toggleModeKeyCode;
+ private SerializedProperty m_toggleModeCtrl;
+ private SerializedProperty m_toggleModeAlt;
+
+ private SerializedProperty m_toggleActiveKeyCode;
+ private SerializedProperty m_toggleActiveCtrl;
+ private SerializedProperty m_toggleActiveAlt;
+
+
+ private SerializedProperty m_graphModulePosition;
+
+ #endregion
+
+ #region Section -> FPS
+
+ private bool m_fpsModuleInspectorToggle = true;
+
+ private SerializedProperty m_fpsModuleState;
+
+ private SerializedProperty m_goodFpsColor;
+ private SerializedProperty m_goodFpsThreshold;
+
+ private SerializedProperty m_cautionFpsColor;
+ private SerializedProperty m_cautionFpsThreshold;
+
+ private SerializedProperty m_criticalFpsColor;
+
+ private SerializedProperty m_fpsGraphResolution;
+
+ private SerializedProperty m_fpsTextUpdateRate;
+
+ #endregion
+
+ #region Section -> RAM
+
+ private bool m_ramModuleInspectorToggle = true;
+
+ private SerializedProperty m_ramModuleState;
+
+ private SerializedProperty m_allocatedRamColor;
+ private SerializedProperty m_reservedRamColor;
+ private SerializedProperty m_monoRamColor;
+
+ private SerializedProperty m_ramGraphResolution;
+
+ private SerializedProperty m_ramTextUpdateRate;
+
+ #endregion
+
+ #region Section -> Audio
+
+ private bool m_audioModuleInspectorToggle = true;
+
+ private SerializedProperty m_findAudioListenerInCameraIfNull;
+
+ private SerializedProperty m_audioListener;
+
+ private SerializedProperty m_audioModuleState;
+
+ private SerializedProperty m_audioGraphColor;
+
+ private SerializedProperty m_audioGraphResolution;
+
+ private SerializedProperty m_audioTextUpdateRate;
+
+ private SerializedProperty m_FFTWindow;
+
+ private SerializedProperty m_spectrumSize;
+
+ #endregion
+
+ #region Section -> Advanced Settings
+
+ private bool m_advancedModuleInspectorToggle = true;
+
+ private SerializedProperty m_advancedModulePosition;
+
+ private SerializedProperty m_advancedModuleState;
+
+ #endregion
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void OnEnable()
+ {
+ m_target = (GraphyManager)target;
+
+ SerializedObject serObj = serializedObject;
+
+ #region Section -> Settings
+
+ m_graphyMode = serObj.FindProperty("m_graphyMode");
+
+ m_enableOnStartup = serObj.FindProperty("m_enableOnStartup");
+
+ m_keepAlive = serObj.FindProperty("m_keepAlive");
+
+ m_background = serObj.FindProperty("m_background");
+ m_backgroundColor = serObj.FindProperty("m_backgroundColor");
+
+ m_enableHotkeys = serObj.FindProperty("m_enableHotkeys");
+
+ m_toggleModeKeyCode = serObj.FindProperty("m_toggleModeKeyCode");
+
+ m_toggleModeCtrl = serObj.FindProperty("m_toggleModeCtrl");
+ m_toggleModeAlt = serObj.FindProperty("m_toggleModeAlt");
+
+ m_toggleActiveKeyCode = serObj.FindProperty("m_toggleActiveKeyCode");
+
+ m_toggleActiveCtrl = serObj.FindProperty("m_toggleActiveCtrl");
+ m_toggleActiveAlt = serObj.FindProperty("m_toggleActiveAlt");
+
+ m_graphModulePosition = serObj.FindProperty("m_graphModulePosition");
+
+ #endregion
+
+ #region Section -> FPS
+
+ m_fpsModuleState = serObj.FindProperty("m_fpsModuleState");
+
+ m_goodFpsColor = serObj.FindProperty("m_goodFpsColor");
+ m_goodFpsThreshold = serObj.FindProperty("m_goodFpsThreshold");
+
+ m_cautionFpsColor = serObj.FindProperty("m_cautionFpsColor");
+ m_cautionFpsThreshold = serObj.FindProperty("m_cautionFpsThreshold");
+
+ m_criticalFpsColor = serObj.FindProperty("m_criticalFpsColor");
+
+ m_fpsGraphResolution = serObj.FindProperty("m_fpsGraphResolution");
+
+ m_fpsTextUpdateRate = serObj.FindProperty("m_fpsTextUpdateRate");
+
+ #endregion
+
+ #region Section -> RAM
+
+ m_ramModuleState = serObj.FindProperty("m_ramModuleState");
+
+ m_allocatedRamColor = serObj.FindProperty("m_allocatedRamColor");
+ m_reservedRamColor = serObj.FindProperty("m_reservedRamColor");
+ m_monoRamColor = serObj.FindProperty("m_monoRamColor");
+
+ m_ramGraphResolution = serObj.FindProperty("m_ramGraphResolution");
+
+ m_ramTextUpdateRate = serObj.FindProperty("m_ramTextUpdateRate");
+
+ #endregion
+
+ #region Section -> Audio
+
+ m_findAudioListenerInCameraIfNull = serObj.FindProperty("m_findAudioListenerInCameraIfNull");
+
+ m_audioListener = serObj.FindProperty("m_audioListener");
+
+ m_audioModuleState = serObj.FindProperty("m_audioModuleState");
+
+ m_audioGraphColor = serObj.FindProperty("m_audioGraphColor");
+
+ m_audioGraphResolution = serObj.FindProperty("m_audioGraphResolution");
+
+ m_audioTextUpdateRate = serObj.FindProperty("m_audioTextUpdateRate");
+
+ m_FFTWindow = serObj.FindProperty("m_FFTWindow");
+
+ m_spectrumSize = serObj.FindProperty("m_spectrumSize");
+
+ #endregion
+
+ #region Section -> Advanced Settings
+
+ m_advancedModulePosition = serObj.FindProperty("m_advancedModulePosition");
+
+ m_advancedModuleState = serObj.FindProperty("m_advancedModuleState");
+
+ #endregion
+
+ }
+
+ #endregion
+
+ #region Methods -> Public Override
+
+ public override void OnInspectorGUI()
+ {
+ if (m_target == null && target == null)
+ {
+ base.OnInspectorGUI();
+ return;
+ }
+
+ float defaultLabelWidth = EditorGUIUtility.labelWidth;
+ float defaultFieldWidth = EditorGUIUtility.fieldWidth;
+
+ //===== CONTENT REGION ========================================================================
+
+ GUILayout.Space(20);
+
+ #region Section -> Logo
+
+ if (GraphyEditorStyle.ManagerLogoTexture != null)
+ {
+ GUILayout.Label
+ (
+ image: GraphyEditorStyle.ManagerLogoTexture,
+ style: new GUIStyle(GUI.skin.GetStyle("Label"))
+ {
+ alignment = TextAnchor.UpperCenter
+ }
+ );
+
+ GUILayout.Space(10);
+ }
+ else
+ {
+ EditorGUILayout.LabelField
+ (
+ label: "[ GRAPHY - MANAGER ]",
+ style: GraphyEditorStyle.HeaderStyle1
+ );
+ }
+
+ #endregion
+
+ GUILayout.Space(5); //Extra pixels added when the logo is used.
+
+ #region Section -> Settings
+
+ EditorGUIUtility.labelWidth = 130;
+ EditorGUIUtility.fieldWidth = 35;
+
+ EditorGUILayout.PropertyField
+ (
+ m_graphyMode,
+ new GUIContent
+ (
+ text: "Graphy Mode",
+ tooltip: "LIGHT mode increases compatibility with mobile and older, less powerful GPUs, but reduces the maximum graph resolutions to 128."
+ )
+ );
+
+ GUILayout.Space(10);
+
+ m_enableOnStartup.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Enable On Startup",
+ tooltip: "If ticked, Graphy will be displayed by default on startup, otherwise it will initiate and hide."
+ ),
+ value: m_enableOnStartup.boolValue
+ );
+
+ // This is a neat trick to hide Graphy in the Scene if it's going to be deactivated in play mode so that it doesn't use screen space.
+ if (!Application.isPlaying)
+ {
+ m_target.GetComponent<Canvas>().enabled = m_enableOnStartup.boolValue;
+ }
+
+ m_keepAlive.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Keep Alive",
+ tooltip: "If ticked, it will survive scene changes.\n\nCAREFUL, if you set Graphy as a child of another GameObject, the root GameObject will also survive scene changes. If you want to avoid that put Graphy in the root of the Scene as its own entity."
+ ),
+ value: m_keepAlive.boolValue
+ );
+
+ GUILayout.Space(10);
+
+ EditorGUILayout.BeginHorizontal();
+
+ m_background.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Background",
+ tooltip: "If ticked, it will show a background overlay to improve readability in cluttered scenes."
+ ),
+ value: m_background.boolValue
+ );
+
+ m_backgroundColor.colorValue = EditorGUILayout.ColorField(m_backgroundColor.colorValue);
+
+ EditorGUILayout.EndHorizontal();
+
+ GUILayout.Space(10);
+
+ m_enableHotkeys.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Enable Hotkeys",
+ tooltip: "If ticked, it will enable the hotkeys to be able to modify Graphy in runtime with custom keyboard shortcuts."
+ ),
+ value: m_enableHotkeys.boolValue
+ );
+
+ if (m_enableHotkeys.boolValue)
+ {
+ EditorGUILayout.BeginHorizontal();
+
+ EditorGUIUtility.labelWidth = 130;
+ EditorGUIUtility.fieldWidth = 35;
+
+ EditorGUILayout.PropertyField
+ (
+ m_toggleModeKeyCode,
+ new GUIContent
+ (
+ text: "Toggle Mode Key",
+ tooltip: "If ticked, it will require clicking this key and the other ones you have set up."
+ )
+ );
+
+ EditorGUIUtility.labelWidth = 30;
+ EditorGUIUtility.fieldWidth = 35;
+
+ m_toggleModeCtrl.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Ctrl",
+ tooltip: "If ticked, it will require clicking Ctrl and the other keys you have set up."
+ ),
+ value: m_toggleModeCtrl.boolValue
+ );
+
+ m_toggleModeAlt.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Alt",
+ tooltip: "If ticked, it will require clicking Alt and the other keys you have set up."
+ ),
+ value: m_toggleModeAlt.boolValue
+ );
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUILayout.BeginHorizontal();
+
+ EditorGUIUtility.labelWidth = 130;
+ EditorGUIUtility.fieldWidth = 35;
+
+ EditorGUILayout.PropertyField
+ (
+ m_toggleActiveKeyCode,
+ new GUIContent
+ (
+ text: "Toggle Active Key",
+ tooltip: "If ticked, it will require clicking this key and the other ones you have set up."
+ )
+ );
+
+ EditorGUIUtility.labelWidth = 30;
+ EditorGUIUtility.fieldWidth = 35;
+
+ m_toggleActiveCtrl.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Ctrl",
+ tooltip: "If ticked, it will require clicking Ctrl and the other kesy you have set up."
+ ),
+ value: m_toggleActiveCtrl.boolValue
+ );
+
+ m_toggleActiveAlt.boolValue = EditorGUILayout.Toggle
+ (
+ new GUIContent
+ (
+ text: "Alt",
+ tooltip: "If ticked, it will require clicking Alt and the other keys you have set up."
+ ),
+ value: m_toggleActiveAlt.boolValue
+ );
+
+ EditorGUILayout.EndHorizontal();
+ }
+
+ GUILayout.Space(15);
+
+ EditorGUIUtility.labelWidth = 155;
+ EditorGUIUtility.fieldWidth = 35;
+
+ EditorGUILayout.PropertyField
+ (
+ m_graphModulePosition,
+ new GUIContent
+ (
+ text: "Graph modules position",
+ tooltip: "Defines in which corner the modules will be located."
+ )
+ );
+
+ #endregion
+
+ GUILayout.Space(20);
+
+ #region Section -> FPS
+
+ m_fpsModuleInspectorToggle = EditorGUILayout.Foldout
+ (
+ m_fpsModuleInspectorToggle,
+ content: " [ FPS ]",
+ style: GraphyEditorStyle.FoldoutStyle
+ );
+
+ GUILayout.Space(5);
+
+ if (m_fpsModuleInspectorToggle)
+ {
+ EditorGUILayout.PropertyField
+ (
+ m_fpsModuleState,
+ new GUIContent
+ (
+ text: "Module state",
+ tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off"
+ )
+ );
+
+ GUILayout.Space(5);
+
+ EditorGUILayout.LabelField("Fps thresholds and colors:");
+
+ EditorGUI.indentLevel++;
+
+ EditorGUILayout.BeginHorizontal();
+
+ m_goodFpsThreshold.intValue = EditorGUILayout.IntField
+ (
+ new GUIContent
+ (
+ text: "- Good",
+ tooltip: "When FPS rise above this value, this color will be used."
+ ),
+ value: m_goodFpsThreshold.intValue
+ );
+
+ m_goodFpsColor.colorValue = EditorGUILayout.ColorField(m_goodFpsColor.colorValue);
+
+ EditorGUILayout.EndHorizontal();
+
+ if (m_goodFpsThreshold.intValue <= m_cautionFpsThreshold.intValue && m_goodFpsThreshold.intValue > 1)
+ {
+ m_cautionFpsThreshold.intValue = m_goodFpsThreshold.intValue - 1;
+ }
+ else if (m_goodFpsThreshold.intValue <= 1)
+ {
+ m_goodFpsThreshold.intValue = 2;
+ }
+
+ EditorGUILayout.BeginHorizontal();
+
+ m_cautionFpsThreshold.intValue = EditorGUILayout.IntField
+ (
+ new GUIContent
+ (
+ text: "- Caution",
+ tooltip: "When FPS falls between this and the Good value, this color will be used."
+ ),
+ value: m_cautionFpsThreshold.intValue
+ );
+
+ m_cautionFpsColor.colorValue = EditorGUILayout.ColorField(m_cautionFpsColor.colorValue);
+
+ EditorGUILayout.EndHorizontal();
+
+ if (m_cautionFpsThreshold.intValue >= m_goodFpsThreshold.intValue)
+ {
+ m_cautionFpsThreshold.intValue = m_goodFpsThreshold.intValue - 1;
+ }
+ else if (m_cautionFpsThreshold.intValue <= 0)
+ {
+ m_cautionFpsThreshold.intValue = 1;
+ }
+
+ EditorGUILayout.BeginHorizontal();
+
+ EditorGUILayout.IntField
+ (
+ new GUIContent
+ (
+ text: "- Critical",
+ tooltip: "When FPS falls below the Caution value, this color will be used. (You can't have negative FPS, so this value is just for reference, it can't be changed)."
+ ),
+ value: 0
+ );
+
+ m_criticalFpsColor.colorValue = EditorGUILayout.ColorField(m_criticalFpsColor.colorValue);
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUI.indentLevel--;
+
+ if (m_fpsModuleState.intValue == 0)
+ {
+ m_fpsGraphResolution.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Graph resolution",
+ tooltip: "Defines the amount of points in the graph"
+ ),
+ m_fpsGraphResolution.intValue,
+ leftValue: 20,
+ rightValue: m_graphyMode.intValue == 0 ? 300 : 128
+ );
+ }
+
+ m_fpsTextUpdateRate.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Text update rate",
+ tooltip: "Defines the amount times the text is updated in 1 second."
+ ),
+ m_fpsTextUpdateRate.intValue,
+ leftValue: 1,
+ rightValue: 60
+ );
+ }
+
+ #endregion
+
+ GUILayout.Space(20);
+
+ #region Section -> RAM
+
+ m_ramModuleInspectorToggle = EditorGUILayout.Foldout
+ (
+ m_ramModuleInspectorToggle,
+ content: " [ RAM ]",
+ style: GraphyEditorStyle.FoldoutStyle
+ );
+
+ GUILayout.Space(5);
+
+ if (m_ramModuleInspectorToggle)
+ {
+ EditorGUILayout.PropertyField
+ (
+ m_ramModuleState,
+ new GUIContent
+ (
+ text: "Module state",
+ tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off"
+ )
+ );
+
+ GUILayout.Space(5);
+
+ EditorGUILayout.LabelField("Graph colors:");
+
+ EditorGUI.indentLevel++;
+
+ m_allocatedRamColor.colorValue = EditorGUILayout.ColorField
+ (
+ label: "- Allocated",
+ value: m_allocatedRamColor.colorValue
+ );
+
+ m_reservedRamColor.colorValue = EditorGUILayout.ColorField
+ (
+ label: "- Reserved",
+ value: m_reservedRamColor.colorValue
+ );
+
+ m_monoRamColor.colorValue = EditorGUILayout.ColorField
+ (
+ label: "- Mono",
+ value: m_monoRamColor.colorValue
+ );
+
+ EditorGUI.indentLevel--;
+
+ if (m_ramModuleState.intValue == 0)
+ {
+ m_ramGraphResolution.intValue = EditorGUILayout.IntSlider(
+ new GUIContent
+ (
+ text: "Graph resolution",
+ tooltip: "Defines the amount of points are in the graph"
+ ),
+ m_ramGraphResolution.intValue,
+ leftValue: 20,
+ rightValue: m_graphyMode.intValue == 0 ? 300 : 128
+ );
+ }
+
+ m_ramTextUpdateRate.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Text update rate",
+ tooltip: "Defines the amount times the text is updated in 1 second."
+ ),
+ m_ramTextUpdateRate.intValue,
+ leftValue: 1,
+ rightValue: 60
+ );
+ }
+
+ #endregion
+
+ GUILayout.Space(20);
+
+ #region Section -> Audio
+
+ m_audioModuleInspectorToggle = EditorGUILayout.Foldout
+ (
+ m_audioModuleInspectorToggle,
+ content: " [ AUDIO ]",
+ style: GraphyEditorStyle.FoldoutStyle
+ );
+
+ GUILayout.Space(5);
+
+ if (m_audioModuleInspectorToggle)
+ {
+ EditorGUILayout.PropertyField
+ (
+ m_audioModuleState,
+ new GUIContent
+ (
+ text: "Module state",
+ tooltip: "FULL -> Text + Graph \nTEXT -> Just text \nOFF -> Turned off"
+ )
+ );
+
+ GUILayout.Space(5);
+
+ EditorGUILayout.PropertyField
+ (
+ m_findAudioListenerInCameraIfNull,
+ new GUIContent
+ (
+ text: "Find audio listener",
+ tooltip: "Tries to find the AudioListener in the Main camera in the scene. (if AudioListener is null)"
+ )
+ );
+
+ EditorGUILayout.PropertyField
+ (
+ m_audioListener,
+ new GUIContent
+ (
+ text: "Audio Listener",
+ tooltip: "Graphy will take the data from this Listener. If none are specified, it will try to get it from the Main Camera in the scene."
+ )
+ );
+
+ if (m_audioModuleState.intValue == 0)
+ {
+ m_audioGraphColor.colorValue = EditorGUILayout.ColorField
+ (
+ label: "Graph color",
+ value: m_audioGraphColor.colorValue
+ );
+
+ m_audioGraphResolution.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Graph resolution",
+ tooltip: "Defines the amount of points that are in the graph."
+ ),
+ m_audioGraphResolution.intValue,
+ leftValue: 20,
+ rightValue: m_graphyMode.intValue == 0 ? 300 : 128
+ );
+
+ // Forces the value to be a multiple of 3, this way the audio graph is painted correctly
+ if (m_audioGraphResolution.intValue % 3 != 0 && m_audioGraphResolution.intValue < 300)
+ {
+ m_audioGraphResolution.intValue += 3 - m_audioGraphResolution.intValue % 3;
+ }
+ //TODO: Figure out why a static version of the ForceMultipleOf3 isnt used.
+ }
+
+ EditorGUILayout.PropertyField
+ (
+ m_FFTWindow,
+ new GUIContent
+ (
+ text: "FFT Window",
+ tooltip: "Used to reduce leakage between frequency bins/bands. Note, the more complex window type, the better the quality, but reduced speed. \n\nSimplest is rectangular. Most complex is BlackmanHarris"
+ )
+ );
+
+ m_spectrumSize.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Spectrum size",
+ tooltip: "Has to be a power of 2 between 128-8192. The higher sample rate, the less precision but also more impact on performance. Careful with mobile devices"
+ ),
+ m_spectrumSize.intValue,
+ leftValue: 128,
+ rightValue: 8192
+ );
+
+ int closestSpectrumIndex = 0;
+ int minDistanceToSpectrumValue = 100000;
+
+ for (int i = 0; i < m_spectrumSizeValues.Length; i++)
+ {
+ int newDistance = Mathf.Abs
+ (
+ value: m_spectrumSize.intValue - m_spectrumSizeValues[i]
+ );
+
+ if (newDistance < minDistanceToSpectrumValue)
+ {
+ minDistanceToSpectrumValue = newDistance;
+ closestSpectrumIndex = i;
+ }
+ }
+
+ m_spectrumSize.intValue = m_spectrumSizeValues[closestSpectrumIndex];
+
+ m_audioTextUpdateRate.intValue = EditorGUILayout.IntSlider
+ (
+ new GUIContent
+ (
+ text: "Text update rate",
+ tooltip: "Defines the amount times the text is updated in 1 second"
+ ),
+ m_audioTextUpdateRate.intValue,
+ leftValue: 1,
+ rightValue: 60
+ );
+ }
+
+ #endregion
+
+ GUILayout.Space(20);
+
+ #region Section -> Advanced Settings
+
+ m_advancedModuleInspectorToggle = EditorGUILayout.Foldout
+ (
+ m_advancedModuleInspectorToggle,
+ content: " [ ADVANCED DATA ]",
+ style: GraphyEditorStyle.FoldoutStyle
+ );
+
+ GUILayout.Space(5);
+
+ if (m_advancedModuleInspectorToggle)
+ {
+ EditorGUILayout.PropertyField(m_advancedModulePosition);
+
+ EditorGUILayout.PropertyField
+ (
+ m_advancedModuleState,
+ new GUIContent
+ (
+ text: "Module state",
+ tooltip: "FULL -> Text \nOFF -> Turned off"
+ )
+ );
+ }
+
+ #endregion;
+
+ EditorGUIUtility.labelWidth = defaultLabelWidth;
+ EditorGUIUtility.fieldWidth = defaultFieldWidth;
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta
new file mode 100644
index 0000000..7df7785
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyManagerEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f01a5c28e5127404da343db2a7409c10
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs
new file mode 100644
index 0000000..d3d917f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs
@@ -0,0 +1,61 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 20-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEditor;
+using UnityEngine;
+
+namespace Tayx.Graphy
+{
+ public class GraphyMenuItem
+ {
+ [MenuItem("Tools/Graphy/Create Prefab Variant")]
+ static void CreatePrefabVariant()
+ {
+ // Directory checking
+ if (!AssetDatabase.IsValidFolder("Assets/Graphy - Ultimate Stats Monitor"))
+ {
+ AssetDatabase.CreateFolder("Assets", "Graphy - Ultimate Stats Monitor");
+ }
+
+ if (!AssetDatabase.IsValidFolder( "Assets/Graphy - Ultimate Stats Monitor/Prefab Variants" ) )
+ {
+ AssetDatabase.CreateFolder("Assets/Graphy - Ultimate Stats Monitor", "Prefab Variants" );
+ }
+
+ string graphyPrefabGuid = AssetDatabase.FindAssets( "[Graphy]" )[ 0 ];
+
+ Object originalPrefab = (GameObject)AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath( graphyPrefabGuid ), typeof(GameObject));
+ GameObject objectSource = PrefabUtility.InstantiatePrefab(originalPrefab) as GameObject;
+
+ int prefabVariantCount =
+ AssetDatabase.FindAssets( "Graphy_Variant", new []{ "Assets/Graphy - Ultimate Stats Monitor/Prefab Variants" } ).Length;
+
+ GameObject prefabVariant = PrefabUtility.SaveAsPrefabAsset(objectSource, $"Assets/Graphy - Ultimate Stats Monitor/Prefab Variants/Graphy_Variant_{prefabVariantCount}.prefab" );
+
+ Object.DestroyImmediate(objectSource);
+
+ foreach(SceneView scene in SceneView.sceneViews)
+ {
+ scene.ShowNotification(new GUIContent( "Prefab Variant Created at \"Assets/Graphy - Ultimate Stats Monitor/Prefab\"!" ) );
+ }
+ }
+
+ [MenuItem( "Tools/Graphy/Import Graphy Customization Scene" )]
+ static void ImportGraphyCustomizationScene()
+ {
+ string customizationSceneGuid = AssetDatabase.FindAssets( "Graphy_CustomizationScene" )[ 0 ];
+
+ AssetDatabase.ImportPackage( AssetDatabase.GUIDToAssetPath( customizationSceneGuid ), true );
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta
new file mode 100644
index 0000000..1e24a88
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/GraphyMenuItem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 68962e071a0ce0549a853f10c6af3f54
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef
new file mode 100644
index 0000000..fa2a4c5
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef
@@ -0,0 +1,23 @@
+{
+ "name": "Tayx.Graphy.Editor",
+ "references": [
+ "GUID:18e5109d897e1b244ab2dfeaf5482c7b"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [
+ {
+ "name": "com.unity.inputsystem",
+ "expression": "",
+ "define": "GRAPHY_NEW_INPUT"
+ }
+ ],
+ "noEngineReferences": false
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta
new file mode 100644
index 0000000..b9d09cd
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Editor/Tayx.Graphy.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9c59a049deefdf64bbbaa730a340bb3f
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font.meta b/Assets/Graphy - Ultimate Stats Monitor/Font.meta
new file mode 100644
index 0000000..3ed8d8b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3ac48df14c942a247a9e31f953e82768
+folderAsset: yes
+timeCreated: 1511635919
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta
new file mode 100644
index 0000000..f1fa87f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2b891f35198da7642a30fd430ae0d619
+folderAsset: yes
+timeCreated: 1516718193
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt
new file mode 100644
index 0000000..ba3fd06
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt
@@ -0,0 +1,18 @@
+Eric Tirado - NORTHWEST - BOLD, ROUGH - BETA
+
+Version 0.6 2016
+________________________________________________________________________________________
+
+This font demo is free for personal and commercial use.
+
+DonÕt resell, donÕt rename, share it with this txt file. Easy.
+
+Sign up at tira.do/nw to get a good deal on our final release (coming soon) and be in the loop for more awesomeness!
+
+________________________________________________________________________________________
+
+fonts@erictirado.com
+
+Eric Tirado © 2016 - All Rights Reserved
+_______________________________________________________________________________________
+_______________________________________________________________________________________ \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta
new file mode 100644
index 0000000..4223086
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/ERIC-TIRADO-NORTHWEST-LICENSE.txt.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 67bbd8c5103323b4688fcfa3abe68927
+labels:
+- font
+timeCreated: 1516718196
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf
new file mode 100644
index 0000000..5318219
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta
new file mode 100644
index 0000000..fb31445
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Northwest-Bold/NORTHWEST-B.otf.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: d523cde1d178d7c4ca6bb724b9d5213e
+labels:
+- font
+timeCreated: 1516718196
+licenseType: Store
+TrueTypeFontImporter:
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - NORTHWEST
+ fallbackFontReferences: []
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta
new file mode 100644
index 0000000..57245c5
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 37f53a7f00580aa4fa7797d9308063e7
+folderAsset: yes
+timeCreated: 1515073036
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt
new file mode 100644
index 0000000..75b5248
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta
new file mode 100644
index 0000000..000d589
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/LICENSE.txt.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: eb908df110bf2314d94d245f8a338830
+labels:
+- font
+timeCreated: 1515073036
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf
new file mode 100644
index 0000000..d3f01ad
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf.meta
new file mode 100644
index 0000000..6c2d425
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Bold.ttf.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: 9568ece128856a54cbc1060379ab498d
+labels:
+- font
+timeCreated: 1515090903
+licenseType: Store
+TrueTypeFontImporter:
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Roboto
+ fallbackFontReferences:
+ - {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf
new file mode 100644
index 0000000..2c97eea
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf.meta b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf.meta
new file mode 100644
index 0000000..654daac
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Font/Roboto/Roboto-Regular.ttf.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: 76ed11d84beb10846a746b4259e26d39
+labels:
+- font
+timeCreated: 1515073036
+licenseType: Store
+TrueTypeFontImporter:
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Roboto
+ fallbackFontReferences:
+ - {fileID: 12800000, guid: 9568ece128856a54cbc1060379ab498d, type: 3}
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/GUI.meta b/Assets/Graphy - Ultimate Stats Monitor/GUI.meta
new file mode 100644
index 0000000..6f3fe41
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/GUI.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 88ea372125bb21f49adbb31579e66715
+folderAsset: yes
+timeCreated: 1513980359
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin b/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin
new file mode 100644
index 0000000..e21f48d
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin
@@ -0,0 +1,1494 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 1
+ m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0}
+ m_Name: GraphyGUISkin
+ m_EditorClassIdentifier:
+ m_Font: {fileID: 0}
+ m_box:
+ m_Name: box
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_button:
+ m_Name: button
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_toggle:
+ m_Name: toggle
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_label:
+ m_Name: label
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_textField:
+ m_Name: textfield
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_textArea:
+ m_Name: textarea
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_window:
+ m_Name: window
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalSlider:
+ m_Name: horizontalslider
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalSliderThumb:
+ m_Name: horizontalsliderthumb
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalSlider:
+ m_Name: verticalslider
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalSliderThumb:
+ m_Name: verticalsliderthumb
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalScrollbar:
+ m_Name: horizontalscrollbar
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalScrollbarThumb:
+ m_Name: horizontalscrollbarthumb
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalScrollbarLeftButton:
+ m_Name: horizontalscrollbarleftbutton
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_horizontalScrollbarRightButton:
+ m_Name: horizontalscrollbarrightbutton
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalScrollbar:
+ m_Name: verticalscrollbar
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalScrollbarThumb:
+ m_Name: verticalscrollbarthumb
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalScrollbarUpButton:
+ m_Name: verticalscrollbarupbutton
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_verticalScrollbarDownButton:
+ m_Name: verticalscrollbardownbutton
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_ScrollView:
+ m_Name: scrollview
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0, g: 0, b: 0, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 0}
+ m_FontSize: 0
+ m_FontStyle: 0
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_CustomStyles:
+ - m_Name: Header1
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 0.10272493, g: 0.6985294, b: 0.5999136, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 1
+ m_Alignment: 4
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: 0}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ - m_Name: Header2
+ m_Normal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Hover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Active:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Focused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnNormal:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnHover:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnActive:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_OnFocused:
+ m_Background: {fileID: 0}
+ m_ScaledBackgrounds: []
+ m_TextColor: {r: 1, g: 1, b: 1, a: 1}
+ m_Border:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Margin:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Overflow:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 16
+ m_FontStyle: 1
+ m_Alignment: 0
+ m_WordWrap: 0
+ m_RichText: 1
+ m_TextClipping: 0
+ m_ImagePosition: 0
+ m_ContentOffset: {x: 0, y: -3}
+ m_FixedWidth: 0
+ m_FixedHeight: 0
+ m_StretchWidth: 1
+ m_StretchHeight: 0
+ m_Settings:
+ m_DoubleClickSelectsWord: 1
+ m_TripleClickSelectsLine: 1
+ m_CursorColor: {r: 1, g: 1, b: 1, a: 1}
+ m_CursorFlashSpeed: -1
+ m_SelectionColor: {r: 0.5, g: 0.5, b: 1, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin.meta b/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin.meta
new file mode 100644
index 0000000..4e11247
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/GUI/GraphyGUISkin.guiskin.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 663039f397abaa648854c3b8ef8f4256
+labels:
+- gui
+timeCreated: 1513980352
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Graphy_CustomizationScene.unitypackage.meta b/Assets/Graphy - Ultimate Stats Monitor/Graphy_CustomizationScene.unitypackage.meta
new file mode 100644
index 0000000..5ddff22
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Graphy_CustomizationScene.unitypackage.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9df6cd2f9439dd04fb0d7a5aeb12e189
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/LICENSE b/Assets/Graphy - Ultimate Stats Monitor/LICENSE
new file mode 100644
index 0000000..055a7a2
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Martín Pane
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Assets/Graphy - Ultimate Stats Monitor/LICENSE.meta b/Assets/Graphy - Ultimate Stats Monitor/LICENSE.meta
new file mode 100644
index 0000000..5fb0d86
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/LICENSE.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7dcb986197a7fca43a1547994c1e7ad8
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials.meta
new file mode 100644
index 0000000..9f203dc
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c859b3e9d83661640842bbb8989b021a
+folderAsset: yes
+timeCreated: 1511697723
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat
new file mode 100644
index 0000000..86c81ca
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Audio_Spectrum_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0.5
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 1, g: 1, b: 1, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat.meta
new file mode 100644
index 0000000..1d13dcb
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Graph.mat.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 61a418be8e5d13c448865432314f8277
+labels:
+- audio
+- graph
+- material
+- shader
+- spectrometer
+- spectrum
+timeCreated: 1513179885
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat
new file mode 100644
index 0000000..3c6e943
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Audio_Spectrum_Highest_Values_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 1, g: 1, b: 1, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat.meta
new file mode 100644
index 0000000..d58a1a0
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/Audio_Spectrum_Highest_Values_Graph.mat.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: a65c67e8efa392e4faaf526ab060ac88
+labels:
+- audio
+- graph
+- material
+- shader
+- spectrometer
+- spectrum
+timeCreated: 1513179885
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat
new file mode 100644
index 0000000..712d17b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: FPS_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0.2
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0.4
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 0.9137255, g: 0.76862746, b: 0.41568628, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 0.90588236, g: 0.43529412, b: 0.31764707, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 0.20825918, g: 0.6792453, b: 0.62190783, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat.meta
new file mode 100644
index 0000000..4ae968b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/FPS_Graph.mat.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 8a88e148dbc2d0f45a027f72e59aee4d
+labels:
+- counter
+- fps
+- graph
+- material
+- monitor
+- shader
+- stats
+timeCreated: 1511697739
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat
new file mode 100644
index 0000000..d576719
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: RAM_Allocated_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0.4
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 0.94509804, g: 0.35686275, b: 0.70980394, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 0.94509804, g: 0.35686275, b: 0.70980394, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 0.94509804, g: 0.35686275, b: 0.70980394, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat.meta
new file mode 100644
index 0000000..1ec15ac
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Allocated_Graph.mat.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 6b025b045db969e4988a6267cc04938d
+labels:
+- counter
+- graph
+- material
+- memory
+- monitor
+- ram
+- shader
+timeCreated: 1512500596
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat
new file mode 100644
index 0000000..35c4a7e
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: RAM_Mono_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0.2
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 0, g: 0.73333335, b: 0.9764706, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 0, g: 0.73333335, b: 0.9764706, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 0, g: 0.73333335, b: 0.9764706, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat.meta
new file mode 100644
index 0000000..1ccc730
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Mono_Graph.mat.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: cb5c252f19f1cd2448f88d7f9dd989e8
+labels:
+- counter
+- graph
+- material
+- memory
+- monitor
+- ram
+- shader
+timeCreated: 1513614711
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat
new file mode 100644
index 0000000..6325eed
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat
@@ -0,0 +1,90 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: RAM_Reserved_Graph
+ m_Shader: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 5
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 4500
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - FpsValues_Length: 120
+ - PixelSnap: 0
+ - ScrollSpeed: 0.2
+ - _AmazingThreshold: 0.72
+ - _BumpScale: 1
+ - _CautionThreshold: 0
+ - _ColorMask: 15
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Glossiness: 0.5
+ - _GoodThreshold: 0.6
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SrcBlend: 1
+ - _Stencil: 0
+ - _StencilComp: 8
+ - _StencilOp: 0
+ - _StencilReadMask: 255
+ - _StencilWriteMask: 255
+ - _UVSec: 0
+ - _UseUIAlphaClip: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _AmazingColor: {r: 0, g: 1, b: 1, a: 1}
+ - _CautionColor: {r: 0.99607843, g: 0.89411765, b: 0.2509804, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _CriticalColor: {r: 0.99607843, g: 0.89411765, b: 0.2509804, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _GoodColor: {r: 0.99607843, g: 0.89411765, b: 0.2509804, a: 1}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat.meta b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat.meta
new file mode 100644
index 0000000..e1b2d3f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Materials/RAM_Reserved_Graph.mat.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 5ec99183bcca10249ac54cd6dcee6372
+labels:
+- counter
+- graph
+- material
+- memory
+- monitor
+- ram
+- shader
+timeCreated: 1512501386
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab.meta
new file mode 100644
index 0000000..9617561
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3be1e89ca880cc644a2aa20d1854250c
+folderAsset: yes
+timeCreated: 1511555560
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal.meta
new file mode 100644
index 0000000..cf80af8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1551dbe188c02e544b8dd95d263ae1a3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab
new file mode 100644
index 0000000..ec9d0ee
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab
@@ -0,0 +1,887 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3842867399166853360
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3912740604931392962}
+ - component: {fileID: 3843565046808148296}
+ m_Layer: 5
+ m_Name: ADVANCED - Module
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3912740604931392962
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867399166853360}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 3912740601112588006}
+ - {fileID: 3912740604249537256}
+ - {fileID: 3843565046838049136}
+ - {fileID: 3843565046838009216}
+ - {fileID: 3843565046838004004}
+ - {fileID: 3843565046838038372}
+ - {fileID: 3843565046838026222}
+ - {fileID: 3843565046838054370}
+ - {fileID: 3843565046838060288}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.10510254, y: 134.01001}
+ m_SizeDelta: {x: -16.63, y: 250.47}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &3843565046808148296
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867399166853360}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5c1019d31db77fd468164577146737ad, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_backgroundImages:
+ - {fileID: 3801623490367796942}
+ m_graphicsDeviceVersionText: {fileID: 3843565046808174610}
+ m_processorTypeText: {fileID: 3843565046808132650}
+ m_operatingSystemText: {fileID: 3801623489651697784}
+ m_systemMemoryText: {fileID: 3843565046808166342}
+ m_graphicsDeviceNameText: {fileID: 3843565046807956928}
+ m_graphicsMemorySizeText: {fileID: 3843565046808154150}
+ m_screenResolutionText: {fileID: 3843565046808147406}
+ m_gameWindowResolutionText: {fileID: 3843565046808170664}
+ m_updateRate: 5
+--- !u!1 &3842867401653705428
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3912740604249537256}
+ - component: {fileID: 3910151276374724292}
+ - component: {fileID: 3801623489651697784}
+ - component: {fileID: 3801623454625418656}
+ m_Layer: 5
+ m_Name: operating_system_and_ram_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3912740604249537256
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867401653705428}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 13.800003}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3910151276374724292
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867401653705428}
+ m_CullTransparentMesh: 0
+--- !u!114 &3801623489651697784
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867401653705428}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'OS: OS Version [Platform]'
+--- !u!114 &3801623454625418656
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867401653705428}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3842867402509575672
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3912740601112588006}
+ - component: {fileID: 3910151276525742862}
+ - component: {fileID: 3801623490367796942}
+ m_Layer: 5
+ m_Name: BG_Image
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3912740601112588006
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867402509575672}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 389.27, y: 0}
+ m_SizeDelta: {x: 778.55, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3910151276525742862
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867402509575672}
+ m_CullTransparentMesh: 0
+--- !u!114 &3801623490367796942
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3842867402509575672}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &3843565046818344340
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838049136}
+ - component: {fileID: 3843565046838304092}
+ - component: {fileID: 3843565046808147406}
+ - component: {fileID: 3843565046808154662}
+ m_Layer: 5
+ m_Name: screen_res_value_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838049136
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818344340}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 219.6}
+ m_SizeDelta: {x: -24.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838304092
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818344340}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808147406
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818344340}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Screen: ####x####@##Hz'
+--- !u!114 &3843565046808154662
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818344340}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818361608
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838009216}
+ - component: {fileID: 3843565046838208232}
+ - component: {fileID: 3843565046808170664}
+ - component: {fileID: 3843565046808126578}
+ m_Layer: 5
+ m_Name: window_res_text_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838009216
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818361608}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 189.30002}
+ m_SizeDelta: {x: -24.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838208232
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818361608}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808170664
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818361608}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Window: ####x####@##Hz[###dpi]'
+--- !u!114 &3843565046808126578
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818361608}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818373822
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838054370}
+ - component: {fileID: 3843565046837891680}
+ - component: {fileID: 3843565046808132650}
+ - component: {fileID: 3843565046808136672}
+ m_Layer: 5
+ m_Name: processor_type_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838054370
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818373822}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 74.30001}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046837891680
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818373822}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808132650
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818373822}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'CPU: Processor Model [# cores]'
+--- !u!114 &3843565046808136672
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818373822}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818375086
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838026222}
+ - component: {fileID: 3843565046838222574}
+ - component: {fileID: 3843565046808154150}
+ - component: {fileID: 3843565046808169168}
+ m_Layer: 5
+ m_Name: graphics_memory_size_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838026222
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818375086}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 103.30001}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838222574
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818375086}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808154150
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818375086}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'VRAM: ####MB. Max texture size: ####px. Shader level: ##'
+--- !u!114 &3843565046808169168
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818375086}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818382618
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838004004}
+ - component: {fileID: 3843565046838311234}
+ - component: {fileID: 3843565046808174610}
+ - component: {fileID: 3843565046808173802}
+ m_Layer: 5
+ m_Name: graphics_device_version_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838004004
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818382618}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 161.30002}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838311234
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818382618}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808174610
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818382618}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Graphics API: Graphics API version [level ##]'
+--- !u!114 &3843565046808173802
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818382618}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818384376
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838038372}
+ - component: {fileID: 3843565046838255100}
+ - component: {fileID: 3843565046807956928}
+ - component: {fileID: 3843565046808176320}
+ m_Layer: 5
+ m_Name: graphics_device_name_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838038372
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818384376}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 132.30002}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838255100
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818384376}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046807956928
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818384376}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'GPU: Graphics Card Name'
+--- !u!114 &3843565046808176320
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818384376}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &3843565046818385094
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3843565046838060288}
+ - component: {fileID: 3843565046838236824}
+ - component: {fileID: 3843565046808166342}
+ - component: {fileID: 3843565046808068368}
+ m_Layer: 5
+ m_Name: ram_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3843565046838060288
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818385094}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 3912740604931392962}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -0.20019531, y: 44.80001}
+ m_SizeDelta: {x: -23.14, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3843565046838236824
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818385094}
+ m_CullTransparentMesh: 0
+--- !u!114 &3843565046808166342
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818385094}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'RAM: #### MB'
+--- !u!114 &3843565046808068368
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3843565046818385094}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab.meta
new file mode 100644
index 0000000..a92569f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/ADVANCED - Module.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8e60b58e9eec36e46ba32caf55a802f4
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab
new file mode 100644
index 0000000..7e608fe
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab
@@ -0,0 +1,662 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8023522192042546097
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7800522346346212061}
+ - component: {fileID: 7804307952332944447}
+ - component: {fileID: 7984821691181171211}
+ - component: {fileID: 7984821690819282791}
+ m_Layer: 5
+ m_Name: db_value_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7800522346346212061
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522192042546097}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8023949359419186811}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -30.7, y: 26.300013}
+ m_SizeDelta: {x: 290.6, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7804307952332944447
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522192042546097}
+ m_CullTransparentMesh: 0
+--- !u!114 &7984821691181171211
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522192042546097}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: -##
+--- !u!114 &7984821690819282791
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522192042546097}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &8023522193019896535
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7800522349053869169}
+ - component: {fileID: 7804307952451012049}
+ - component: {fileID: 7984821710221682845}
+ m_Layer: 5
+ m_Name: BG_Image_TEXT
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &7800522349053869169
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193019896535}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8023949359419186811}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.024932861, y: 31.98}
+ m_SizeDelta: {x: 0.05, y: -63.95}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7804307952451012049
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193019896535}
+ m_CullTransparentMesh: 0
+--- !u!114 &7984821710221682845
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193019896535}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8023522193285040417
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7800522348713255227}
+ - component: {fileID: 7804307938193033233}
+ - component: {fileID: 7984821691142389341}
+ m_Layer: 5
+ m_Name: audio_spectrum_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7800522348713255227
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193285040417}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8023949359419152847}
+ - {fileID: 7800522347927017199}
+ m_Father: {fileID: 8023949359419186811}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0.23902893, y: 36.77}
+ m_SizeDelta: {x: -15.480011, y: 57.76}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &7804307938193033233
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193285040417}
+ m_CullTransparentMesh: 0
+--- !u!114 &7984821691142389341
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193285040417}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: 61a418be8e5d13c448865432314f8277, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8023522193599714111
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7800522347927017199}
+ - component: {fileID: 7804307952974665897}
+ - component: {fileID: 7984821691078566919}
+ m_Layer: 5
+ m_Name: audio_text_inside_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7800522347927017199
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193599714111}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7800522348713255227}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 51, y: 25.7}
+ m_SizeDelta: {x: 99.5, y: 60.700012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7804307952974665897
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193599714111}
+ m_CullTransparentMesh: 0
+--- !u!114 &7984821691078566919
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193599714111}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.4627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 25
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: audio
+--- !u!1 &8023522193710420455
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7800522347690658609}
+ - component: {fileID: 7804307938358383139}
+ - component: {fileID: 7984821689660256287}
+ m_Layer: 5
+ m_Name: BG_Image_FULL
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7800522347690658609
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193710420455}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8023949359419186811}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.024978638, y: 0.0000038146973}
+ m_SizeDelta: {x: 0.049927, y: 0.0000076294}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7804307938358383139
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193710420455}
+ m_CullTransparentMesh: 0
+--- !u!114 &7984821689660256287
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023522193710420455}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8023949359398923053
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8023949359419137277}
+ - component: {fileID: 8023949359418881589}
+ - component: {fileID: 8023949359389300505}
+ - component: {fileID: 8023949359389220047}
+ m_Layer: 5
+ m_Name: db_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8023949359419137277
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398923053}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 8023949359419186811}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 11.299927, y: 26.3}
+ m_SizeDelta: {x: 290.6, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8023949359418881589
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398923053}
+ m_CullTransparentMesh: 0
+--- !u!114 &8023949359389300505
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398923053}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: dB
+--- !u!114 &8023949359389220047
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398923053}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &8023949359398946881
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8023949359419152847}
+ - component: {fileID: 8023949359418881755}
+ - component: {fileID: 8023949359389187151}
+ m_Layer: 5
+ m_Name: audio_spectrum_highest_values_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8023949359419152847
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398946881}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7800522348713255227}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &8023949359418881755
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398946881}
+ m_CullTransparentMesh: 0
+--- !u!114 &8023949359389187151
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398946881}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: a65c67e8efa392e4faaf526ab060ac88, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.5019608}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8023949359398975867
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8023949359419186811}
+ - component: {fileID: 8023949359389265205}
+ - component: {fileID: 8023949359389242119}
+ - component: {fileID: 8023949359389228359}
+ - component: {fileID: 8023949359389258805}
+ m_Layer: 5
+ m_Name: AUDIO - Module
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8023949359419186811
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398975867}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 7800522347690658609}
+ - {fileID: 7800522349053869169}
+ - {fileID: 7800522348713255227}
+ - {fileID: 7800522346346212061}
+ - {fileID: 8023949359419137277}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 1}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -176.6, y: -412}
+ m_SizeDelta: {x: 330, y: 102.5}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &8023949359389265205
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398975867}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 766a588f9a6cb55499c66ea772072e11, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_DBText: {fileID: 7984821691181171211}
+--- !u!114 &8023949359389242119
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398975867}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2216f4eff6a7a8a43b38b180fdd2fd9e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &8023949359389228359
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398975867}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f2d6ca19dafe21b4b983441274e7f12a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_imageGraph: {fileID: 7984821691142389341}
+ m_imageGraphHighestValues: {fileID: 8023949359389187151}
+ ShaderFull: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ ShaderLight: {fileID: 4800000, guid: 96316acf0f537ae449a9a641fa00eefe, type: 3}
+ m_isInitialized: 0
+--- !u!114 &8023949359389258805
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8023949359398975867}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8c0448d8db852b54480670d291c04f1a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_audioGraphGameObject: {fileID: 8023522193285040417}
+ m_audioDbText: {fileID: 7984821691181171211}
+ m_backgroundImages:
+ - {fileID: 7984821689660256287}
+ - {fileID: 7984821710221682845}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab.meta
new file mode 100644
index 0000000..2a3e28b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/AUDIO - Module.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 78081648e28527242bb334a6bdf7bfce
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab
new file mode 100644
index 0000000..b95ac1d
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab
@@ -0,0 +1,1426 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6364973415932893355
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6578825342061558345}
+ - component: {fileID: 6576332760511865189}
+ - component: {fileID: 6467840249286285167}
+ m_Layer: 5
+ m_Name: BG_Image_FULL
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6578825342061558345
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973415932893355}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.12501526, y: 0.42485046}
+ m_SizeDelta: {x: 0.24991, y: 0.84998}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6576332760511865189
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973415932893355}
+ m_CullTransparentMesh: 0
+--- !u!114 &6467840249286285167
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973415932893355}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6364973416018627675
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6578825341951922207}
+ - component: {fileID: 6576332760465279925}
+ - component: {fileID: 6467840315444754169}
+ m_Layer: 5
+ m_Name: BG_Image_BASIC
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &6578825341951922207
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973416018627675}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 97.31, y: 63.86}
+ m_SizeDelta: {x: -194.23, y: -126.02}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6576332760465279925
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973416018627675}
+ m_CullTransparentMesh: 0
+--- !u!114 &6467840315444754169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973416018627675}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6364973418153732259
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6578825341076182161}
+ - component: {fileID: 6576332762069302673}
+ - component: {fileID: 6467840249529765085}
+ m_Layer: 5
+ m_Name: BG_Image_TEXT
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &6578825341076182161
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973418153732259}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.124938965, y: 49.74}
+ m_SizeDelta: {x: 0.2, y: -97.77}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6576332762069302673
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973418153732259}
+ m_CullTransparentMesh: 0
+--- !u!114 &6467840249529765085
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6364973418153732259}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6365662255711786191
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690042559}
+ - component: {fileID: 6365662255689784807}
+ - component: {fileID: 6365662255706324559}
+ - component: {fileID: 6365662255706307635}
+ m_Layer: 5
+ m_Name: ms_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690042559
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711786191}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 160, y: 20.6}
+ m_SizeDelta: {x: 87.900024, y: 55.900024}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689784807
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711786191}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706324559
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711786191}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: ms
+--- !u!114 &6365662255706307635
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711786191}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711794819
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690064085}
+ - component: {fileID: 6365662255690198673}
+ - component: {fileID: 6365662255706378671}
+ - component: {fileID: 6365662255706341183}
+ m_Layer: 5
+ m_Name: 1%_fps_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690064085
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711794819}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -98.70007, y: 56.099953}
+ m_SizeDelta: {x: 110, y: 48.919006}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255690198673
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711794819}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706378671
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711794819}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 1%
+--- !u!114 &6365662255706341183
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711794819}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711796625
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690130537}
+ - component: {fileID: 6365662255689881525}
+ - component: {fileID: 6365662255706379323}
+ - component: {fileID: 6365662255706384275}
+ m_Layer: 5
+ m_Name: 1%_fps_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690130537
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711796625}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 11
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -85.800095, y: 24.249928}
+ m_SizeDelta: {x: 84.2, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689881525
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711796625}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706379323
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711796625}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '###'
+--- !u!114 &6365662255706384275
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711796625}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711804479
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690056247}
+ - component: {fileID: 6365662255689858075}
+ - component: {fileID: 6365662255706289691}
+ - component: {fileID: 6365662255706306701}
+ m_Layer: 5
+ m_Name: avg_fps_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690056247
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711804479}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -162.4501, y: 24.299952}
+ m_SizeDelta: {x: 110, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689858075
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711804479}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706289691
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711804479}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '###'
+--- !u!114 &6365662255706306701
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711804479}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711806177
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690050079}
+ - component: {fileID: 6365662255690200451}
+ - component: {fileID: 6365662255706276901}
+ - component: {fileID: 6365662255706326677}
+ m_Layer: 5
+ m_Name: fps_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690050079
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711806177}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 159.99997, y: 55.3}
+ m_SizeDelta: {x: 110.69995, y: 61.200012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255690200451
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711806177}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706276901
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711806177}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 35
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: fps
+--- !u!114 &6365662255706326677
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711806177}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711816435
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690072817}
+ - component: {fileID: 6365662255689843389}
+ - component: {fileID: 6365662255706406057}
+ - component: {fileID: 6365662255706332333}
+ m_Layer: 5
+ m_Name: 0.1%_fps_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690072817
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711816435}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 13
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -28.150074, y: 24.249928}
+ m_SizeDelta: {x: 89.3, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689843389
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711816435}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706406057
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711816435}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '###'
+--- !u!114 &6365662255706332333
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711816435}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711817323
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690075303}
+ - component: {fileID: 6365662255689783141}
+ - component: {fileID: 6365662255706297875}
+ m_Layer: 5
+ m_Name: fps_text_inside_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690075303
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711817323}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690032805}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 57.4, y: 27}
+ m_SizeDelta: {x: 110.69995, y: 61.200012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689783141
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711817323}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706297875
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711817323}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.4627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 25
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: fps
+--- !u!1 &6365662255711835907
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690075667}
+ - component: {fileID: 6365662255706285963}
+ - component: {fileID: 6365662255706299567}
+ - component: {fileID: 6365662255706387861}
+ - component: {fileID: 6365662255706387921}
+ m_Layer: 5
+ m_Name: FPS - Module
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690075667
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711835907}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6578825342061558345}
+ - {fileID: 6578825341076182161}
+ - {fileID: 6578825341951922207}
+ - {fileID: 6365662255690032805}
+ - {fileID: 6365662255690050079}
+ - {fileID: 6365662255690074025}
+ - {fileID: 6365662255690042559}
+ - {fileID: 6365662255690047407}
+ - {fileID: 6365662255690039541}
+ - {fileID: 6365662255690056247}
+ - {fileID: 6365662255690064085}
+ - {fileID: 6365662255690130537}
+ - {fileID: 6365662255690074999}
+ - {fileID: 6365662255690072817}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 1}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -173.42, y: -93.630005}
+ m_SizeDelta: {x: 330, y: 172.6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &6365662255706285963
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711835907}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b205584e495e4634aa3a332a78102a19, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &6365662255706299567
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711835907}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f74bbf307d92b0d4e81ae60b9eb1e42f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_fpsText: {fileID: 6365662255706383159}
+ m_msText: {fileID: 6365662255706290139}
+ m_avgFpsText: {fileID: 6365662255706289691}
+ m_onePercentFpsText: {fileID: 6365662255706379323}
+ m_zero1PercentFpsText: {fileID: 6365662255706406057}
+--- !u!114 &6365662255706387861
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711835907}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2e119c7747ac400478c7cfcaea03214e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_imageGraph: {fileID: 6365662255706389055}
+ ShaderFull: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ ShaderLight: {fileID: 4800000, guid: 96316acf0f537ae449a9a641fa00eefe, type: 3}
+ m_isInitialized: 0
+--- !u!114 &6365662255706387921
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711835907}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 221dc0b3655ddb749ace6bad55f0159f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_fpsGraphGameObject: {fileID: 6365662255711993743}
+ m_nonBasicTextGameObjects:
+ - {fileID: 6365662255711786191}
+ - {fileID: 6365662255711839335}
+ - {fileID: 6365662255711842265}
+ - {fileID: 6365662255711804479}
+ - {fileID: 6365662255711794819}
+ - {fileID: 6365662255711796625}
+ - {fileID: 6365662255711838681}
+ - {fileID: 6365662255711816435}
+ m_backgroundImages:
+ - {fileID: 6467840249286285167}
+ - {fileID: 6467840249529765085}
+ - {fileID: 6467840315444754169}
+--- !u!1 &6365662255711838681
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690074999}
+ - component: {fileID: 6365662255689846347}
+ - component: {fileID: 6365662255706324209}
+ - component: {fileID: 6365662255706303213}
+ m_Layer: 5
+ m_Name: 0.1%_fps_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690074999
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711838681}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 12
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -24.250072, y: 56.099953}
+ m_SizeDelta: {x: 81.5, y: 48.968994}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689846347
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711838681}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706324209
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711838681}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: .1%
+--- !u!114 &6365662255706303213
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711838681}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711839335
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690047407}
+ - component: {fileID: 6365662255689879671}
+ - component: {fileID: 6365662255706290139}
+ - component: {fileID: 6365662255706340063}
+ m_Layer: 5
+ m_Name: ms_text_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690047407
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711839335}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 54.599876, y: 21}
+ m_SizeDelta: {x: 114.400024, y: 56.700012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689879671
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711839335}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706290139
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711839335}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '##.#'
+--- !u!114 &6365662255706340063
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711839335}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711842265
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690039541}
+ - component: {fileID: 6365662255690201165}
+ - component: {fileID: 6365662255706285779}
+ - component: {fileID: 6365662255706384833}
+ m_Layer: 5
+ m_Name: avg_fps_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690039541
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711842265}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -148.2, y: 55.9}
+ m_SizeDelta: {x: 81.5, y: 49}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255690201165
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711842265}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706285779
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711842265}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: avg
+--- !u!114 &6365662255706384833
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711842265}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &6365662255711993743
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690032805}
+ - component: {fileID: 6365662255689832861}
+ - component: {fileID: 6365662255706389055}
+ m_Layer: 5
+ m_Name: fps_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690032805
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711993743}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 6365662255690075303}
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0.056030273, y: 54.994}
+ m_SizeDelta: {x: -15.320007, y: 94.713}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &6365662255689832861
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711993743}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706389055
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711993743}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: 8a88e148dbc2d0f45a027f72e59aee4d, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6365662255711996223
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6365662255690074025}
+ - component: {fileID: 6365662255689881019}
+ - component: {fileID: 6365662255706383159}
+ - component: {fileID: 6365662255706406887}
+ m_Layer: 5
+ m_Name: fps_text_value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6365662255690074025
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711996223}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 6365662255690075667}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 49.800064, y: 55.3}
+ m_SizeDelta: {x: 99.099976, y: 61.200012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6365662255689881019
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711996223}
+ m_CullTransparentMesh: 0
+--- !u!114 &6365662255706383159
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711996223}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 35
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '###'
+--- !u!114 &6365662255706406887
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6365662255711996223}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab.meta
new file mode 100644
index 0000000..14d287f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/FPS - Module.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fed2d45066a6d2a4191aa0c744a03147
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab
new file mode 100644
index 0000000..a87c65b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab
@@ -0,0 +1,1396 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &824167088398547643
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385365627}
+ - component: {fileID: 824167088385066419}
+ - component: {fileID: 824167088393219343}
+ - component: {fileID: 824167088393215717}
+ m_Layer: 5
+ m_Name: allocated_ram_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385365627
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398547643}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -122.5999, y: 32.99999}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385066419
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398547643}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393219343
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398547643}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: allocated
+--- !u!114 &824167088393215717
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398547643}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398559033
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385397773}
+ - component: {fileID: 824167088385124117}
+ - component: {fileID: 824167088393217023}
+ - component: {fileID: 824167088393278635}
+ m_Layer: 5
+ m_Name: mono_MB_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385397773
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398559033}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 11
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 75.30005, y: 8.69989}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385124117
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398559033}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393217023
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398559033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: MB
+--- !u!114 &824167088393278635
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398559033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398560745
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385337885}
+ - component: {fileID: 824167088385072061}
+ - component: {fileID: 824167088393240551}
+ - component: {fileID: 824167088393204919}
+ m_Layer: 5
+ m_Name: reserved_ram_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385337885
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398560745}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -122.6, y: 57.8}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385072061
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398560745}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393240551
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398560745}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: reserved
+--- !u!114 &824167088393204919
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398560745}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398698117
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385413725}
+ - component: {fileID: 824167088385130235}
+ - component: {fileID: 824167088393241763}
+ - component: {fileID: 824167088393204797}
+ m_Layer: 5
+ m_Name: mono_ram_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385413725
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398698117}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -122.5999, y: 8.699987}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385130235
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398698117}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393241763
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398698117}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: mono
+--- !u!114 &824167088393204797
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398698117}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398739915
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385192335}
+ - component: {fileID: 824167088385093845}
+ - component: {fileID: 824167088393254745}
+ m_Layer: 5
+ m_Name: ram_reserved_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385192335
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398739915}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385390893}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0.0000038146907, y: 0.0000000298096}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &824167088385093845
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398739915}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393254745
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398739915}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: 5ec99183bcca10249ac54cd6dcee6372, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &824167088398741987
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385390893}
+ - component: {fileID: 824167088385061191}
+ - component: {fileID: 824167088393265111}
+ m_Layer: 5
+ m_Name: ram_allocated_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385390893
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398741987}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 824167088385192335}
+ - {fileID: 824167088385411541}
+ - {fileID: 824167088385395749}
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0.42503357, y: 43.38}
+ m_SizeDelta: {x: -16.359985, y: 71.13}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &824167088385061191
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398741987}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393265111
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398741987}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: 6b025b045db969e4988a6267cc04938d, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &824167088398755827
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385414883}
+ - component: {fileID: 824167088385056483}
+ - component: {fileID: 824167088393057027}
+ - component: {fileID: 824167088393262335}
+ m_Layer: 5
+ m_Name: reserved_MB_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385414883
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398755827}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 75.299805, y: 57.799988}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385056483
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398755827}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393057027
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398755827}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.863}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: MB
+--- !u!114 &824167088393262335
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398755827}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398762683
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385373029}
+ - component: {fileID: 824167088385064423}
+ - component: {fileID: 824167088393223609}
+ - component: {fileID: 824167088393214473}
+ m_Layer: 5
+ m_Name: allocated_MB_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385373029
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398762683}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 75.299805, y: 32.99994}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385064423
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398762683}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393223609
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398762683}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: MB
+--- !u!114 &824167088393214473
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398762683}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &824167088398773255
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385395553}
+ - component: {fileID: 824167088393229781}
+ - component: {fileID: 824167088393266311}
+ - component: {fileID: 824167088393196335}
+ - component: {fileID: 824167088393240203}
+ m_Layer: 5
+ m_Name: RAM - Module
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385395553
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398773255}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 606799900438107231}
+ - {fileID: 606799899170423157}
+ - {fileID: 824167088385390893}
+ - {fileID: 824167088385337885}
+ - {fileID: 606799900055866159}
+ - {fileID: 824167088385365627}
+ - {fileID: 606799900109532717}
+ - {fileID: 824167088385413725}
+ - {fileID: 606799899333495091}
+ - {fileID: 824167088385373029}
+ - {fileID: 824167088385414883}
+ - {fileID: 824167088385397773}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 1}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -173.41986, y: -269.8}
+ m_SizeDelta: {x: 330, y: 166.3}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &824167088393229781
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398773255}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2494656f0dd693144be1306d5551e544, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &824167088393266311
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398773255}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 28d32ee74b6e6d24ea89d1b477060318, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_allocatedSystemMemorySizeText: {fileID: 785040245610905691}
+ m_reservedSystemMemorySizeText: {fileID: 785040245412526973}
+ m_monoSystemMemorySizeText: {fileID: 785040299031936943}
+--- !u!114 &824167088393196335
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398773255}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a9c49f1e95f2dab428b3a0ed56328a1c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_imageAllocated: {fileID: 824167088393265111}
+ m_imageReserved: {fileID: 824167088393254745}
+ m_imageMono: {fileID: 824167088393249605}
+ ShaderFull: {fileID: 4800000, guid: bc65170c051b0724287a7f1636d87573, type: 3}
+ ShaderLight: {fileID: 4800000, guid: 96316acf0f537ae449a9a641fa00eefe, type: 3}
+ m_isInitialized: 0
+--- !u!114 &824167088393240203
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398773255}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 84f7591c01b7f1a4ab82f1a0038491da, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ramGraphGameObject: {fileID: 824167088398741987}
+ m_backgroundImages:
+ - {fileID: 785040300544555607}
+ - {fileID: 785040243312120455}
+--- !u!1 &824167088398783419
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385395749}
+ - component: {fileID: 824167088385264887}
+ - component: {fileID: 824167088393204005}
+ m_Layer: 5
+ m_Name: ram_text_inside_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385395749
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398783419}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385390893}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 51, y: 26.1}
+ m_SizeDelta: {x: 99.5, y: 60.700012}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &824167088385264887
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398783419}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393204005
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398783419}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.4627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 25
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: ram
+--- !u!1 &824167088398784595
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 824167088385411541}
+ - component: {fileID: 824167088385059519}
+ - component: {fileID: 824167088393249605}
+ m_Layer: 5
+ m_Name: ram_mono_graph
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &824167088385411541
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398784595}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385390893}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0.000000059604645}
+ m_Pivot: {x: 0.4999999, y: 0.50000024}
+--- !u!222 &824167088385059519
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398784595}
+ m_CullTransparentMesh: 0
+--- !u!114 &824167088393249605
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 824167088398784595}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 2100000, guid: cb5c252f19f1cd2448f88d7f9dd989e8, type: 2}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: ad4148593b05d0f47980774815c325fe, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &825154992505782455
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 606799900438107231}
+ - component: {fileID: 604806503773544451}
+ - component: {fileID: 785040300544555607}
+ m_Layer: 5
+ m_Name: BG_Image_FULL
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &606799900438107231
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992505782455}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0.000010788441, y: 0.000002861023}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &604806503773544451
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992505782455}
+ m_CullTransparentMesh: 0
+--- !u!114 &785040300544555607
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992505782455}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &825154992879604061
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 606799900109532717}
+ - component: {fileID: 604806491022803899}
+ - component: {fileID: 785040245610905691}
+ - component: {fileID: 785040245611755789}
+ m_Layer: 5
+ m_Name: allocated_system_memory_size_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &606799900109532717
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992879604061}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 27.3, y: 32.99999}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &604806491022803899
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992879604061}
+ m_CullTransparentMesh: 0
+--- !u!114 &785040245610905691
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992879604061}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '#####'
+--- !u!114 &785040245611755789
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992879604061}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &825154992885226955
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 606799900055866159}
+ - component: {fileID: 604806492276916485}
+ - component: {fileID: 785040245412526973}
+ - component: {fileID: 785040300323669049}
+ m_Layer: 5
+ m_Name: reserved_system_memory_size_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &606799900055866159
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992885226955}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 27.3, y: 57.799988}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &604806492276916485
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992885226955}
+ m_CullTransparentMesh: 0
+--- !u!114 &785040245412526973
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992885226955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.863}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '#####'
+--- !u!114 &785040300323669049
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154992885226955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
+--- !u!1 &825154993173404513
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 606799899170423157}
+ - component: {fileID: 604806490922407105}
+ - component: {fileID: 785040243312120455}
+ m_Layer: 5
+ m_Name: BG_Image_TEXT
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &606799899170423157
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154993173404513}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 38.6}
+ m_SizeDelta: {x: 0, y: -77.1}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &604806490922407105
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154993173404513}
+ m_CullTransparentMesh: 0
+--- !u!114 &785040243312120455
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154993173404513}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: c4f7f8debbcf3cf4faf280628cab55f9, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &825154994217060925
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 606799899333495091}
+ - component: {fileID: 604806503645703423}
+ - component: {fileID: 785040299031936943}
+ - component: {fileID: 785040300653914483}
+ m_Layer: 5
+ m_Name: mono_system_memory_size_text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &606799899333495091
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154994217060925}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 824167088385395553}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 27.3, y: 8.699987}
+ m_SizeDelta: {x: 164, y: 44}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &604806503645703423
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154994217060925}
+ m_CullTransparentMesh: 0
+--- !u!114 &785040299031936943
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154994217060925}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.8627451}
+ m_RaycastTarget: 0
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: 76ed11d84beb10846a746b4259e26d39, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: '#####'
+--- !u!114 &785040300653914483
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 825154994217060925}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 0.903}
+ m_EffectDistance: {x: 2, y: -2}
+ m_UseGraphicAlpha: 1
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab.meta
new file mode 100644
index 0000000..8c9f746
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/Internal/RAM - Module.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6387d68cbe02d2d4fb8912f794606585
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab b/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab
new file mode 100644
index 0000000..a0ee930
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab
@@ -0,0 +1,668 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &177638
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 22451668}
+ - component: {fileID: 22323726}
+ - component: {fileID: 11439282}
+ - component: {fileID: 11496292}
+ - component: {fileID: 11480938}
+ m_Layer: 5
+ m_Name: '[Graphy]'
+ m_TagString: Untagged
+ m_Icon: {fileID: 1638116407661442457, guid: 0000000000000000d000000000000000, type: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &22451668
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 177638}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_Children:
+ - {fileID: 22431670}
+ - {fileID: 22415034}
+ - {fileID: 22493042}
+ - {fileID: 224000010937413736}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!223 &22323726
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 177638}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 1
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 30000
+ m_TargetDisplay: 0
+--- !u!114 &11439282
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 177638}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 1
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 0.66
+ m_ReferenceResolution: {x: 1920, y: 1080}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0.5
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+--- !u!114 &11496292
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 177638}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c80e6d63202cef44ca3ffdaccec693be, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_graphyMode: 0
+ m_enableOnStartup: 1
+ m_keepAlive: 1
+ m_background: 1
+ m_backgroundColor: {r: 0, g: 0, b: 0, a: 0.33333334}
+ m_enableHotkeys: 1
+ m_toggleModeKeyCode: 103
+ m_toggleModeCtrl: 1
+ m_toggleModeAlt: 0
+ m_toggleActiveKeyCode: 104
+ m_toggleActiveCtrl: 1
+ m_toggleActiveAlt: 0
+ m_graphModulePosition: 0
+ m_fpsModuleState: 0
+ m_goodFpsColor: {r: 0.20825918, g: 0.6792453, b: 0.62190783, a: 1}
+ m_goodFpsThreshold: 60
+ m_cautionFpsColor: {r: 0.9137255, g: 0.76862746, b: 0.41568628, a: 1}
+ m_cautionFpsThreshold: 30
+ m_criticalFpsColor: {r: 0.90588236, g: 0.43529412, b: 0.31764707, a: 1}
+ m_fpsGraphResolution: 150
+ m_fpsTextUpdateRate: 3
+ m_ramModuleState: 0
+ m_allocatedRamColor: {r: 0.94509804, g: 0.35686275, b: 0.70980394, a: 1}
+ m_reservedRamColor: {r: 0.99607843, g: 0.89411765, b: 0.2509804, a: 1}
+ m_monoRamColor: {r: 0, g: 0.73333335, b: 0.9764706, a: 1}
+ m_ramGraphResolution: 150
+ m_ramTextUpdateRate: 3
+ m_audioModuleState: 0
+ m_findAudioListenerInCameraIfNull: 1
+ m_audioListener: {fileID: 0}
+ m_audioGraphColor: {r: 1, g: 1, b: 1, a: 1}
+ m_audioGraphResolution: 81
+ m_audioTextUpdateRate: 3
+ m_FFTWindow: 4
+ m_spectrumSize: 512
+ m_advancedModulePosition: 3
+ m_advancedModuleState: 0
+--- !u!114 &11480938
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 177638}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cb8428f1f208dcc49b6c04976d44cbc9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_debugPackets:
+ - Active: 1
+ Id: 1
+ ExecuteOnce: 1
+ InitSleepTime: 2
+ ExecuteSleepTime: 2
+ ConditionEvaluation: 0
+ DebugConditions:
+ - Variable: 0
+ Comparer: 0
+ Value: 0
+ MessageType: 0
+ Message:
+ TakeScreenshot: 0
+ ScreenshotFileName:
+ DebugBreak: 0
+ UnityEvents:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!1001 &824167088398634459
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 22451668}
+ m_Modifications:
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -173.41986
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: -271.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 330
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 166.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 824167088398773255, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ propertyPath: m_Name
+ value: RAM - Module
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 6387d68cbe02d2d4fb8912f794606585, type: 3}
+--- !u!224 &22415034 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 824167088385395553, guid: 6387d68cbe02d2d4fb8912f794606585,
+ type: 3}
+ m_PrefabInstance: {fileID: 824167088398634459}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &3843565046818239914
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 22451668}
+ m_Modifications:
+ - target: {fileID: 3842867399166853360, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_Name
+ value: ADVANCED - Module
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -0.10498047
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 134.01001
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: -16.63
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 250.47
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8e60b58e9eec36e46ba32caf55a802f4, type: 3}
+--- !u!224 &224000010937413736 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 3912740604931392962, guid: 8e60b58e9eec36e46ba32caf55a802f4,
+ type: 3}
+ m_PrefabInstance: {fileID: 3843565046818239914}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &6365662255711947173
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 22451668}
+ m_Modifications:
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -173.41992
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: -94.930115
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 330
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 172.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 6365662255711835907, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ propertyPath: m_Name
+ value: FPS - Module
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: fed2d45066a6d2a4191aa0c744a03147, type: 3}
+--- !u!224 &22431670 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 6365662255690075667, guid: fed2d45066a6d2a4191aa0c744a03147,
+ type: 3}
+ m_PrefabInstance: {fileID: 6365662255711947173}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8023949359398807817
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 22451668}
+ m_Modifications:
+ - target: {fileID: 8023949359398975867, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_Name
+ value: AUDIO - Module
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -173.41998
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: -413.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 330
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 102.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 78081648e28527242bb334a6bdf7bfce, type: 3}
+--- !u!224 &22493042 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 8023949359419186811, guid: 78081648e28527242bb334a6bdf7bfce,
+ type: 3}
+ m_PrefabInstance: {fileID: 8023949359398807817}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab.meta b/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab.meta
new file mode 100644
index 0000000..4506f4a
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Prefab/[Graphy].prefab.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 0abab5bb77339e4428787a870eb31bd3
+labels:
+- audio
+- counter
+- debugger
+- fps
+- graph
+- graphy
+- memory
+- ram
+- screenshot
+- shader
+- spectrum
+- stats
+- tayx
+timeCreated: 1513271445
+licenseType: Store
+NativeFormatImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/README.md b/Assets/Graphy - Ultimate Stats Monitor/README.md
new file mode 100644
index 0000000..7067efc
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/README.md
@@ -0,0 +1,112 @@
+# Graphy - Ultimate FPS Counter - Stats Monitor & Debugger (Unity)
+
+[![openupm](https://img.shields.io/npm/v/com.tayx.graphy?label=openupm&registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.tayx.graphy/)
+[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/Tayx94/graphy/blob/master/LICENSE)
+[![Unity 2019.3+](https://img.shields.io/badge/unity-2019.3%2B-blue.svg)](https://unity3d.com/get-unity/download)
+
+[![Open Issues](https://img.shields.io/github/issues-raw/tayx94/graphy)](https://github.com/Tayx94/graphy/issues)
+[![Downloads](https://img.shields.io/github/downloads/tayx94/graphy/total)](https://github.com/Tayx94/graphy/releases)
+[![Contributors](https://img.shields.io/github/contributors/tayx94/graphy)](https://github.com/Tayx94/graphy/graphs/contributors)
+[![Stars](https://img.shields.io/github/stars/Tayx94/graphy)](https://github.com/Tayx94/graphy)
+[![Forks](https://img.shields.io/github/forks/Tayx94/graphy)](https://github.com/Tayx94/graphy)
+
+[![Chat Discord](https://img.shields.io/discord/406037880314789889)](https://discord.gg/2KgNEHK?)
+
+[![Twitter](https://img.shields.io/twitter/follow/martintayx?label=Follow&style=social)](http://twitter.com/intent/user?screen_name=martinTayx)
+
+**Links:** [Discord](https://discord.gg/2KgNEHK?) | [Mail](mailto:martintayx@gmail.com) | [Twitter](http://twitter.com/intent/user?screen_name=martinTayx) | [Asset store](https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-stats-monitor-debugger-105778) | [Forum post](https://forum.unity.com/threads/graphy-ultimate-stats-monitor-debugger-released.517387/) | [Donations](https://www.paypal.me/MartinPaneUK)
+
+**WINNER** of the **BEST DEVELOPMENT ASSET** in the **Unity Awards 2018**.
+
+![Graphy Image](https://image.ibb.co/dbcDu8/2018_07_15_15_10_05.gif)
+
+Graphy is the ultimate, easy to use, feature packed FPS Counter, stats monitor and debugger for your Unity project.
+
+**Main Features:**
+- Graph & Text:
+ - FPS
+ - Memory
+ - Audio
+- Advanced device information
+- Debugging tools
+
+With this tool you will be able to visualize and catch when your game has some unexpected hiccup or stutter, and act accordingly!
+
+The debugger allows you to set one or more conditions, that if met will have the consequences you desire, such as taking a screenshot, pausing the editor, printing a message to the console and more! Even call a method from your own code if you want!
+
+**Additional features:**
+- Customizable look and feel
+- Multiple layouts
+- Custom Inspector
+- Hotkeys
+- Easy to use API (accessible from code)
+- Works on multiple platforms
+- Background Mode
+- Works from Unity 5.4 and up!
+- Well documented C# and Shader code included
+
+**Links:**
+- [Asset store](https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-stats-monitor-debugger-105778)
+- [Forum post](https://forum.unity.com/threads/graphy-ultimate-stats-monitor-debugger-released.517387/)
+- [Video Teaser](https://youtu.be/2X3vXxLANk0)
+
+**Contact:**
+- [Mail](martintayx@gmail.com)
+- [Twitter](https://twitter.com/martinTayx)
+- [Discord](https://discord.gg/2KgNEHK?)
+
+## Installation
+1. The package is available on the [openupm registry](https://openupm.com). You can install it via [openupm-cli](https://github.com/openupm/openupm-cli).
+```
+openupm add com.tayx.graphy
+```
+2. You can also install via git url by adding this entry in your **manifest.json**
+```
+{
+ "dependencies": {
+ ...
+ "com.tayx.graphy": "https://github.com/Tayx94/graphy.git",
+ ...
+ }
+}
+```
+3. You can also download it from the [Asset Store](https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-stats-monitor-debugger-105778)
+
+4. Click here for old version that supports Unity 5.4+:
+[![Unity 5.4+](https://img.shields.io/badge/unity-5.4%2B-blue.svg)](https://github.com/Tayx94/graphy/releases/tag/v1.6.0-Unity5.4)
+
+## Development of Graphy
+
+Maintainer and main developer: **Martín Pane** [![Twitter](https://img.shields.io/twitter/follow/martintayx?label=Follow&style=social)](http://twitter.com/intent/user?screen_name=martinTayx)
+
+Graphy is **FREE** to use, but if it helped you and you want to contribute to its development, feel free to leave a donation!
+
+- [Donation Link](https://www.paypal.me/MartinPaneUK)
+
+### Contributing
+
+Let's make Graphy the go-to for stats monitoring in Unity!
+
+I would really appreciate any contributions! Below you can find a roadmap for future planned features and optimisations that you might be able to help out with. If you want to make a big pull request, please do it on the "dev" branch.
+
+Create a GitHub issue if you want to start a discussion or request a feature, and please label appropriately.
+
+You can also join the [Discord](https://discord.gg/2KgNEHK?) for active discussions with other members of the community.
+
+### Roadmap
+
+**Planned features (No ETA):**
+
+ - Add GfxDriver stats to the RAM module.
+ - Scale Canvas (GetComponent<Canvas>().scaleFactor *= multiplier;) -> If it changes, set again.
+ - Make a template for a graph + text module so people can create their own easily.
+ - Allow storing FPS for a predetermined time to allow benchmarks.
+ - Dump all Graphy Data as a string to:
+ - File.
+ - Send to server.
+ - Send mail.
+ - Add a preprocessor key #GRAPHY to avoid adding the asset in builds.
+
+## License
+
+Graphy is released under the [MIT license](https://github.com/Tayx94/graphy/blob/master/LICENSE). Although I don't require attribution, I would love to know if you decide to use it in a project! Let me know on [Twitter](https://twitter.com/martinTayx) or by [email](martintayx@gmail.com).
diff --git a/Assets/Graphy - Ultimate Stats Monitor/README.md.meta b/Assets/Graphy - Ultimate Stats Monitor/README.md.meta
new file mode 100644
index 0000000..65aac6b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/README.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fd1e6a9192c40084998c62404bb41ba2
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf b/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf
new file mode 100644
index 0000000..82ea40e
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf.meta b/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf.meta
new file mode 100644
index 0000000..84ef1de
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Readme! - Graphy - Documentation.pdf.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: d78a1478d4edf8a4f894e39e18c9e58d
+labels:
+- Counter
+- Fps
+- Graph
+- Graphy
+- Tayx
+timeCreated: 1518800331
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime.meta
new file mode 100644
index 0000000..8fbe1a8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d019fe31826be4d40b791a523a76fa12
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced.meta
new file mode 100644
index 0000000..aec8a83
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1ac38d39b5dd9f442a088b7284b58236
+folderAsset: yes
+timeCreated: 1513377123
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs
new file mode 100644
index 0000000..1ff6da2
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs
@@ -0,0 +1,363 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 05-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections.Generic;
+using System.Text;
+using Tayx.Graphy.UI;
+using Tayx.Graphy.Utils;
+using Tayx.Graphy.Utils.NumString;
+
+#if UNITY_5_5_OR_NEWER
+using UnityEngine.Profiling;
+#endif
+
+namespace Tayx.Graphy.Advanced
+{
+ public class G_AdvancedData : MonoBehaviour, IMovable, IModifiableState
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private List<Image> m_backgroundImages = new List<Image>();
+
+ [SerializeField] private Text m_graphicsDeviceVersionText = null;
+
+ [SerializeField] private Text m_processorTypeText = null;
+
+ [SerializeField] private Text m_operatingSystemText = null;
+
+ [SerializeField] private Text m_systemMemoryText = null;
+
+ [SerializeField] private Text m_graphicsDeviceNameText = null;
+ [SerializeField] private Text m_graphicsMemorySizeText = null;
+ [SerializeField] private Text m_screenResolutionText = null;
+ [SerializeField] private Text m_gameWindowResolutionText = null;
+
+ [Range(1, 60)]
+ [SerializeField] private float m_updateRate = 1f; // 1 update per sec.
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private RectTransform m_rectTransform = null;
+
+ private float m_deltaTime = 0.0f;
+
+ private StringBuilder m_sb = null;
+
+ private GraphyManager.ModuleState m_previousModuleState = GraphyManager.ModuleState.FULL;
+ private GraphyManager.ModuleState m_currentModuleState = GraphyManager.ModuleState.FULL;
+
+ private readonly string[] m_windowStrings =
+ {
+ "Window: ",
+ "x",
+ "@",
+ "Hz",
+ "[",
+ "dpi]"
+ };
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void OnEnable()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ m_deltaTime += Time.unscaledDeltaTime;
+
+ if (m_deltaTime > 1f / m_updateRate)
+ {
+ // Update screen window resolution
+ m_sb.Length = 0;
+
+ m_sb.Append(m_windowStrings[0]).Append(Screen.width.ToStringNonAlloc())
+ .Append(m_windowStrings[1]).Append(Screen.height.ToStringNonAlloc())
+ .Append(m_windowStrings[2]).Append(Screen.currentResolution.refreshRate.ToStringNonAlloc())
+ .Append(m_windowStrings[3])
+ .Append(m_windowStrings[4]).Append(((int)Screen.dpi).ToStringNonAlloc())
+ .Append(m_windowStrings[5]);
+
+ m_gameWindowResolutionText.text = m_sb.ToString();
+
+ // Reset variables
+ m_deltaTime = 0f;
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void SetPosition(GraphyManager.ModulePosition newModulePosition)
+ {
+ float xSideOffsetBackgroundImage = Mathf.Abs(m_backgroundImages[0].rectTransform.anchoredPosition.x);
+ float ySideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.y);
+
+ switch (newModulePosition)
+ {
+ case GraphyManager.ModulePosition.TOP_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.one;
+ m_rectTransform.anchorMin = Vector2.up;
+ m_rectTransform.anchoredPosition = new Vector2(0, -ySideOffset);
+
+
+ m_backgroundImages[0].rectTransform.anchorMax = Vector2.up;
+ m_backgroundImages[0].rectTransform.anchorMin = Vector2.zero;
+ m_backgroundImages[0].rectTransform.anchoredPosition = new Vector2(xSideOffsetBackgroundImage, 0);
+
+ break;
+
+ case GraphyManager.ModulePosition.TOP_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.one;
+ m_rectTransform.anchorMin = Vector2.up;
+ m_rectTransform.anchoredPosition = new Vector2(0, -ySideOffset);
+
+ m_backgroundImages[0].rectTransform.anchorMax = Vector2.one;
+ m_backgroundImages[0].rectTransform.anchorMin = Vector2.right;
+ m_backgroundImages[0].rectTransform.anchoredPosition = new Vector2(-xSideOffsetBackgroundImage, 0);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.right;
+ m_rectTransform.anchorMin = Vector2.zero;
+ m_rectTransform.anchoredPosition = new Vector2(0, ySideOffset);
+
+ m_backgroundImages[0].rectTransform.anchorMax = Vector2.up;
+ m_backgroundImages[0].rectTransform.anchorMin = Vector2.zero;
+ m_backgroundImages[0].rectTransform.anchoredPosition = new Vector2(xSideOffsetBackgroundImage, 0);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.right;
+ m_rectTransform.anchorMin = Vector2.zero;
+ m_rectTransform.anchoredPosition = new Vector2(0, ySideOffset);
+
+ m_backgroundImages[0].rectTransform.anchorMax = Vector2.one;
+ m_backgroundImages[0].rectTransform.anchorMin = Vector2.right;
+ m_backgroundImages[0].rectTransform.anchoredPosition = new Vector2(-xSideOffsetBackgroundImage, 0);
+
+ break;
+
+ case GraphyManager.ModulePosition.FREE:
+ break;
+ }
+
+ switch (newModulePosition)
+ {
+ case GraphyManager.ModulePosition.TOP_LEFT:
+ case GraphyManager.ModulePosition.BOTTOM_LEFT:
+
+ m_processorTypeText .alignment = TextAnchor.UpperLeft;
+ m_systemMemoryText .alignment = TextAnchor.UpperLeft;
+ m_graphicsDeviceNameText .alignment = TextAnchor.UpperLeft;
+ m_graphicsDeviceVersionText .alignment = TextAnchor.UpperLeft;
+ m_graphicsMemorySizeText .alignment = TextAnchor.UpperLeft;
+ m_screenResolutionText .alignment = TextAnchor.UpperLeft;
+ m_gameWindowResolutionText .alignment = TextAnchor.UpperLeft;
+ m_operatingSystemText .alignment = TextAnchor.UpperLeft;
+
+ break;
+
+ case GraphyManager.ModulePosition.TOP_RIGHT:
+ case GraphyManager.ModulePosition.BOTTOM_RIGHT:
+
+ m_processorTypeText .alignment = TextAnchor.UpperRight;
+ m_systemMemoryText .alignment = TextAnchor.UpperRight;
+ m_graphicsDeviceNameText .alignment = TextAnchor.UpperRight;
+ m_graphicsDeviceVersionText .alignment = TextAnchor.UpperRight;
+ m_graphicsMemorySizeText .alignment = TextAnchor.UpperRight;
+ m_screenResolutionText .alignment = TextAnchor.UpperRight;
+ m_gameWindowResolutionText .alignment = TextAnchor.UpperRight;
+ m_operatingSystemText .alignment = TextAnchor.UpperRight;
+
+ break;
+
+ case GraphyManager.ModulePosition.FREE:
+ break;
+ }
+ }
+
+ public void SetState(GraphyManager.ModuleState state, bool silentUpdate = false)
+ {
+ if (!silentUpdate)
+ {
+ m_previousModuleState = m_currentModuleState;
+ }
+
+ m_currentModuleState = state;
+
+ bool active = state == GraphyManager.ModuleState.FULL
+ || state == GraphyManager.ModuleState.TEXT
+ || state == GraphyManager.ModuleState.BASIC;
+
+ gameObject.SetActive(active);
+
+ m_backgroundImages.SetAllActive(active && m_graphyManager.Background);
+ }
+
+ /// <summary>
+ /// Restores state to the previous one.
+ /// </summary>
+ public void RestorePreviousState()
+ {
+ SetState(m_previousModuleState);
+ }
+
+ public void UpdateParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ SetPosition(m_graphyManager.AdvancedModulePosition);
+ SetState(m_graphyManager.AdvancedModuleState);
+ }
+
+ public void RefreshParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ SetPosition(m_graphyManager.AdvancedModulePosition);
+ SetState(m_currentModuleState, true);
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ G_IntString.Init( 0, 7680 );
+
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_sb = new StringBuilder();
+
+ m_rectTransform = GetComponent<RectTransform>();
+
+ #region Section -> Text
+
+ m_processorTypeText.text
+ = "CPU: "
+ + SystemInfo.processorType
+ + " ["
+ + SystemInfo.processorCount
+ + " cores]";
+
+ m_systemMemoryText.text
+ = "RAM: "
+ + SystemInfo.systemMemorySize
+ + " MB";
+
+ m_graphicsDeviceVersionText.text
+ = "Graphics API: "
+ + SystemInfo.graphicsDeviceVersion;
+
+ m_graphicsDeviceNameText.text
+ = "GPU: "
+ + SystemInfo.graphicsDeviceName;
+
+ m_graphicsMemorySizeText.text
+ = "VRAM: "
+ + SystemInfo.graphicsMemorySize
+ + "MB. Max texture size: "
+ + SystemInfo.maxTextureSize
+ + "px. Shader level: "
+ + SystemInfo.graphicsShaderLevel;
+
+ Resolution res = Screen.currentResolution;
+
+ m_screenResolutionText.text
+ = "Screen: "
+ + res.width
+ + "x"
+ + res.height
+ + "@"
+ + res.refreshRate
+ + "Hz";
+
+ m_operatingSystemText.text
+ = "OS: "
+ + SystemInfo.operatingSystem
+ + " ["
+ + SystemInfo.deviceType
+ + "]";
+
+ float preferredWidth = 0;
+
+ // Resize the background overlay
+
+ List<Text> texts = new List<Text>()
+ {
+ m_graphicsDeviceVersionText,
+ m_processorTypeText,
+ m_systemMemoryText,
+ m_graphicsDeviceNameText,
+ m_graphicsMemorySizeText,
+ m_screenResolutionText,
+ m_gameWindowResolutionText,
+ m_operatingSystemText
+ };
+
+ foreach (var text in texts)
+ {
+ if (text.preferredWidth > preferredWidth)
+ {
+ preferredWidth = text.preferredWidth;
+ }
+ }
+
+ #endregion
+
+ #region Section -> Background Images
+
+ m_backgroundImages[0].rectTransform.SetSizeWithCurrentAnchors
+ (
+ axis: RectTransform.Axis.Horizontal,
+ size: preferredWidth + 25
+ );
+
+ m_backgroundImages[0].rectTransform.anchoredPosition = new Vector2
+ (
+ x: (preferredWidth + 25) / 2 * Mathf.Sign(m_backgroundImages[0].rectTransform.anchoredPosition.x),
+ y: m_backgroundImages[0].rectTransform.anchoredPosition.y
+ );
+
+ #endregion
+
+ UpdateParameters();
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs.meta
new file mode 100644
index 0000000..e6b0b0d
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Advanced/G_AdvancedData.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5c1019d31db77fd468164577146737ad
+timeCreated: 1512484835
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio.meta
new file mode 100644
index 0000000..37d76e5
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2523395741efc1c48822a27d9fcb57d2
+folderAsset: yes
+timeCreated: 1513377094
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs
new file mode 100644
index 0000000..ed15dd3
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs
@@ -0,0 +1,290 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using Tayx.Graphy.Graph;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Audio
+{
+ public class G_AudioGraph : G_Graph
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Image m_imageGraph = null;
+ [SerializeField] private Image m_imageGraphHighestValues = null;
+
+ [SerializeField] private Shader ShaderFull = null;
+ [SerializeField] private Shader ShaderLight = null;
+
+ [SerializeField] private bool m_isInitialized = false;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_AudioMonitor m_audioMonitor = null;
+
+ private int m_resolution = 40;
+
+ private G_GraphShader m_shaderGraph = null;
+ private G_GraphShader m_shaderGraphHighestValues = null;
+
+ private float[] m_graphArray;
+ private float[] m_graphArrayHighestValue;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void OnEnable()
+ {
+ /* ----- NOTE: ----------------------------
+ * We used to Init() here regardless of
+ * whether this module was enabled.
+ * The reason we don't Init() here
+ * anymore is that some users are on
+ * platforms that do not support the arrays
+ * in the Shaders.
+ *
+ * See: https://github.com/Tayx94/graphy/issues/17
+ *
+ * Even though we don't Init() competely
+ * here anymore, we still need
+ * m_audioMonitor for in Update()
+ * --------------------------------------*/
+ m_audioMonitor = GetComponent<G_AudioMonitor>();
+ }
+
+ private void Update()
+ {
+ if (m_audioMonitor.SpectrumDataAvailable)
+ {
+ UpdateGraph();
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ if (m_shaderGraph == null)
+ {
+ // TODO: While Graphy is disabled (e.g. by default via Ctrl+H) and while in Editor after a Hot-Swap,
+ // the OnApplicationFocus calls this while m_shaderGraph == null, throwing a NullReferenceException
+ return;
+ }
+ switch (m_graphyManager.GraphyMode)
+ {
+ case GraphyManager.Mode.FULL:
+ m_shaderGraph.ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+ m_shaderGraph.Image.material = new Material(ShaderFull);
+
+ m_shaderGraphHighestValues.ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+ m_shaderGraphHighestValues.Image.material = new Material(ShaderFull);
+ break;
+
+ case GraphyManager.Mode.LIGHT:
+ m_shaderGraph.ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+ m_shaderGraph.Image.material = new Material(ShaderLight);
+
+ m_shaderGraphHighestValues.ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+ m_shaderGraphHighestValues.Image.material = new Material(ShaderLight);
+ break;
+ }
+
+ m_shaderGraph.InitializeShader();
+ m_shaderGraphHighestValues.InitializeShader();
+
+ m_resolution = m_graphyManager.AudioGraphResolution;
+
+ CreatePoints();
+ }
+
+ #endregion
+
+ #region Methods -> Protected Override
+
+ protected override void UpdateGraph()
+ {
+ // Since we no longer initialize by default OnEnable(),
+ // we need to check here, and Init() if needed
+ if (!m_isInitialized)
+ {
+ Init();
+ }
+
+ int incrementPerIteration = Mathf.FloorToInt(m_audioMonitor.Spectrum.Length / (float)m_resolution);
+
+ // Current values -------------------------
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ float currentValue = 0;
+
+ for (int j = 0; j < incrementPerIteration; j++)
+ {
+ currentValue += m_audioMonitor.Spectrum[i * incrementPerIteration + j];
+ }
+
+ // Uses 3 values for each bar to accomplish that look
+
+ if ((i + 1) % 3 == 0 && i > 1)
+ {
+ float value =
+ (
+ m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration))
+ + m_graphArray[i - 1]
+ + m_graphArray[i - 2]
+ ) / 3;
+
+ m_graphArray[i] = value;
+ m_graphArray[i - 1] = value;
+ m_graphArray[i - 2] = -1; // Always set the third one to -1 to leave gaps in the graph and improve readability
+ }
+ else
+ {
+ m_graphArray[i] = m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration));
+ }
+ }
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ m_shaderGraph.ShaderArrayValues[i] = m_graphArray[i];
+ }
+
+ m_shaderGraph.UpdatePoints();
+
+
+ // Highest values -------------------------
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ float currentValue = 0;
+
+ for (int j = 0; j < incrementPerIteration; j++)
+ {
+ currentValue += m_audioMonitor.SpectrumHighestValues[i * incrementPerIteration + j];
+ }
+
+ // Uses 3 values for each bar to accomplish that look
+
+ if ((i + 1) % 3 == 0 && i > 1)
+ {
+ float value =
+ (
+ m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration))
+ + m_graphArrayHighestValue[i - 1]
+ + m_graphArrayHighestValue[i - 2]
+ ) / 3;
+
+ m_graphArrayHighestValue[i] = value;
+ m_graphArrayHighestValue[i - 1] = value;
+ m_graphArrayHighestValue[i - 2] = -1; // Always set the third one to -1 to leave gaps in the graph and improve readability
+ }
+ else
+ {
+ m_graphArrayHighestValue[i] = m_audioMonitor.dBNormalized(m_audioMonitor.lin2dB(currentValue / incrementPerIteration));
+ }
+ }
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ m_shaderGraphHighestValues.ShaderArrayValues[i] = m_graphArrayHighestValue[i];
+ }
+
+ m_shaderGraphHighestValues.UpdatePoints();
+
+ }
+
+ protected override void CreatePoints()
+ {
+ // Init Arrays
+ if (m_shaderGraph.ShaderArrayValues == null || m_shaderGraph.ShaderArrayValues.Length != m_resolution)
+ {
+ m_graphArray = new float[m_resolution];
+ m_graphArrayHighestValue = new float[m_resolution];
+ m_shaderGraph.ShaderArrayValues = new float[m_resolution];
+ m_shaderGraphHighestValues.ShaderArrayValues = new float[m_resolution];
+ }
+
+ for (int i = 0; i < m_resolution; i++)
+ {
+ m_shaderGraph.ShaderArrayValues[i] = 0;
+ m_shaderGraphHighestValues.ShaderArrayValues[i] = 0;
+ }
+
+ // Color
+ m_shaderGraph.GoodColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraph.CautionColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraph.CriticalColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraph.UpdateColors();
+
+ m_shaderGraphHighestValues.GoodColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraphHighestValues.CautionColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraphHighestValues.CriticalColor = m_graphyManager.AudioGraphColor;
+ m_shaderGraphHighestValues.UpdateColors();
+
+ // Threshold
+ m_shaderGraph.GoodThreshold = 0;
+ m_shaderGraph.CautionThreshold = 0;
+ m_shaderGraph.UpdateThresholds();
+
+ m_shaderGraphHighestValues.GoodThreshold = 0;
+ m_shaderGraphHighestValues.CautionThreshold = 0;
+ m_shaderGraphHighestValues.UpdateThresholds();
+
+ // Update Array
+ m_shaderGraph.UpdateArray();
+ m_shaderGraphHighestValues.UpdateArray();
+
+ // Average
+ m_shaderGraph.Average = 0;
+ m_shaderGraph.UpdateAverage();
+
+ m_shaderGraphHighestValues.Average = 0;
+ m_shaderGraphHighestValues.UpdateAverage();
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_audioMonitor = GetComponent<G_AudioMonitor>();
+
+ m_shaderGraph = new G_GraphShader
+ {
+ Image = m_imageGraph
+ };
+
+ m_shaderGraphHighestValues = new G_GraphShader
+ {
+ Image = m_imageGraphHighestValues
+ };
+
+ UpdateParameters();
+
+ m_isInitialized = true;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs.meta
new file mode 100644
index 0000000..b2124dc
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioGraph.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f2d6ca19dafe21b4b983441274e7f12a
+timeCreated: 1513169449
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs
new file mode 100644
index 0000000..3e0c963
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs
@@ -0,0 +1,235 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 03-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections.Generic;
+using Tayx.Graphy.UI;
+using Tayx.Graphy.Utils;
+
+namespace Tayx.Graphy.Audio
+{
+ public class G_AudioManager : MonoBehaviour, IMovable, IModifiableState
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private GameObject m_audioGraphGameObject = null;
+ [SerializeField] private Text m_audioDbText = null;
+
+ [SerializeField] private List<Image> m_backgroundImages = new List<Image>();
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_AudioGraph m_audioGraph = null;
+ private G_AudioMonitor m_audioMonitor = null;
+ private G_AudioText m_audioText = null;
+
+ private RectTransform m_rectTransform = null;
+
+ private List<GameObject> m_childrenGameObjects = new List<GameObject>();
+
+ private GraphyManager.ModuleState m_previousModuleState = GraphyManager.ModuleState.FULL;
+ private GraphyManager.ModuleState m_currentModuleState = GraphyManager.ModuleState.FULL;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Start()
+ {
+ UpdateParameters();
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void SetPosition(GraphyManager.ModulePosition newModulePosition)
+ {
+ float xSideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.x);
+ float ySideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.y);
+
+ m_audioDbText.alignment = TextAnchor.UpperRight;
+
+ switch (newModulePosition)
+ {
+ case GraphyManager.ModulePosition.TOP_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.up;
+ m_rectTransform.anchorMin = Vector2.up;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.TOP_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.one;
+ m_rectTransform.anchorMin = Vector2.one;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.zero;
+ m_rectTransform.anchorMin = Vector2.zero;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.right;
+ m_rectTransform.anchorMin = Vector2.right;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.FREE:
+ break;
+ }
+ }
+
+ public void SetState(GraphyManager.ModuleState state, bool silentUpdate = false)
+ {
+ if (!silentUpdate)
+ {
+ m_previousModuleState = m_currentModuleState;
+ }
+
+ m_currentModuleState = state;
+
+ switch (state)
+ {
+ case GraphyManager.ModuleState.FULL:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(true);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(0);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.TEXT:
+ case GraphyManager.ModuleState.BASIC:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(false);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(1);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.BACKGROUND:
+ gameObject.SetActive(true);
+ SetGraphActive(false);
+ m_childrenGameObjects.SetAllActive(false);
+
+ m_backgroundImages.SetAllActive(false);
+
+ break;
+
+ case GraphyManager.ModuleState.OFF:
+ gameObject.SetActive(false);
+ break;
+ }
+ }
+
+ public void RestorePreviousState()
+ {
+ SetState(m_previousModuleState);
+ }
+
+ public void UpdateParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_audioGraph .UpdateParameters();
+ m_audioMonitor .UpdateParameters();
+ m_audioText .UpdateParameters();
+
+ SetState(m_graphyManager.AudioModuleState);
+ }
+
+ public void RefreshParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_audioGraph .UpdateParameters();
+ m_audioMonitor .UpdateParameters();
+ m_audioText .UpdateParameters();
+
+ SetState(m_currentModuleState, true);
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_rectTransform = GetComponent<RectTransform>();
+
+ m_audioGraph = GetComponent<G_AudioGraph>();
+ m_audioMonitor = GetComponent<G_AudioMonitor>();
+ m_audioText = GetComponent<G_AudioText>();
+
+ foreach (Transform child in transform)
+ {
+ if (child.parent == transform)
+ {
+ m_childrenGameObjects.Add(child.gameObject);
+ }
+ }
+ }
+
+ private void SetGraphActive(bool active)
+ {
+ m_audioGraph.enabled = active;
+ m_audioGraphGameObject.SetActive(active);
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs.meta
new file mode 100644
index 0000000..86870f1
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8c0448d8db852b54480670d291c04f1a
+timeCreated: 1514998347
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs
new file mode 100644
index 0000000..dba6644
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs
@@ -0,0 +1,210 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+namespace Tayx.Graphy.Audio
+{
+ /// <summary>
+ /// Note: this class only works with Unity's AudioListener.
+ /// If you're using a custom audio engine (like FMOD or WWise) it won't work,
+ /// although you can always adapt it.
+ /// </summary>
+ public class G_AudioMonitor : MonoBehaviour
+ {
+ #region Variables -> Private
+
+ private const float m_refValue = 1f;
+
+ private GraphyManager m_graphyManager = null;
+
+ private AudioListener m_audioListener = null;
+
+ private GraphyManager.LookForAudioListener m_findAudioListenerInCameraIfNull = GraphyManager.LookForAudioListener.ON_SCENE_LOAD;
+
+ private FFTWindow m_FFTWindow = FFTWindow.Blackman;
+
+ private int m_spectrumSize = 512;
+
+ #endregion
+
+ #region Properties -> Public
+
+ /// <summary>
+ /// Current audio spectrum from the specified AudioListener.
+ /// </summary>
+ public float[] Spectrum { get; private set; }
+
+ /// <summary>
+ /// Highest audio spectrum from the specified AudioListener in the last few seconds.
+ /// </summary>
+ public float[] SpectrumHighestValues { get; private set; }
+
+ /// <summary>
+ /// Maximum DB registered in the current spectrum.
+ /// </summary>
+ public float MaxDB { get; private set; }
+
+ /// <summary>
+ /// Returns true if there is a reference to the audio listener.
+ /// </summary>
+ public bool SpectrumDataAvailable => m_audioListener != null;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ if (m_audioListener != null)
+ {
+ // Use this data to calculate the dB value
+
+ AudioListener.GetOutputData(Spectrum, 0);
+
+ float sum = 0;
+
+ for (int i = 0; i < Spectrum.Length; i++)
+ {
+ sum += Spectrum[i] * Spectrum[i]; // sum squared samples
+ }
+
+ float rmsValue = Mathf.Sqrt(sum / Spectrum.Length); // rms = square root of average
+
+ MaxDB = 20 * Mathf.Log10(rmsValue / m_refValue); // calculate dB
+
+ if (MaxDB < -80) MaxDB = -80; // clamp it to -80dB min
+
+ // Use this data to draw the spectrum in the graphs
+
+ AudioListener.GetSpectrumData(Spectrum, 0, m_FFTWindow);
+
+ for (int i = 0; i < Spectrum.Length; i++)
+ {
+ // Update the highest value if its lower than the current one
+ if (Spectrum[i] > SpectrumHighestValues[i])
+ {
+ SpectrumHighestValues[i] = Spectrum[i];
+ }
+
+ // Slowly lower the value
+ else
+ {
+ SpectrumHighestValues[i] = Mathf.Clamp
+ (
+ value: SpectrumHighestValues[i] - SpectrumHighestValues[i] * Time.deltaTime * 2,
+ min: 0,
+ max: 1
+ );
+ }
+ }
+ }
+ else if( m_audioListener == null
+ && m_findAudioListenerInCameraIfNull == GraphyManager.LookForAudioListener.ALWAYS)
+ {
+ m_audioListener = FindAudioListener();
+ }
+ }
+
+ private void OnDestroy()
+ {
+ UnityEngine.SceneManagement.SceneManager.sceneLoaded -= OnSceneLoaded;
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ m_findAudioListenerInCameraIfNull = m_graphyManager.FindAudioListenerInCameraIfNull;
+
+ m_audioListener = m_graphyManager.AudioListener;
+ m_FFTWindow = m_graphyManager.FftWindow;
+ m_spectrumSize = m_graphyManager.SpectrumSize;
+
+ if (m_audioListener == null
+ && m_findAudioListenerInCameraIfNull != GraphyManager.LookForAudioListener.NEVER)
+ {
+ m_audioListener = FindAudioListener();
+ }
+
+ Spectrum = new float[m_spectrumSize];
+ SpectrumHighestValues = new float[m_spectrumSize];
+ }
+
+ /// <summary>
+ /// Converts spectrum values to decibels using logarithms.
+ /// </summary>
+ /// <param name="linear"></param>
+ /// <returns></returns>
+ public float lin2dB(float linear)
+ {
+ return Mathf.Clamp(Mathf.Log10(linear) * 20.0f, -160.0f, 0.0f);
+ }
+
+ /// <summary>
+ /// Normalizes a value in decibels between 0-1.
+ /// </summary>
+ /// <param name="db"></param>
+ /// <returns></returns>
+ public float dBNormalized(float db)
+ {
+ return (db + 160f) / 160f;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ /// <summary>
+ /// Tries to find an audio listener in the main camera.
+ /// </summary>
+ private AudioListener FindAudioListener()
+ {
+ Camera mainCamera = Camera.main;
+
+ if (mainCamera != null && mainCamera.TryGetComponent(out AudioListener audioListener))
+ {
+ return audioListener;
+ }
+
+ return null;
+ }
+
+ private void OnSceneLoaded(Scene scene, LoadSceneMode loadSceneMode)
+ {
+ if (m_findAudioListenerInCameraIfNull == GraphyManager.LookForAudioListener.ON_SCENE_LOAD)
+ {
+ m_audioListener = FindAudioListener();
+ }
+ }
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ UpdateParameters();
+
+ UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoaded;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs.meta
new file mode 100644
index 0000000..d3c2dc2
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioMonitor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2216f4eff6a7a8a43b38b180fdd2fd9e
+timeCreated: 1513377074
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs
new file mode 100644
index 0000000..4a3121b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs
@@ -0,0 +1,90 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+using Tayx.Graphy.Utils.NumString;
+
+namespace Tayx.Graphy.Audio
+{
+ public class G_AudioText : MonoBehaviour
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Text m_DBText = null;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_AudioMonitor m_audioMonitor = null;
+
+ private int m_updateRate = 4;
+
+ private float m_deltaTimeOffset = 0;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ if (m_audioMonitor.SpectrumDataAvailable)
+ {
+ if (m_deltaTimeOffset > 1f / m_updateRate)
+ {
+ m_deltaTimeOffset = 0f;
+
+ m_DBText.text = Mathf.Clamp((int)m_audioMonitor.MaxDB, -80, 0).ToStringNonAlloc();
+ }
+ else
+ {
+ m_deltaTimeOffset += Time.deltaTime;
+ }
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ m_updateRate = m_graphyManager.AudioTextUpdateRate;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ G_IntString.Init( -80, 0 ); // dB range
+
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_audioMonitor = GetComponent<G_AudioMonitor>();
+
+ UpdateParameters();
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs.meta
new file mode 100644
index 0000000..8b4fcd1
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Audio/G_AudioText.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 766a588f9a6cb55499c66ea772072e11
+timeCreated: 1513377063
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps.meta
new file mode 100644
index 0000000..b4b246d
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3232b12a3422d1a4d8ff3eaa000c43ae
+folderAsset: yes
+timeCreated: 1513377102
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs
new file mode 100644
index 0000000..c714d5d
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs
@@ -0,0 +1,197 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using Tayx.Graphy.Graph;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Fps
+{
+ public class G_FpsGraph : G_Graph
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Image m_imageGraph = null;
+
+ [SerializeField] private Shader ShaderFull = null;
+ [SerializeField] private Shader ShaderLight = null;
+
+ // This keeps track of whether Init() has run or not
+ [SerializeField] private bool m_isInitialized = false;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_FpsMonitor m_fpsMonitor = null;
+
+ private int m_resolution = 150;
+
+ private G_GraphShader m_shaderGraph = null;
+
+ private int[] m_fpsArray;
+
+ private int m_highestFps;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Update()
+ {
+ UpdateGraph();
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ if (m_shaderGraph == null)
+ {
+ // TODO: While Graphy is disabled (e.g. by default via Ctrl+H) and while in Editor after a Hot-Swap,
+ // the OnApplicationFocus calls this while m_shaderGraph == null, throwing a NullReferenceException
+ return;
+ }
+ switch (m_graphyManager.GraphyMode)
+ {
+ case GraphyManager.Mode.FULL:
+ m_shaderGraph.ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+ m_shaderGraph.Image.material = new Material(ShaderFull);
+ break;
+
+ case GraphyManager.Mode.LIGHT:
+ m_shaderGraph.ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+ m_shaderGraph.Image.material = new Material(ShaderLight);
+ break;
+ }
+
+ m_shaderGraph.InitializeShader();
+
+ m_resolution = m_graphyManager.FpsGraphResolution;
+
+ CreatePoints();
+ }
+
+ #endregion
+
+ #region Methods -> Protected Override
+
+ protected override void UpdateGraph()
+ {
+ // Since we no longer initialize by default OnEnable(),
+ // we need to check here, and Init() if needed
+ if (!m_isInitialized)
+ {
+ Init();
+ }
+
+ short fps = (short)(1 / Time.unscaledDeltaTime);
+
+ int currentMaxFps = 0;
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ if (i >= m_resolution - 1)
+ {
+ m_fpsArray[i] = fps;
+ }
+ else
+ {
+ m_fpsArray[i] = m_fpsArray[i + 1];
+ }
+
+ // Store the highest fps to use as the highest point in the graph
+
+ if (currentMaxFps < m_fpsArray[i])
+ {
+ currentMaxFps = m_fpsArray[i];
+ }
+
+ }
+
+ m_highestFps = m_highestFps < 1 || m_highestFps <= currentMaxFps ? currentMaxFps : m_highestFps - 1;
+
+ m_highestFps = m_highestFps > 0 ? m_highestFps : 1;
+
+ if (m_shaderGraph.ShaderArrayValues == null)
+ {
+ m_fpsArray = new int[m_resolution];
+ m_shaderGraph.ShaderArrayValues = new float[m_resolution];
+ }
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ m_shaderGraph.ShaderArrayValues[i] = m_fpsArray[i] / (float) m_highestFps;
+ }
+
+ // Update the material values
+
+ m_shaderGraph.UpdatePoints();
+
+ m_shaderGraph.Average = m_fpsMonitor.AverageFPS / m_highestFps;
+ m_shaderGraph.UpdateAverage();
+
+ m_shaderGraph.GoodThreshold = (float)m_graphyManager.GoodFPSThreshold / m_highestFps;
+ m_shaderGraph.CautionThreshold = (float)m_graphyManager.CautionFPSThreshold / m_highestFps;
+ m_shaderGraph.UpdateThresholds();
+ }
+
+ protected override void CreatePoints()
+ {
+ if (m_shaderGraph.ShaderArrayValues == null || m_fpsArray.Length != m_resolution)
+ {
+ m_fpsArray = new int[m_resolution];
+ m_shaderGraph.ShaderArrayValues = new float[m_resolution];
+ }
+
+ for (int i = 0; i < m_resolution; i++)
+ {
+ m_shaderGraph.ShaderArrayValues[i] = 0;
+ }
+
+ m_shaderGraph.GoodColor = m_graphyManager.GoodFPSColor;
+ m_shaderGraph.CautionColor = m_graphyManager.CautionFPSColor;
+ m_shaderGraph.CriticalColor = m_graphyManager.CriticalFPSColor;
+
+ m_shaderGraph.UpdateColors();
+
+ m_shaderGraph.UpdateArray();
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_fpsMonitor = GetComponent<G_FpsMonitor>();
+
+ m_shaderGraph = new G_GraphShader
+ {
+ Image = m_imageGraph
+ };
+
+ UpdateParameters();
+
+ m_isInitialized = true;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs.meta
new file mode 100644
index 0000000..66d52c8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsGraph.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2e119c7747ac400478c7cfcaea03214e
+timeCreated: 1511794194
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs
new file mode 100644
index 0000000..0cbcd6c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs
@@ -0,0 +1,249 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 03-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using System.Collections.Generic;
+using Tayx.Graphy.UI;
+using Tayx.Graphy.Utils;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Fps
+{
+ public class G_FpsManager : MonoBehaviour, IMovable, IModifiableState
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private GameObject m_fpsGraphGameObject = null;
+
+ [SerializeField] private List<GameObject> m_nonBasicTextGameObjects = new List<GameObject>();
+
+ [SerializeField] private List<Image> m_backgroundImages = new List<Image>();
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_FpsGraph m_fpsGraph = null;
+ private G_FpsMonitor m_fpsMonitor = null;
+ private G_FpsText m_fpsText = null;
+
+ private RectTransform m_rectTransform = null;
+
+ private List<GameObject> m_childrenGameObjects = new List<GameObject>();
+
+ private GraphyManager.ModuleState m_previousModuleState = GraphyManager.ModuleState.FULL;
+ private GraphyManager.ModuleState m_currentModuleState = GraphyManager.ModuleState.FULL;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Start()
+ {
+ UpdateParameters();
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void SetPosition(GraphyManager.ModulePosition newModulePosition)
+ {
+ float xSideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.x);
+ float ySideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.y);
+
+ switch (newModulePosition)
+ {
+ case GraphyManager.ModulePosition.TOP_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.up;
+ m_rectTransform.anchorMin = Vector2.up;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.TOP_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.one;
+ m_rectTransform.anchorMin = Vector2.one;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.zero;
+ m_rectTransform.anchorMin = Vector2.zero;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.right;
+ m_rectTransform.anchorMin = Vector2.right;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.FREE:
+ break;
+ }
+ }
+
+ public void SetState(GraphyManager.ModuleState state, bool silentUpdate = false)
+ {
+ if (!silentUpdate)
+ {
+ m_previousModuleState = m_currentModuleState;
+ }
+
+ m_currentModuleState = state;
+
+ switch (state)
+ {
+ case GraphyManager.ModuleState.FULL:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(true);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(0);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.TEXT:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(false);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(1);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.BASIC:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ m_nonBasicTextGameObjects.SetAllActive(false);
+ SetGraphActive(false);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(2);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.BACKGROUND:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(false);
+ SetGraphActive(false);
+
+ m_backgroundImages.SetAllActive(false);
+ break;
+
+ case GraphyManager.ModuleState.OFF:
+ gameObject.SetActive(false);
+ break;
+ }
+ }
+
+ public void RestorePreviousState()
+ {
+ SetState(m_previousModuleState);
+ }
+
+ public void UpdateParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_fpsGraph .UpdateParameters();
+ m_fpsMonitor .UpdateParameters();
+ m_fpsText .UpdateParameters();
+
+ SetState(m_graphyManager.FpsModuleState);
+ }
+
+ public void RefreshParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_fpsGraph .UpdateParameters();
+ m_fpsMonitor .UpdateParameters();
+ m_fpsText .UpdateParameters();
+
+ SetState(m_currentModuleState, true);
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_rectTransform = GetComponent<RectTransform>();
+
+ m_fpsGraph = GetComponent<G_FpsGraph>();
+ m_fpsMonitor = GetComponent<G_FpsMonitor>();
+ m_fpsText = GetComponent<G_FpsText>();
+
+ foreach (Transform child in transform)
+ {
+ if (child.parent == transform)
+ {
+ m_childrenGameObjects.Add(child.gameObject);
+ }
+ }
+ }
+
+ private void SetGraphActive(bool active)
+ {
+ m_fpsGraph.enabled = active;
+ m_fpsGraphGameObject.SetActive(active);
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs.meta
new file mode 100644
index 0000000..588a34c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 221dc0b3655ddb749ace6bad55f0159f
+timeCreated: 1514998359
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs
new file mode 100644
index 0000000..44abdef
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs
@@ -0,0 +1,145 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using System;
+using System.Xml.Linq;
+using UnityEngine;
+using Random = UnityEngine.Random;
+
+namespace Tayx.Graphy.Fps
+{
+ public class G_FpsMonitor : MonoBehaviour
+ {
+ #region Variables -> Private
+
+ private short[] m_fpsSamples;
+ private short[] m_fpsSamplesSorted;
+ private short m_fpsSamplesCapacity = 1024;
+ private short m_onePercentSamples = 10;
+ private short m_zero1PercentSamples = 1;
+ private short m_fpsSamplesCount = 0;
+ private short m_indexSample = 0;
+
+ private float m_unscaledDeltaTime = 0f;
+
+ #endregion
+
+ #region Properties -> Public
+
+ public short CurrentFPS { get; private set; } = 0;
+ public short AverageFPS { get; private set; } = 0;
+ public short OnePercentFPS { get; private set; } = 0;
+ public short Zero1PercentFps { get; private set; } = 0;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ m_unscaledDeltaTime = Time.unscaledDeltaTime;
+
+ // Update fps and ms
+
+ CurrentFPS = (short)(Mathf.RoundToInt(1f / m_unscaledDeltaTime));
+
+ // Update avg fps
+
+ uint averageAddedFps = 0;
+
+ m_indexSample++;
+
+ if ( m_indexSample >= m_fpsSamplesCapacity ) m_indexSample = 0;
+
+ m_fpsSamples[ m_indexSample ] = CurrentFPS;
+
+ if (m_fpsSamplesCount < m_fpsSamplesCapacity)
+ {
+ m_fpsSamplesCount++;
+ }
+
+ for (int i = 0; i < m_fpsSamplesCount; i++)
+ {
+ averageAddedFps += (uint)m_fpsSamples[i];
+ }
+
+ AverageFPS = (short)((float)averageAddedFps / (float)m_fpsSamplesCount);
+
+ // Update percent lows
+
+ m_fpsSamples.CopyTo( m_fpsSamplesSorted, 0 );
+
+ /*
+ * TODO: Find a faster way to do this.
+ * We can probably avoid copying the full array every time
+ * and insert the new item already sorted in the list.
+ */
+ Array.Sort(m_fpsSamplesSorted, (x, y) => x.CompareTo(y)); // The lambda expression avoids garbage generation
+
+ bool zero1PercentCalculated = false;
+
+ uint totalAddedFps = 0;
+
+ short samplesToIterateThroughForOnePercent = m_fpsSamplesCount < m_onePercentSamples
+ ? m_fpsSamplesCount : m_onePercentSamples;
+
+ short samplesToIterateThroughForZero1Percent = m_fpsSamplesCount < m_zero1PercentSamples
+ ? m_fpsSamplesCount : m_zero1PercentSamples;
+
+ short sampleToStartIn = (short)(m_fpsSamplesCapacity - m_fpsSamplesCount);
+
+ for ( short i = sampleToStartIn; i < sampleToStartIn + samplesToIterateThroughForOnePercent; i++ )
+ {
+ totalAddedFps += (ushort)m_fpsSamplesSorted[i];
+
+ if (!zero1PercentCalculated && i >= samplesToIterateThroughForZero1Percent - 1)
+ {
+ zero1PercentCalculated = true;
+
+ Zero1PercentFps = (short)((float)totalAddedFps / (float)m_zero1PercentSamples);
+ }
+ }
+
+ OnePercentFPS = (short)((float)totalAddedFps / (float)m_onePercentSamples);
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ m_onePercentSamples = (short)(m_fpsSamplesCapacity / 100);
+ m_zero1PercentSamples = (short)(m_fpsSamplesCapacity / 1000);
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_fpsSamples = new short[m_fpsSamplesCapacity];
+ m_fpsSamplesSorted = new short[m_fpsSamplesCapacity];
+
+ UpdateParameters();
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs.meta
new file mode 100644
index 0000000..56e47db
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsMonitor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b205584e495e4634aa3a332a78102a19
+timeCreated: 1513376950
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs
new file mode 100644
index 0000000..996b70f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs
@@ -0,0 +1,154 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 22-Nov-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+using Tayx.Graphy.Utils.NumString;
+
+namespace Tayx.Graphy.Fps
+{
+ public class G_FpsText : MonoBehaviour
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Text m_fpsText = null;
+ [SerializeField] private Text m_msText = null;
+
+ [SerializeField] private Text m_avgFpsText = null;
+ [SerializeField] private Text m_onePercentFpsText = null;
+ [SerializeField] private Text m_zero1PercentFpsText = null;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_FpsMonitor m_fpsMonitor = null;
+
+ private int m_updateRate = 4; // 4 updates per sec.
+
+ private int m_frameCount = 0;
+
+ private float m_deltaTime = 0f;
+
+ private float m_fps = 0f;
+
+ private float m_ms = 0f;
+
+ private const string m_msStringFormat = "0.0";
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ m_deltaTime += Time.unscaledDeltaTime;
+
+ m_frameCount++;
+
+ // Only update texts 'm_updateRate' times per second
+
+ if (m_deltaTime > 1f / m_updateRate)
+ {
+ m_fps = m_frameCount / m_deltaTime;
+ m_ms = m_deltaTime / m_frameCount * 1000f;
+
+ // Update fps
+ m_fpsText.text = Mathf.RoundToInt(m_fps).ToStringNonAlloc();
+ SetFpsRelatedTextColor(m_fpsText, m_fps);
+
+ // Update ms
+ m_msText.text = m_ms.ToStringNonAlloc(m_msStringFormat);
+ SetFpsRelatedTextColor(m_msText, m_fps);
+
+ // Update 1% fps
+ m_onePercentFpsText.text = ((int)(m_fpsMonitor.OnePercentFPS)).ToStringNonAlloc();
+ SetFpsRelatedTextColor(m_onePercentFpsText, m_fpsMonitor.OnePercentFPS);
+
+ // Update 0.1% fps
+ m_zero1PercentFpsText.text = ((int)(m_fpsMonitor.Zero1PercentFps)).ToStringNonAlloc();
+ SetFpsRelatedTextColor(m_zero1PercentFpsText, m_fpsMonitor.Zero1PercentFps);
+
+ // Update avg fps
+ m_avgFpsText.text = ((int)(m_fpsMonitor.AverageFPS)).ToStringNonAlloc();
+ SetFpsRelatedTextColor(m_avgFpsText, m_fpsMonitor.AverageFPS);
+
+ // Reset variables
+ m_deltaTime = 0f;
+ m_frameCount = 0;
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ m_updateRate = m_graphyManager.FpsTextUpdateRate;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ /// <summary>
+ /// Assigns color to a text according to their fps numeric value and
+ /// the colors specified in the 3 categories (Good, Caution, Critical).
+ /// </summary>
+ ///
+ /// <param name="text">
+ /// UI Text component to change its color
+ /// </param>
+ ///
+ /// <param name="fps">
+ /// Numeric fps value
+ /// </param>
+ private void SetFpsRelatedTextColor(Text text, float fps)
+ {
+ if (fps > m_graphyManager.GoodFPSThreshold)
+ {
+ text.color = m_graphyManager.GoodFPSColor;
+ }
+ else if (fps > m_graphyManager.CautionFPSThreshold)
+ {
+ text.color = m_graphyManager.CautionFPSColor;
+ }
+ else
+ {
+ text.color = m_graphyManager.CriticalFPSColor;
+ }
+ }
+
+ private void Init()
+ {
+ G_IntString.Init( 0, 2000 ); // Max fps expected
+ G_FloatString.Init( 0, 100 ); // Max ms expected per frame
+
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_fpsMonitor = GetComponent<G_FpsMonitor>();
+
+ UpdateParameters();
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs.meta
new file mode 100644
index 0000000..41d6fcf
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Fps/G_FpsText.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f74bbf307d92b0d4e81ae60b9eb1e42f
+timeCreated: 1511555604
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph.meta
new file mode 100644
index 0000000..65ea48b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: aca40e3cb2846db40ad6d970f36d4a7f
+folderAsset: yes
+timeCreated: 1516716444
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs
new file mode 100644
index 0000000..76154bb
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs
@@ -0,0 +1,35 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 23-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Graph
+{
+ public abstract class G_Graph : MonoBehaviour
+ {
+ #region Methods -> Protected
+
+ /// <summary>
+ /// Updates the graph/s.
+ /// </summary>
+ protected abstract void UpdateGraph();
+
+ /// <summary>
+ /// Creates the points for the graph/s.
+ /// </summary>
+ protected abstract void CreatePoints();
+
+ #endregion
+ }
+
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs.meta
new file mode 100644
index 0000000..c87b143
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Graph/G_Graph.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 67969a520b115cd47a7d955c9b2abfa6
+timeCreated: 1516716468
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs
new file mode 100644
index 0000000..9815752
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs
@@ -0,0 +1,570 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 23-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.Events;
+using Debug = UnityEngine.Debug;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+using Tayx.Graphy.Audio;
+using Tayx.Graphy.Fps;
+using Tayx.Graphy.Ram;
+using Tayx.Graphy.Utils;
+
+namespace Tayx.Graphy
+{
+ /// <summary>
+ /// Main class to access the Graphy Debugger API.
+ /// </summary>
+ public class GraphyDebugger : G_Singleton<GraphyDebugger>
+ {
+ /* ----- TODO: ----------------------------
+ * Add summaries to the variables.
+ * Add summaries to the functions.
+ * Ask why we're not using System.Serializable instead for the helper class.
+ * Simplify the initializers of the DebugPackets, but check wether we should as some wont work with certain lists.
+ * --------------------------------------*/
+
+ protected GraphyDebugger () { }
+
+ #region Enums -> Public
+
+ public enum DebugVariable
+ {
+ Fps,
+ Fps_Min,
+ Fps_Max,
+ Fps_Avg,
+ Ram_Allocated,
+ Ram_Reserved,
+ Ram_Mono,
+ Audio_DB
+ }
+
+ public enum DebugComparer
+ {
+ Less_than,
+ Equals_or_less_than,
+ Equals,
+ Equals_or_greater_than,
+ Greater_than
+ }
+
+ public enum ConditionEvaluation
+ {
+ All_conditions_must_be_met,
+ Only_one_condition_has_to_be_met,
+
+ }
+
+ public enum MessageType
+ {
+ Log,
+ Warning,
+ Error
+ }
+
+ #endregion
+
+ #region Structs -> Public
+
+ [System.Serializable]
+ public struct DebugCondition
+ {
+ [Tooltip("Variable to compare against")]
+ public DebugVariable Variable;
+ [Tooltip("Comparer operator to use")]
+ public DebugComparer Comparer;
+ [Tooltip("Value to compare against the chosen variable")]
+ public float Value;
+ }
+
+ #endregion
+
+ #region Helper Classes
+
+ [System.Serializable]
+ public class DebugPacket
+ {
+
+ [Tooltip("If false, it won't be checked")]
+ public bool Active = true;
+ [Tooltip("Optional Id. It's used to get or remove DebugPackets in runtime")]
+ public int Id;
+ [Tooltip("If true, once the actions are executed, this DebugPacket will delete itself")]
+ public bool ExecuteOnce = true;
+ [Tooltip("Time to wait before checking if conditions are met (use this to avoid low fps drops triggering the conditions when loading the game)")]
+ public float InitSleepTime = 2;
+ [Tooltip("Time to wait before checking if conditions are met again (once they have already been met and if ExecuteOnce is false)")]
+ public float ExecuteSleepTime = 2;
+
+ public ConditionEvaluation ConditionEvaluation = ConditionEvaluation.All_conditions_must_be_met;
+ [Tooltip("List of conditions that will be checked each frame")]
+ public List<DebugCondition> DebugConditions = new List<DebugCondition>();
+
+ // Actions on conditions met
+
+ public MessageType MessageType;
+ [Multiline]
+ public string Message = string.Empty;
+ public bool TakeScreenshot = false;
+ public string ScreenshotFileName = "Graphy_Screenshot";
+ [Tooltip("If true, it pauses the editor")]
+ public bool DebugBreak = false;
+ public UnityEvent UnityEvents;
+ public List<System.Action> Callbacks = new List<System.Action>();
+
+
+ private bool canBeChecked = false;
+ private bool executed = false;
+
+ private float timePassed = 0;
+
+ public bool Check { get { return canBeChecked; } }
+
+ public void Update()
+ {
+ if (!canBeChecked)
+ {
+ timePassed += Time.deltaTime;
+
+ if ( (executed && timePassed >= ExecuteSleepTime)
+ || (!executed && timePassed >= InitSleepTime))
+ {
+ canBeChecked = true;
+
+ timePassed = 0;
+ }
+ }
+ }
+
+ public void Executed()
+ {
+ canBeChecked = false;
+ executed = true;
+ }
+ }
+
+ #endregion
+
+ #region Variables -> Serialized Private
+
+ [SerializeField] private List<DebugPacket> m_debugPackets = new List<DebugPacket>();
+
+ #endregion
+
+ #region Variables -> Private
+
+ private G_FpsMonitor m_fpsMonitor = null;
+ private G_RamMonitor m_ramMonitor = null;
+ private G_AudioMonitor m_audioMonitor = null;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Start()
+ {
+ m_fpsMonitor = GetComponentInChildren<G_FpsMonitor>();
+ m_ramMonitor = GetComponentInChildren<G_RamMonitor>();
+ m_audioMonitor = GetComponentInChildren<G_AudioMonitor>();
+ }
+
+ private void Update()
+ {
+ CheckDebugPackets();
+ }
+
+ #endregion
+
+ #region Public Methods
+
+ /// <summary>
+ /// Add a new DebugPacket.
+ /// </summary>
+ public void AddNewDebugPacket(DebugPacket newDebugPacket)
+ {
+ m_debugPackets?.Add(newDebugPacket);
+ }
+
+ /// <summary>
+ /// Add a new DebugPacket.
+ /// </summary>
+ public void AddNewDebugPacket
+ (
+ int newId,
+ DebugCondition newDebugCondition,
+ MessageType newMessageType,
+ string newMessage,
+ bool newDebugBreak,
+ System.Action newCallback
+ )
+ {
+ DebugPacket newDebugPacket = new DebugPacket();
+
+ newDebugPacket.Id = newId;
+ newDebugPacket.DebugConditions.Add(newDebugCondition);
+ newDebugPacket.MessageType = newMessageType;
+ newDebugPacket.Message = newMessage;
+ newDebugPacket.DebugBreak = newDebugBreak;
+ newDebugPacket.Callbacks.Add(newCallback);
+
+ AddNewDebugPacket(newDebugPacket);
+ }
+
+ /// <summary>
+ /// Add a new DebugPacket.
+ /// </summary>
+ public void AddNewDebugPacket
+ (
+ int newId,
+ List<DebugCondition> newDebugConditions,
+ MessageType newMessageType,
+ string newMessage,
+ bool newDebugBreak,
+ System.Action newCallback
+ )
+ {
+ DebugPacket newDebugPacket = new DebugPacket();
+
+ newDebugPacket.Id = newId;
+ newDebugPacket.DebugConditions = newDebugConditions;
+ newDebugPacket.MessageType = newMessageType;
+ newDebugPacket.Message = newMessage;
+ newDebugPacket.DebugBreak = newDebugBreak;
+ newDebugPacket.Callbacks.Add(newCallback);
+
+ AddNewDebugPacket(newDebugPacket);
+ }
+
+ /// <summary>
+ /// Add a new DebugPacket.
+ /// </summary>
+ public void AddNewDebugPacket
+ (
+ int newId,
+ DebugCondition newDebugCondition,
+ MessageType newMessageType,
+ string newMessage,
+ bool newDebugBreak,
+ List<System.Action> newCallbacks
+ )
+ {
+ DebugPacket newDebugPacket = new DebugPacket();
+
+ newDebugPacket.Id = newId;
+ newDebugPacket.DebugConditions.Add(newDebugCondition);
+ newDebugPacket.MessageType = newMessageType;
+ newDebugPacket.Message = newMessage;
+ newDebugPacket.DebugBreak = newDebugBreak;
+ newDebugPacket.Callbacks = newCallbacks;
+
+ AddNewDebugPacket(newDebugPacket);
+ }
+
+ /// <summary>
+ /// Add a new DebugPacket.
+ /// </summary>
+ public void AddNewDebugPacket
+ (
+ int newId,
+ List<DebugCondition> newDebugConditions,
+ MessageType newMessageType,
+ string newMessage,
+ bool newDebugBreak,
+ List<System.Action> newCallbacks
+ )
+ {
+ DebugPacket newDebugPacket = new DebugPacket();
+
+ newDebugPacket.Id = newId;
+ newDebugPacket.DebugConditions = newDebugConditions;
+ newDebugPacket.MessageType = newMessageType;
+ newDebugPacket.Message = newMessage;
+ newDebugPacket.DebugBreak = newDebugBreak;
+ newDebugPacket.Callbacks = newCallbacks;
+
+ AddNewDebugPacket(newDebugPacket);
+ }
+
+ /// <summary>
+ /// Returns the first Packet with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="packetId"></param>
+ /// <returns></returns>
+ public DebugPacket GetFirstDebugPacketWithId(int packetId)
+ {
+ return m_debugPackets.First(x => x.Id == packetId);
+ }
+
+ /// <summary>
+ /// Returns a list with all the Packets with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="packetId"></param>
+ /// <returns></returns>
+ public List<DebugPacket> GetAllDebugPacketsWithId(int packetId)
+ {
+ return m_debugPackets.FindAll(x => x.Id == packetId);
+ }
+
+ /// <summary>
+ /// Removes the first Packet with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="packetId"></param>
+ /// <returns></returns>
+ public void RemoveFirstDebugPacketWithId(int packetId)
+ {
+ if (m_debugPackets != null && GetFirstDebugPacketWithId(packetId) != null)
+ {
+ m_debugPackets.Remove(GetFirstDebugPacketWithId(packetId));
+ }
+ }
+
+ /// <summary>
+ /// Removes all the Packets with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="packetId"></param>
+ /// <returns></returns>
+ public void RemoveAllDebugPacketsWithId(int packetId)
+ {
+ if (m_debugPackets != null)
+ {
+ m_debugPackets.RemoveAll(x => x.Id == packetId);
+ }
+ }
+
+ /// <summary>
+ /// Add an Action callback to the first Packet with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="callback"></param>
+ /// <param name="id"></param>
+ public void AddCallbackToFirstDebugPacketWithId(System.Action callback, int id)
+ {
+ if (GetFirstDebugPacketWithId(id) != null)
+ {
+ GetFirstDebugPacketWithId(id).Callbacks.Add(callback);
+ }
+ }
+
+ /// <summary>
+ /// Add an Action callback to all the Packets with the specified ID in the DebugPacket list.
+ /// </summary>
+ /// <param name="callback"></param>
+ /// <param name="id"></param>
+ public void AddCallbackToAllDebugPacketWithId(System.Action callback, int id)
+ {
+ if (GetAllDebugPacketsWithId(id) != null)
+ {
+ foreach (var debugPacket in GetAllDebugPacketsWithId(id))
+ {
+ if (callback != null)
+ {
+ debugPacket.Callbacks.Add(callback);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ /// <summary>
+ /// Checks all the Debug Packets to see if they have to be executed.
+ /// </summary>
+ private void CheckDebugPackets()
+ {
+ if (m_debugPackets == null)
+ {
+ return;
+ }
+
+ for (int i = 0; i < m_debugPackets.Count; i++)
+ {
+ DebugPacket packet = m_debugPackets[i];
+
+ if (packet != null && packet.Active)
+ {
+ packet.Update();
+
+ if (packet.Check)
+ {
+ switch (packet.ConditionEvaluation)
+ {
+ case ConditionEvaluation.All_conditions_must_be_met:
+ int count = 0;
+
+ foreach (var packetDebugCondition in packet.DebugConditions)
+ {
+ if (CheckIfConditionIsMet(packetDebugCondition))
+ {
+ count++;
+ }
+ }
+
+ if (count >= packet.DebugConditions.Count)
+ {
+ ExecuteOperationsInDebugPacket(packet);
+
+ if (packet.ExecuteOnce)
+ {
+ m_debugPackets[i] = null;
+ }
+ }
+
+ break;
+
+ case ConditionEvaluation.Only_one_condition_has_to_be_met:
+ foreach (var packetDebugCondition in packet.DebugConditions)
+ {
+ if (CheckIfConditionIsMet(packetDebugCondition))
+ {
+ ExecuteOperationsInDebugPacket(packet);
+
+ if (packet.ExecuteOnce)
+ {
+ m_debugPackets[i] = null;
+ }
+
+ break;
+ }
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ m_debugPackets.RemoveAll((packet) => packet == null);
+ }
+
+ /// <summary>
+ /// Returns true if a condition is met.
+ /// </summary>
+ /// <param name="debugCondition"></param>
+ /// <returns></returns>
+ private bool CheckIfConditionIsMet(DebugCondition debugCondition)
+ {
+ switch (debugCondition.Comparer)
+ {
+ case DebugComparer.Less_than:
+ return GetRequestedValueFromDebugVariable(debugCondition.Variable) < debugCondition.Value;
+ case DebugComparer.Equals_or_less_than:
+ return GetRequestedValueFromDebugVariable(debugCondition.Variable) <= debugCondition.Value;
+ case DebugComparer.Equals:
+ return Mathf.Approximately(GetRequestedValueFromDebugVariable(debugCondition.Variable), debugCondition.Value);
+ case DebugComparer.Equals_or_greater_than:
+ return GetRequestedValueFromDebugVariable(debugCondition.Variable) >= debugCondition.Value;
+ case DebugComparer.Greater_than:
+ return GetRequestedValueFromDebugVariable(debugCondition.Variable) > debugCondition.Value;
+
+ default:
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// Obtains the requested value from the specified variable.
+ /// </summary>
+ /// <param name="debugVariable"></param>
+ /// <returns></returns>
+ private float GetRequestedValueFromDebugVariable(DebugVariable debugVariable)
+ {
+ switch (debugVariable)
+ {
+ case DebugVariable.Fps:
+ return m_fpsMonitor != null ? m_fpsMonitor.CurrentFPS : 0;
+ case DebugVariable.Fps_Min:
+ return m_fpsMonitor != null ? m_fpsMonitor.OnePercentFPS : 0;
+ case DebugVariable.Fps_Max:
+ return m_fpsMonitor != null ? m_fpsMonitor.Zero1PercentFps : 0;
+ case DebugVariable.Fps_Avg:
+ return m_fpsMonitor != null ? m_fpsMonitor.AverageFPS : 0;
+
+ case DebugVariable.Ram_Allocated:
+ return m_ramMonitor != null ? m_ramMonitor.AllocatedRam : 0;
+ case DebugVariable.Ram_Reserved:
+ return m_ramMonitor != null ? m_ramMonitor.AllocatedRam : 0;
+ case DebugVariable.Ram_Mono:
+ return m_ramMonitor != null ? m_ramMonitor.AllocatedRam : 0;
+
+ case DebugVariable.Audio_DB:
+ return m_audioMonitor != null ? m_audioMonitor.MaxDB : 0;
+
+ default:
+ return 0;
+
+ }
+ }
+
+ /// <summary>
+ /// Executes the operations in the DebugPacket specified.
+ /// </summary>
+ /// <param name="debugPacket"></param>
+ private void ExecuteOperationsInDebugPacket(DebugPacket debugPacket)
+ {
+ if (debugPacket != null)
+ {
+ if (debugPacket.DebugBreak)
+ {
+ Debug.Break();
+ }
+
+ if (debugPacket.Message != "")
+ {
+ string message = "[Graphy] (" + System.DateTime.Now + "): " + debugPacket.Message;
+
+ switch (debugPacket.MessageType)
+ {
+ case MessageType.Log:
+ Debug.Log(message);
+ break;
+ case MessageType.Warning:
+ Debug.LogWarning(message);
+ break;
+ case MessageType.Error:
+ Debug.LogError(message);
+ break;
+ }
+ }
+
+ if (debugPacket.TakeScreenshot)
+ {
+ string path = debugPacket.ScreenshotFileName + "_" + System.DateTime.Now + ".png";
+ path = path.Replace("/", "-").Replace(" ", "_").Replace(":", "-");
+
+#if UNITY_2017_1_OR_NEWER
+ ScreenCapture.CaptureScreenshot(path);
+#else
+ Application.CaptureScreenshot(path);
+#endif
+ }
+
+ debugPacket.UnityEvents.Invoke();
+
+ foreach (var callback in debugPacket.Callbacks)
+ {
+ if (callback != null) callback();
+ }
+
+ debugPacket.Executed();
+ }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs.meta
new file mode 100644
index 0000000..ff48fb0
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyDebugger.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: cb8428f1f208dcc49b6c04976d44cbc9
+timeCreated: 1514034949
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs
new file mode 100644
index 0000000..4ecab51
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs
@@ -0,0 +1,848 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using System;
+using UnityEngine;
+using Tayx.Graphy.Audio;
+using Tayx.Graphy.Fps;
+using Tayx.Graphy.Ram;
+using Tayx.Graphy.Utils;
+using Tayx.Graphy.Advanced;
+using Tayx.Graphy.Utils.NumString;
+
+#if GRAPHY_NEW_INPUT
+using UnityEngine.InputSystem;
+#endif
+
+namespace Tayx.Graphy
+{
+ /// <summary>
+ /// Main class to access the Graphy API.
+ /// </summary>
+ public class GraphyManager : G_Singleton<GraphyManager>
+ {
+ protected GraphyManager () { }
+
+ //Enums
+ #region Enums -> Public
+
+ public enum Mode
+ {
+ FULL = 0,
+ LIGHT = 1
+ }
+
+ public enum ModuleType
+ {
+ FPS = 0,
+ RAM = 1,
+ AUDIO = 2,
+ ADVANCED = 3
+ }
+
+ public enum ModuleState
+ {
+ FULL = 0,
+ TEXT = 1,
+ BASIC = 2,
+ BACKGROUND = 3,
+ OFF = 4
+ }
+
+ public enum ModulePosition
+ {
+ TOP_RIGHT = 0,
+ TOP_LEFT = 1,
+ BOTTOM_RIGHT = 2,
+ BOTTOM_LEFT = 3,
+ FREE = 4
+ }
+
+ public enum LookForAudioListener
+ {
+ ALWAYS,
+ ON_SCENE_LOAD,
+ NEVER
+ }
+
+ public enum ModulePreset
+ {
+ FPS_BASIC = 0,
+ FPS_TEXT = 1,
+ FPS_FULL = 2,
+
+ FPS_TEXT_RAM_TEXT = 3,
+ FPS_FULL_RAM_TEXT = 4,
+ FPS_FULL_RAM_FULL = 5,
+
+ FPS_TEXT_RAM_TEXT_AUDIO_TEXT = 6,
+ FPS_FULL_RAM_TEXT_AUDIO_TEXT = 7,
+ FPS_FULL_RAM_FULL_AUDIO_TEXT = 8,
+ FPS_FULL_RAM_FULL_AUDIO_FULL = 9,
+
+ FPS_FULL_RAM_FULL_AUDIO_FULL_ADVANCED_FULL = 10,
+ FPS_BASIC_ADVANCED_FULL = 11
+ }
+
+ #endregion
+
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Mode m_graphyMode = Mode.FULL;
+
+ [SerializeField] private bool m_enableOnStartup = true;
+
+ [SerializeField] private bool m_keepAlive = true;
+
+ [SerializeField] private bool m_background = true;
+ [SerializeField] private Color m_backgroundColor = new Color(0, 0, 0, 0.3f);
+
+ [SerializeField] private bool m_enableHotkeys = true;
+
+#if GRAPHY_NEW_INPUT
+ [SerializeField] private Key m_toggleModeKeyCode = Key.G;
+#else
+ [SerializeField] private KeyCode m_toggleModeKeyCode = KeyCode.G;
+#endif
+ [SerializeField] private bool m_toggleModeCtrl = true;
+ [SerializeField] private bool m_toggleModeAlt = false;
+
+#if GRAPHY_NEW_INPUT
+ [SerializeField] private Key m_toggleActiveKeyCode = Key.H;
+#else
+ [SerializeField] private KeyCode m_toggleActiveKeyCode = KeyCode.H;
+#endif
+ [SerializeField] private bool m_toggleActiveCtrl = true;
+ [SerializeField] private bool m_toggleActiveAlt = false;
+
+ [SerializeField] private ModulePosition m_graphModulePosition = ModulePosition.TOP_RIGHT;
+
+ // Fps ---------------------------------------------------------------------------
+
+ [SerializeField] private ModuleState m_fpsModuleState = ModuleState.FULL;
+
+ [SerializeField] private Color m_goodFpsColor = new Color32(118, 212, 58, 255);
+ [SerializeField] private int m_goodFpsThreshold = 60;
+
+ [SerializeField] private Color m_cautionFpsColor = new Color32(243, 232, 0, 255);
+ [SerializeField] private int m_cautionFpsThreshold = 30;
+
+ [SerializeField] private Color m_criticalFpsColor = new Color32(220, 41, 30, 255);
+
+ [Range(10, 300)]
+ [SerializeField] private int m_fpsGraphResolution = 150;
+
+ [Range(1, 200)]
+ [SerializeField] private int m_fpsTextUpdateRate = 3; // 3 updates per sec.
+
+ // Ram ---------------------------------------------------------------------------
+
+ [SerializeField] private ModuleState m_ramModuleState = ModuleState.FULL;
+
+ [SerializeField] private Color m_allocatedRamColor = new Color32(255, 190, 60, 255);
+ [SerializeField] private Color m_reservedRamColor = new Color32(205, 84, 229, 255);
+ [SerializeField] private Color m_monoRamColor = new Color(0.3f, 0.65f, 1f, 1);
+
+ [Range(10, 300)]
+ [SerializeField] private int m_ramGraphResolution = 150;
+
+
+ [Range(1, 200)]
+ [SerializeField] private int m_ramTextUpdateRate = 3; // 3 updates per sec.
+
+ // Audio -------------------------------------------------------------------------
+
+ [SerializeField] private ModuleState m_audioModuleState = ModuleState.FULL;
+
+ [SerializeField] private LookForAudioListener m_findAudioListenerInCameraIfNull = LookForAudioListener.ON_SCENE_LOAD;
+
+ [SerializeField] private AudioListener m_audioListener = null;
+
+ [SerializeField] private Color m_audioGraphColor = Color.white;
+
+ [Range(10, 300)]
+ [SerializeField] private int m_audioGraphResolution = 81;
+
+ [Range(1, 200)]
+ [SerializeField] private int m_audioTextUpdateRate = 3; // 3 updates per sec.
+
+ [SerializeField] private FFTWindow m_FFTWindow = FFTWindow.Blackman;
+
+ [Tooltip("Must be a power of 2 and between 64-8192")]
+ [SerializeField] private int m_spectrumSize = 512;
+
+ // Advanced ----------------------------------------------------------------------
+
+ [SerializeField] private ModulePosition m_advancedModulePosition = ModulePosition.BOTTOM_LEFT;
+
+ [SerializeField] private ModuleState m_advancedModuleState = ModuleState.FULL;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private bool m_initialized = false;
+ private bool m_active = true;
+ private bool m_focused = true;
+
+ private G_FpsManager m_fpsManager = null;
+ private G_RamManager m_ramManager = null;
+ private G_AudioManager m_audioManager = null;
+ private G_AdvancedData m_advancedData = null;
+
+ private G_FpsMonitor m_fpsMonitor = null;
+ private G_RamMonitor m_ramMonitor = null;
+ private G_AudioMonitor m_audioMonitor = null;
+
+ private ModulePreset m_modulePresetState = ModulePreset.FPS_BASIC_ADVANCED_FULL;
+
+ #endregion
+
+ //TODO: Maybe sort these into Get and GetSet sections.
+ #region Properties -> Public
+
+ public Mode GraphyMode { get { return m_graphyMode; }
+ set { m_graphyMode = value; UpdateAllParameters(); } }
+
+ public bool EnableOnStartup { get { return m_enableOnStartup; } }
+
+ public bool KeepAlive { get { return m_keepAlive; } }
+
+ public bool Background { get { return m_background; }
+ set { m_background = value; UpdateAllParameters(); } }
+
+ public Color BackgroundColor { get { return m_backgroundColor; }
+ set { m_backgroundColor = value; UpdateAllParameters(); } }
+
+ public ModulePosition GraphModulePosition
+ {
+ get { return m_graphModulePosition; }
+ set
+ {
+ m_graphModulePosition = value;
+ m_fpsManager .SetPosition(m_graphModulePosition);
+ m_ramManager .SetPosition(m_graphModulePosition);
+ m_audioManager .SetPosition(m_graphModulePosition);
+ }
+ }
+
+ // Fps ---------------------------------------------------------------------------
+
+ // Setters & Getters
+
+ public ModuleState FpsModuleState { get { return m_fpsModuleState; }
+ set { m_fpsModuleState = value; m_fpsManager.SetState(m_fpsModuleState); } }
+
+ public Color GoodFPSColor { get { return m_goodFpsColor; }
+ set { m_goodFpsColor = value; m_fpsManager.UpdateParameters(); } }
+ public Color CautionFPSColor { get { return m_cautionFpsColor; }
+ set { m_cautionFpsColor = value; m_fpsManager.UpdateParameters(); } }
+ public Color CriticalFPSColor { get { return m_criticalFpsColor; }
+ set { m_criticalFpsColor = value; m_fpsManager.UpdateParameters(); } }
+
+ public int GoodFPSThreshold { get { return m_goodFpsThreshold; }
+ set { m_goodFpsThreshold = value; m_fpsManager.UpdateParameters(); } }
+ public int CautionFPSThreshold { get { return m_cautionFpsThreshold; }
+ set { m_cautionFpsThreshold = value; m_fpsManager.UpdateParameters(); } }
+
+ public int FpsGraphResolution { get { return m_fpsGraphResolution; }
+ set { m_fpsGraphResolution = value; m_fpsManager.UpdateParameters(); } }
+
+ public int FpsTextUpdateRate { get { return m_fpsTextUpdateRate; }
+ set { m_fpsTextUpdateRate = value; m_fpsManager.UpdateParameters(); } }
+
+ // Getters
+
+ public float CurrentFPS { get { return m_fpsMonitor.CurrentFPS; } }
+ public float AverageFPS { get { return m_fpsMonitor.AverageFPS; } }
+ public float MinFPS { get { return m_fpsMonitor.OnePercentFPS; } }
+ public float MaxFPS { get { return m_fpsMonitor.Zero1PercentFps; } }
+
+ // Ram ---------------------------------------------------------------------------
+
+ // Setters & Getters
+
+ public ModuleState RamModuleState { get { return m_ramModuleState; }
+ set { m_ramModuleState = value; m_ramManager.SetState(m_ramModuleState); } }
+
+
+ public Color AllocatedRamColor { get { return m_allocatedRamColor; }
+ set { m_allocatedRamColor = value; m_ramManager.UpdateParameters(); } }
+ public Color ReservedRamColor { get { return m_reservedRamColor; }
+ set { m_reservedRamColor = value; m_ramManager.UpdateParameters(); } }
+ public Color MonoRamColor { get { return m_monoRamColor; }
+ set { m_monoRamColor = value; m_ramManager.UpdateParameters(); } }
+
+ public int RamGraphResolution { get { return m_ramGraphResolution; }
+ set { m_ramGraphResolution = value; m_ramManager.UpdateParameters(); } }
+
+ public int RamTextUpdateRate { get { return m_ramTextUpdateRate; }
+ set { m_ramTextUpdateRate = value; m_ramManager.UpdateParameters(); } }
+
+ // Getters
+
+ public float AllocatedRam { get { return m_ramMonitor.AllocatedRam; } }
+ public float ReservedRam { get { return m_ramMonitor.ReservedRam; } }
+ public float MonoRam { get { return m_ramMonitor.MonoRam; } }
+
+ // Audio -------------------------------------------------------------------------
+
+ // Setters & Getters
+
+ public ModuleState AudioModuleState { get { return m_audioModuleState; }
+ set { m_audioModuleState = value; m_audioManager.SetState(m_audioModuleState); } }
+
+ public AudioListener AudioListener { get { return m_audioListener; }
+ set { m_audioListener = value; m_audioManager.UpdateParameters(); } }
+
+ public LookForAudioListener
+ FindAudioListenerInCameraIfNull { get { return m_findAudioListenerInCameraIfNull; }
+ set { m_findAudioListenerInCameraIfNull = value; m_audioManager.UpdateParameters(); } }
+
+ public Color AudioGraphColor { get { return m_audioGraphColor; }
+ set { m_audioGraphColor = value; m_audioManager.UpdateParameters(); } }
+
+ public int AudioGraphResolution { get { return m_audioGraphResolution; }
+ set { m_audioGraphResolution = value; m_audioManager.UpdateParameters(); } }
+
+ public int AudioTextUpdateRate { get { return m_audioTextUpdateRate; }
+ set { m_audioTextUpdateRate = value; m_audioManager.UpdateParameters(); } }
+
+ public FFTWindow FftWindow { get { return m_FFTWindow; }
+ set { m_FFTWindow = value; m_audioManager.UpdateParameters(); } }
+
+ public int SpectrumSize { get { return m_spectrumSize; }
+ set { m_spectrumSize = value; m_audioManager.UpdateParameters(); } }
+
+ // Getters
+
+ /// <summary>
+ /// Current audio spectrum from the specified AudioListener.
+ /// </summary>
+ public float[] Spectrum { get { return m_audioMonitor.Spectrum; } }
+
+ /// <summary>
+ /// Maximum DB registered in the current spectrum.
+ /// </summary>
+ public float MaxDB { get { return m_audioMonitor.MaxDB; } }
+
+
+ // Advanced ---------------------------------------------------------------------
+
+ // Setters & Getters
+
+ public ModuleState AdvancedModuleState { get { return m_advancedModuleState; }
+ set { m_advancedModuleState = value; m_advancedData.SetState(m_advancedModuleState); } }
+
+ public ModulePosition AdvancedModulePosition { get { return m_advancedModulePosition; }
+ set { m_advancedModulePosition = value; m_advancedData.SetPosition(m_advancedModulePosition); } }
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Start()
+ {
+ Init();
+ }
+
+ private void OnDestroy()
+ {
+ G_IntString.Dispose();
+ G_FloatString.Dispose();
+ }
+
+ private void Update()
+ {
+ if (m_focused && m_enableHotkeys)
+ {
+ CheckForHotkeyPresses();
+ }
+ }
+
+ private void OnApplicationFocus(bool isFocused)
+ {
+ m_focused = isFocused;
+
+ if (m_initialized && isFocused)
+ {
+ RefreshAllParameters();
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void SetModulePosition(ModuleType moduleType, ModulePosition modulePosition)
+ {
+ switch (moduleType)
+ {
+ case ModuleType.FPS:
+ case ModuleType.RAM:
+ case ModuleType.AUDIO:
+ m_graphModulePosition = modulePosition;
+
+ m_ramManager.SetPosition(modulePosition);
+ m_fpsManager.SetPosition(modulePosition);
+ m_audioManager.SetPosition(modulePosition);
+ break;
+
+ case ModuleType.ADVANCED:
+ m_advancedData.SetPosition(modulePosition);
+ break;
+ }
+ }
+
+ public void SetModuleMode(ModuleType moduleType, ModuleState moduleState)
+ {
+ switch (moduleType)
+ {
+ case ModuleType.FPS:
+ m_fpsManager.SetState(moduleState);
+ break;
+
+ case ModuleType.RAM:
+ m_ramManager.SetState(moduleState);
+ break;
+
+ case ModuleType.AUDIO:
+ m_audioManager.SetState(moduleState);
+ break;
+
+ case ModuleType.ADVANCED:
+ m_advancedData.SetState(moduleState);
+ break;
+ }
+ }
+
+ public void ToggleModes()
+ {
+ if ((int)m_modulePresetState >= Enum.GetNames(typeof(ModulePreset)).Length - 1)
+ {
+ m_modulePresetState = 0;
+ }
+ else
+ {
+ m_modulePresetState++;
+ }
+
+ SetPreset(m_modulePresetState);
+ }
+
+ public void SetPreset(ModulePreset modulePreset)
+ {
+ m_modulePresetState = modulePreset;
+
+ switch (m_modulePresetState)
+ {
+ case ModulePreset.FPS_BASIC:
+ m_fpsManager.SetState(ModuleState.BASIC);
+ m_ramManager.SetState(ModuleState.OFF);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_TEXT:
+ m_fpsManager.SetState(ModuleState.TEXT);
+ m_ramManager.SetState(ModuleState.OFF);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.OFF);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_TEXT_RAM_TEXT:
+ m_fpsManager.SetState(ModuleState.TEXT);
+ m_ramManager.SetState(ModuleState.TEXT);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_TEXT:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.TEXT);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_FULL:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.FULL);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_TEXT_RAM_TEXT_AUDIO_TEXT:
+ m_fpsManager.SetState(ModuleState.TEXT);
+ m_ramManager.SetState(ModuleState.TEXT);
+ m_audioManager.SetState(ModuleState.TEXT);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_TEXT_AUDIO_TEXT:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.TEXT);
+ m_audioManager.SetState(ModuleState.TEXT);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_FULL_AUDIO_TEXT:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.FULL);
+ m_audioManager.SetState(ModuleState.TEXT);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_FULL_AUDIO_FULL:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.FULL);
+ m_audioManager.SetState(ModuleState.FULL);
+ m_advancedData.SetState(ModuleState.OFF);
+ break;
+
+ case ModulePreset.FPS_FULL_RAM_FULL_AUDIO_FULL_ADVANCED_FULL:
+ m_fpsManager.SetState(ModuleState.FULL);
+ m_ramManager.SetState(ModuleState.FULL);
+ m_audioManager.SetState(ModuleState.FULL);
+ m_advancedData.SetState(ModuleState.FULL);
+ break;
+
+ case ModulePreset.FPS_BASIC_ADVANCED_FULL:
+ m_fpsManager.SetState(ModuleState.BASIC);
+ m_ramManager.SetState(ModuleState.OFF);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.FULL);
+ break;
+
+ default:
+ Debug.LogWarning( "[GraphyManager]::SetPreset - Tried to set a preset that is not supported." );
+ break;
+ }
+ }
+
+ public void ToggleActive()
+ {
+ if (!m_active)
+ {
+ Enable();
+ }
+ else
+ {
+ Disable();
+ }
+ }
+
+ public void Enable()
+ {
+ if (!m_active)
+ {
+ if (m_initialized)
+ {
+ m_fpsManager.RestorePreviousState();
+ m_ramManager.RestorePreviousState();
+ m_audioManager.RestorePreviousState();
+ m_advancedData.RestorePreviousState();
+
+ m_active = true;
+ }
+ else
+ {
+ Init();
+ }
+ }
+ }
+
+ public void Disable()
+ {
+ if (m_active)
+ {
+ m_fpsManager.SetState(ModuleState.OFF);
+ m_ramManager.SetState(ModuleState.OFF);
+ m_audioManager.SetState(ModuleState.OFF);
+ m_advancedData.SetState(ModuleState.OFF);
+
+ m_active = false;
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ if (m_keepAlive)
+ {
+ DontDestroyOnLoad(transform.root.gameObject);
+ }
+
+ m_fpsMonitor = GetComponentInChildren(typeof(G_FpsMonitor), true) as G_FpsMonitor;
+ m_ramMonitor = GetComponentInChildren(typeof(G_RamMonitor), true) as G_RamMonitor;
+ m_audioMonitor = GetComponentInChildren(typeof(G_AudioMonitor), true) as G_AudioMonitor;
+
+ m_fpsManager = GetComponentInChildren(typeof(G_FpsManager), true) as G_FpsManager;
+ m_ramManager = GetComponentInChildren(typeof(G_RamManager), true) as G_RamManager;
+ m_audioManager = GetComponentInChildren(typeof(G_AudioManager), true) as G_AudioManager;
+ m_advancedData = GetComponentInChildren(typeof(G_AdvancedData), true) as G_AdvancedData;
+
+ m_fpsManager .SetPosition(m_graphModulePosition);
+ m_ramManager .SetPosition(m_graphModulePosition);
+ m_audioManager .SetPosition(m_graphModulePosition);
+ m_advancedData .SetPosition(m_advancedModulePosition);
+
+ m_fpsManager .SetState (m_fpsModuleState);
+ m_ramManager .SetState (m_ramModuleState);
+ m_audioManager .SetState (m_audioModuleState);
+ m_advancedData .SetState (m_advancedModuleState);
+
+ if (!m_enableOnStartup)
+ {
+ ToggleActive();
+
+ // We need to enable this on startup because we disable it in GraphyManagerEditor
+ GetComponent<Canvas>().enabled = true;
+ }
+
+ m_initialized = true;
+ }
+
+ private void CheckForHotkeyPresses()
+ {
+#if GRAPHY_NEW_INPUT
+ // Toggle Mode ---------------------------------------
+ if (m_toggleModeCtrl && m_toggleModeAlt)
+ {
+ if (CheckFor3KeyPress(m_toggleModeKeyCode, Key.LeftCtrl, Key.LeftAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, Key.RightCtrl, Key.LeftAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, Key.RightCtrl, Key.RightAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, Key.LeftCtrl, Key.RightAlt))
+ {
+ ToggleModes();
+ }
+ }
+ else if (m_toggleModeCtrl)
+ {
+ if (CheckFor2KeyPress(m_toggleModeKeyCode, Key.LeftCtrl)
+ || CheckFor2KeyPress(m_toggleModeKeyCode, Key.RightCtrl))
+ {
+ ToggleModes();
+ }
+ }
+ else if (m_toggleModeAlt)
+ {
+ if (CheckFor2KeyPress(m_toggleModeKeyCode, Key.LeftAlt)
+ || CheckFor2KeyPress(m_toggleModeKeyCode, Key.RightAlt))
+ {
+ ToggleModes();
+ }
+ }
+ else
+ {
+ if (CheckFor1KeyPress(m_toggleModeKeyCode))
+ {
+ ToggleModes();
+ }
+ }
+
+ // Toggle Active -------------------------------------
+ if (m_toggleActiveCtrl && m_toggleActiveAlt)
+ {
+ if (CheckFor3KeyPress(m_toggleActiveKeyCode, Key.LeftCtrl, Key.LeftAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, Key.RightCtrl, Key.LeftAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, Key.RightCtrl, Key.RightAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, Key.LeftCtrl, Key.RightAlt))
+ {
+ ToggleActive();
+ }
+ }
+
+ else if (m_toggleActiveCtrl)
+ {
+ if (CheckFor2KeyPress(m_toggleActiveKeyCode, Key.LeftCtrl)
+ || CheckFor2KeyPress(m_toggleActiveKeyCode, Key.RightCtrl))
+ {
+ ToggleActive();
+ }
+ }
+ else if (m_toggleActiveAlt)
+ {
+ if (CheckFor2KeyPress(m_toggleActiveKeyCode, Key.LeftAlt)
+ || CheckFor2KeyPress(m_toggleActiveKeyCode, Key.RightAlt))
+ {
+ ToggleActive();
+ }
+ }
+ else
+ {
+ if (CheckFor1KeyPress(m_toggleActiveKeyCode))
+ {
+ ToggleActive();
+ }
+ }
+#else
+ // Toggle Mode ---------------------------------------
+ if (m_toggleModeCtrl && m_toggleModeAlt)
+ {
+ if (CheckFor3KeyPress(m_toggleModeKeyCode, KeyCode.LeftControl, KeyCode.LeftAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, KeyCode.RightControl, KeyCode.LeftAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, KeyCode.RightControl, KeyCode.RightAlt)
+ || CheckFor3KeyPress(m_toggleModeKeyCode, KeyCode.LeftControl, KeyCode.RightAlt))
+ {
+ ToggleModes();
+ }
+ }
+ else if (m_toggleModeCtrl)
+ {
+ if ( CheckFor2KeyPress(m_toggleModeKeyCode, KeyCode.LeftControl)
+ || CheckFor2KeyPress(m_toggleModeKeyCode, KeyCode.RightControl))
+ {
+ ToggleModes();
+ }
+ }
+ else if (m_toggleModeAlt)
+ {
+ if ( CheckFor2KeyPress(m_toggleModeKeyCode, KeyCode.LeftAlt)
+ || CheckFor2KeyPress(m_toggleModeKeyCode, KeyCode.RightAlt))
+ {
+ ToggleModes();
+ }
+ }
+ else
+ {
+ if (CheckFor1KeyPress(m_toggleModeKeyCode))
+ {
+ ToggleModes();
+ }
+ }
+
+ // Toggle Active -------------------------------------
+ if (m_toggleActiveCtrl && m_toggleActiveAlt)
+ {
+ if ( CheckFor3KeyPress(m_toggleActiveKeyCode, KeyCode.LeftControl, KeyCode.LeftAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, KeyCode.RightControl, KeyCode.LeftAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, KeyCode.RightControl, KeyCode.RightAlt)
+ || CheckFor3KeyPress(m_toggleActiveKeyCode, KeyCode.LeftControl, KeyCode.RightAlt))
+ {
+ ToggleActive();
+ }
+ }
+
+ else if (m_toggleActiveCtrl)
+ {
+ if ( CheckFor2KeyPress(m_toggleActiveKeyCode, KeyCode.LeftControl)
+ || CheckFor2KeyPress(m_toggleActiveKeyCode, KeyCode.RightControl))
+ {
+ ToggleActive();
+ }
+ }
+ else if (m_toggleActiveAlt)
+ {
+ if ( CheckFor2KeyPress(m_toggleActiveKeyCode, KeyCode.LeftAlt)
+ || CheckFor2KeyPress(m_toggleActiveKeyCode, KeyCode.RightAlt))
+ {
+ ToggleActive();
+ }
+ }
+ else
+ {
+ if (CheckFor1KeyPress(m_toggleActiveKeyCode))
+ {
+ ToggleActive();
+ }
+ }
+#endif
+ }
+
+#if GRAPHY_NEW_INPUT
+ private bool CheckFor1KeyPress(Key key)
+ {
+ Keyboard currentKeyboard = Keyboard.current;
+
+ if (currentKeyboard != null)
+ {
+ return Keyboard.current[key].wasPressedThisFrame;
+ }
+
+ return false;
+ }
+
+ private bool CheckFor2KeyPress(Key key1, Key key2)
+ {
+ Keyboard currentKeyboard = Keyboard.current;
+
+ if (currentKeyboard != null)
+ {
+ return Keyboard.current[key1].wasPressedThisFrame && Keyboard.current[key2].isPressed
+ || Keyboard.current[key2].wasPressedThisFrame && Keyboard.current[key1].isPressed;
+ }
+
+ return false;
+ }
+
+ private bool CheckFor3KeyPress(Key key1, Key key2, Key key3)
+ {
+ Keyboard currentKeyboard = Keyboard.current;
+
+ if (currentKeyboard != null)
+ {
+ return Keyboard.current[key1].wasPressedThisFrame && Keyboard.current[key2].isPressed && Keyboard.current[key3].isPressed
+ || Keyboard.current[key2].wasPressedThisFrame && Keyboard.current[key1].isPressed && Keyboard.current[key3].isPressed
+ || Keyboard.current[key3].wasPressedThisFrame && Keyboard.current[key1].isPressed && Keyboard.current[key2].isPressed;
+ }
+
+ return false;
+ }
+#else
+ private bool CheckFor1KeyPress(KeyCode key)
+ {
+ return Input.GetKeyDown(key);
+ }
+
+ private bool CheckFor2KeyPress(KeyCode key1, KeyCode key2)
+ {
+ return Input.GetKeyDown(key1) && Input.GetKey(key2)
+ || Input.GetKeyDown(key2) && Input.GetKey(key1);
+ }
+
+ private bool CheckFor3KeyPress(KeyCode key1, KeyCode key2, KeyCode key3)
+ {
+ return Input.GetKeyDown(key1) && Input.GetKey(key2) && Input.GetKey(key3)
+ || Input.GetKeyDown(key2) && Input.GetKey(key1) && Input.GetKey(key3)
+ || Input.GetKeyDown(key3) && Input.GetKey(key1) && Input.GetKey(key2);
+ }
+#endif
+ private void UpdateAllParameters()
+ {
+ m_fpsManager .UpdateParameters();
+ m_ramManager .UpdateParameters();
+ m_audioManager .UpdateParameters();
+ m_advancedData .UpdateParameters();
+ }
+
+ private void RefreshAllParameters()
+ {
+ m_fpsManager .RefreshParameters();
+ m_ramManager .RefreshParameters();
+ m_audioManager .RefreshParameters();
+ m_advancedData .RefreshParameters();
+ }
+
+#endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs.meta
new file mode 100644
index 0000000..9023cc4
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/GraphyManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c80e6d63202cef44ca3ffdaccec693be
+timeCreated: 1512508924
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram.meta
new file mode 100644
index 0000000..7c2d105
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 839df5cf44c5c6f43b1a846e73f3e498
+folderAsset: yes
+timeCreated: 1513377097
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs
new file mode 100644
index 0000000..d58d032
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs
@@ -0,0 +1,271 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using Tayx.Graphy.Graph;
+using UnityEngine;
+using UnityEngine.UI;
+
+#if UNITY_5_5_OR_NEWER
+using UnityEngine.Profiling;
+#endif
+
+namespace Tayx.Graphy.Ram
+{
+ public class G_RamGraph : G_Graph
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Image m_imageAllocated = null;
+ [SerializeField] private Image m_imageReserved = null;
+ [SerializeField] private Image m_imageMono = null;
+
+ [SerializeField] private Shader ShaderFull = null;
+ [SerializeField] private Shader ShaderLight = null;
+
+ [SerializeField] private bool m_isInitialized = false;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_RamMonitor m_ramMonitor = null;
+
+ private int m_resolution = 150;
+
+ private G_GraphShader m_shaderGraphAllocated = null;
+ private G_GraphShader m_shaderGraphReserved = null;
+ private G_GraphShader m_shaderGraphMono = null;
+
+ private float[] m_allocatedArray;
+ private float[] m_reservedArray;
+ private float[] m_monoArray;
+
+ private float m_highestMemory = 0;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Update()
+ {
+ UpdateGraph();
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ if ( m_shaderGraphAllocated == null
+ || m_shaderGraphReserved == null
+ || m_shaderGraphMono == null)
+ {
+ /*
+ * Note: this is fine, since we don't much
+ * care what granularity we use if the graph
+ * has not been initialized, i.e. it's disabled.
+ * There is no chance that for some reason
+ * parameters will not stay up to date if
+ * at some point in the future the graph is enabled:
+ * at the end of Init(), UpdateParameters() is
+ * called again.
+ */
+ return;
+ }
+
+ switch (m_graphyManager.GraphyMode)
+ {
+ case GraphyManager.Mode.FULL:
+ m_shaderGraphAllocated .ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+ m_shaderGraphReserved .ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+ m_shaderGraphMono .ArrayMaxSize = G_GraphShader.ArrayMaxSizeFull;
+
+ m_shaderGraphAllocated .Image.material = new Material(ShaderFull);
+ m_shaderGraphReserved .Image.material = new Material(ShaderFull);
+ m_shaderGraphMono .Image.material = new Material(ShaderFull);
+ break;
+
+ case GraphyManager.Mode.LIGHT:
+ m_shaderGraphAllocated .ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+ m_shaderGraphReserved .ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+ m_shaderGraphMono .ArrayMaxSize = G_GraphShader.ArrayMaxSizeLight;
+
+ m_shaderGraphAllocated .Image.material = new Material(ShaderLight);
+ m_shaderGraphReserved .Image.material = new Material(ShaderLight);
+ m_shaderGraphMono .Image.material = new Material(ShaderLight);
+ break;
+ }
+
+ m_shaderGraphAllocated.InitializeShader();
+ m_shaderGraphReserved.InitializeShader();
+ m_shaderGraphMono.InitializeShader();
+
+ m_resolution = m_graphyManager.RamGraphResolution;
+
+ CreatePoints();
+ }
+
+ #endregion
+
+ #region Methods -> Protected Override
+
+ protected override void UpdateGraph()
+ {
+ // Since we no longer initialize by default OnEnable(),
+ // we need to check here, and Init() if needed
+ if (!m_isInitialized)
+ {
+ Init();
+ }
+
+ float allocatedMemory = m_ramMonitor.AllocatedRam;
+ float reservedMemory = m_ramMonitor.ReservedRam;
+ float monoMemory = m_ramMonitor.MonoRam;
+
+ m_highestMemory = 0;
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ if (i >= m_resolution - 1)
+ {
+ m_allocatedArray[i] = allocatedMemory;
+ m_reservedArray[i] = reservedMemory;
+ m_monoArray[i] = monoMemory;
+ }
+ else
+ {
+ m_allocatedArray[i] = m_allocatedArray[i + 1];
+ m_reservedArray[i] = m_reservedArray[i + 1];
+ m_monoArray[i] = m_monoArray[i + 1];
+ }
+
+ if (m_highestMemory < m_reservedArray[i])
+ {
+ m_highestMemory = m_reservedArray[i];
+ }
+ }
+
+ for (int i = 0; i <= m_resolution - 1; i++)
+ {
+ m_shaderGraphAllocated.ShaderArrayValues[i] = m_allocatedArray[i] / m_highestMemory;
+
+ m_shaderGraphReserved.ShaderArrayValues[i] = m_reservedArray[i] / m_highestMemory;
+
+ m_shaderGraphMono.ShaderArrayValues[i] = m_monoArray[i] / m_highestMemory;
+ }
+
+ m_shaderGraphAllocated.UpdatePoints();
+ m_shaderGraphReserved.UpdatePoints();
+ m_shaderGraphMono.UpdatePoints();
+ }
+
+ protected override void CreatePoints()
+ {
+ if (m_shaderGraphAllocated.ShaderArrayValues == null || m_shaderGraphAllocated.ShaderArrayValues.Length != m_resolution)
+ {
+ m_allocatedArray = new float[m_resolution];
+ m_reservedArray = new float[m_resolution];
+ m_monoArray = new float[m_resolution];
+
+ m_shaderGraphAllocated.ShaderArrayValues = new float[m_resolution];
+ m_shaderGraphReserved.ShaderArrayValues = new float[m_resolution];
+ m_shaderGraphMono.ShaderArrayValues = new float[m_resolution];
+ }
+
+ for (int i = 0; i < m_resolution; i++)
+ {
+ m_shaderGraphAllocated.ShaderArrayValues[i] = 0;
+ m_shaderGraphReserved.ShaderArrayValues[i] = 0;
+ m_shaderGraphMono.ShaderArrayValues[i] = 0;
+ }
+
+ // Initialize the material values
+
+ // Colors
+
+ m_shaderGraphAllocated.GoodColor = m_graphyManager.AllocatedRamColor;
+ m_shaderGraphAllocated.CautionColor = m_graphyManager.AllocatedRamColor;
+ m_shaderGraphAllocated.CriticalColor = m_graphyManager.AllocatedRamColor;
+
+ m_shaderGraphAllocated.UpdateColors();
+
+ m_shaderGraphReserved.GoodColor = m_graphyManager.ReservedRamColor;
+ m_shaderGraphReserved.CautionColor = m_graphyManager.ReservedRamColor;
+ m_shaderGraphReserved.CriticalColor = m_graphyManager.ReservedRamColor;
+
+ m_shaderGraphReserved.UpdateColors();
+
+ m_shaderGraphMono.GoodColor = m_graphyManager.MonoRamColor;
+ m_shaderGraphMono.CautionColor = m_graphyManager.MonoRamColor;
+ m_shaderGraphMono.CriticalColor = m_graphyManager.MonoRamColor;
+
+ m_shaderGraphMono.UpdateColors();
+
+ // Thresholds
+
+ m_shaderGraphAllocated.GoodThreshold = 0;
+ m_shaderGraphAllocated.CautionThreshold = 0;
+ m_shaderGraphAllocated.UpdateThresholds();
+
+ m_shaderGraphReserved.GoodThreshold = 0;
+ m_shaderGraphReserved.CautionThreshold = 0;
+ m_shaderGraphReserved.UpdateThresholds();
+
+ m_shaderGraphMono.GoodThreshold = 0;
+ m_shaderGraphMono.CautionThreshold = 0;
+ m_shaderGraphMono.UpdateThresholds();
+
+ m_shaderGraphAllocated.UpdateArray();
+ m_shaderGraphReserved.UpdateArray();
+ m_shaderGraphMono.UpdateArray();
+
+ // Average
+
+ m_shaderGraphAllocated.Average = 0;
+ m_shaderGraphReserved.Average = 0;
+ m_shaderGraphMono.Average = 0;
+
+ m_shaderGraphAllocated.UpdateAverage();
+ m_shaderGraphReserved.UpdateAverage();
+ m_shaderGraphMono.UpdateAverage();
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_ramMonitor = GetComponent<G_RamMonitor>();
+
+ m_shaderGraphAllocated = new G_GraphShader();
+ m_shaderGraphReserved = new G_GraphShader();
+ m_shaderGraphMono = new G_GraphShader();
+
+ m_shaderGraphAllocated .Image = m_imageAllocated;
+ m_shaderGraphReserved .Image = m_imageReserved;
+ m_shaderGraphMono .Image = m_imageMono;
+
+ UpdateParameters();
+
+ m_isInitialized = true;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs.meta
new file mode 100644
index 0000000..fa2cde1
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamGraph.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a9c49f1e95f2dab428b3a0ed56328a1c
+timeCreated: 1512484813
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs
new file mode 100644
index 0000000..45cc47f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs
@@ -0,0 +1,237 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 03-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using System.Collections.Generic;
+using Tayx.Graphy.UI;
+using Tayx.Graphy.Utils;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Ram
+{
+ public class G_RamManager : MonoBehaviour, IMovable, IModifiableState
+ {
+ /* ----- TODO: ----------------------------
+ * Add summaries to the variables.
+ * Add summaries to the functions.
+ * Check if we should add a "RequireComponent" for "RectTransform".
+ * Check if we should add a "RequireComponent" for "RamGraph".
+ * Check why this manager doesnt use RamMonitor, as all the other managers have a monitor script.
+ * Check if we should add a "RequireComponent" for "RamText".
+ * --------------------------------------*/
+
+ #region Variables -> Serialized Private
+
+ [SerializeField] private GameObject m_ramGraphGameObject = null;
+
+ [SerializeField] private List<Image> m_backgroundImages = new List<Image>();
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_RamGraph m_ramGraph = null;
+ private G_RamText m_ramText = null;
+
+ private RectTransform m_rectTransform = null;
+
+ private List<GameObject> m_childrenGameObjects = new List<GameObject>();
+
+ private GraphyManager.ModuleState m_previousModuleState = GraphyManager.ModuleState.FULL;
+ private GraphyManager.ModuleState m_currentModuleState = GraphyManager.ModuleState.FULL;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Start()
+ {
+ UpdateParameters();
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void SetPosition(GraphyManager.ModulePosition newModulePosition)
+ {
+ float xSideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.x);
+ float ySideOffset = Mathf.Abs(m_rectTransform.anchoredPosition.y);
+
+ switch (newModulePosition)
+ {
+ case GraphyManager.ModulePosition.TOP_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.up;
+ m_rectTransform.anchorMin = Vector2.up;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.TOP_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.one;
+ m_rectTransform.anchorMin = Vector2.one;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, -ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_LEFT:
+
+ m_rectTransform.anchorMax = Vector2.zero;
+ m_rectTransform.anchorMin = Vector2.zero;
+ m_rectTransform.anchoredPosition = new Vector2(xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.BOTTOM_RIGHT:
+
+ m_rectTransform.anchorMax = Vector2.right;
+ m_rectTransform.anchorMin = Vector2.right;
+ m_rectTransform.anchoredPosition = new Vector2(-xSideOffset, ySideOffset);
+
+ break;
+
+ case GraphyManager.ModulePosition.FREE:
+ break;
+ }
+ }
+
+ public void SetState(GraphyManager.ModuleState state, bool silentUpdate = false)
+ {
+ if (!silentUpdate)
+ {
+ m_previousModuleState = m_currentModuleState;
+ }
+
+ m_currentModuleState = state;
+
+ switch (state)
+ {
+ case GraphyManager.ModuleState.FULL:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(true);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(0);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.TEXT:
+ case GraphyManager.ModuleState.BASIC:
+ gameObject.SetActive(true);
+ m_childrenGameObjects.SetAllActive(true);
+ SetGraphActive(false);
+
+ if (m_graphyManager.Background)
+ {
+ m_backgroundImages.SetOneActive(1);
+ }
+ else
+ {
+ m_backgroundImages.SetAllActive(false);
+ }
+
+ break;
+
+ case GraphyManager.ModuleState.BACKGROUND:
+ gameObject.SetActive(true);
+ SetGraphActive(false);
+
+ m_childrenGameObjects.SetAllActive(false);
+ m_backgroundImages.SetAllActive(false);
+
+ break;
+
+ case GraphyManager.ModuleState.OFF:
+ gameObject.SetActive(false);
+ break;
+ }
+ }
+
+ public void RestorePreviousState()
+ {
+ SetState(m_previousModuleState);
+ }
+
+ public void UpdateParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_ramGraph .UpdateParameters();
+ m_ramText .UpdateParameters();
+
+ SetState(m_graphyManager.RamModuleState);
+ }
+
+ public void RefreshParameters()
+ {
+ foreach (var image in m_backgroundImages)
+ {
+ image.color = m_graphyManager.BackgroundColor;
+ }
+
+ m_ramGraph .UpdateParameters();
+ m_ramText .UpdateParameters();
+
+ SetState(m_currentModuleState, true);
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_ramGraph = GetComponent<G_RamGraph>();
+ m_ramText = GetComponent<G_RamText>();
+
+ m_rectTransform = GetComponent<RectTransform>();
+
+ foreach (Transform child in transform)
+ {
+ if (child.parent == transform)
+ {
+ m_childrenGameObjects.Add(child.gameObject);
+ }
+ }
+ }
+
+ private void SetGraphActive(bool active)
+ {
+ m_ramGraph.enabled = active;
+ m_ramGraphGameObject.SetActive(active);
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs.meta
new file mode 100644
index 0000000..6d52479
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamManager.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 84f7591c01b7f1a4ab82f1a0038491da
+timeCreated: 1514998367
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs
new file mode 100644
index 0000000..efb0ad8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs
@@ -0,0 +1,43 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 15-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+#if UNITY_5_5_OR_NEWER
+using UnityEngine.Profiling;
+#endif
+
+namespace Tayx.Graphy.Ram
+{
+ public class G_RamMonitor : MonoBehaviour
+ {
+ #region Properties -> Public
+
+ public float AllocatedRam { get; private set; }
+ public float ReservedRam { get; private set; }
+ public float MonoRam { get; private set; }
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Update()
+ {
+ AllocatedRam = Profiler.GetTotalAllocatedMemoryLong()/ 1048576f;
+ ReservedRam = Profiler.GetTotalReservedMemoryLong() / 1048576f;
+ MonoRam = Profiler.GetMonoUsedSizeLong() / 1048576f;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs.meta
new file mode 100644
index 0000000..757e2b9
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamMonitor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2494656f0dd693144be1306d5551e544
+timeCreated: 1513377000
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs
new file mode 100644
index 0000000..e7c6086
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs
@@ -0,0 +1,96 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 05-Dec-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+using Tayx.Graphy.Utils.NumString;
+
+namespace Tayx.Graphy.Ram
+{
+ public class G_RamText : MonoBehaviour
+ {
+ #region Variables -> Serialized Private
+
+ [SerializeField] private Text m_allocatedSystemMemorySizeText = null;
+ [SerializeField] private Text m_reservedSystemMemorySizeText = null;
+ [SerializeField] private Text m_monoSystemMemorySizeText = null;
+
+ #endregion
+
+ #region Variables -> Private
+
+ private GraphyManager m_graphyManager = null;
+
+ private G_RamMonitor m_ramMonitor = null;
+
+ private float m_updateRate = 4f; // 4 updates per sec.
+
+ private float m_deltaTime = 0.0f;
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ private void Awake()
+ {
+ Init();
+ }
+
+ private void Update()
+ {
+ m_deltaTime += Time.unscaledDeltaTime;
+
+ if (m_deltaTime > 1f / m_updateRate)
+ {
+ // Update allocated, mono and reserved memory
+ m_allocatedSystemMemorySizeText .text = ((int)m_ramMonitor.AllocatedRam).ToStringNonAlloc();
+ m_reservedSystemMemorySizeText .text = ((int)m_ramMonitor.ReservedRam).ToStringNonAlloc();
+ m_monoSystemMemorySizeText .text = ((int)m_ramMonitor.MonoRam).ToStringNonAlloc();
+
+ m_deltaTime = 0f;
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ public void UpdateParameters()
+ {
+ m_allocatedSystemMemorySizeText .color = m_graphyManager.AllocatedRamColor;
+ m_reservedSystemMemorySizeText .color = m_graphyManager.ReservedRamColor;
+ m_monoSystemMemorySizeText .color = m_graphyManager.MonoRamColor;
+
+ m_updateRate = m_graphyManager.RamTextUpdateRate;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private void Init()
+ {
+ // We assume no game will consume more than 16GB of RAM.
+ // If it does, who cares about some minuscule garbage allocation lol.
+ G_IntString.Init( 0, 16386 );
+
+ m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
+
+ m_ramMonitor = GetComponent<G_RamMonitor>();
+
+ UpdateParameters();
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs.meta
new file mode 100644
index 0000000..42227bd
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Ram/G_RamText.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 28d32ee74b6e6d24ea89d1b477060318
+timeCreated: 1512484799
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader.meta
new file mode 100644
index 0000000..f41baf6
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6d11ec87c6db49d40af874a49810f377
+folderAsset: yes
+timeCreated: 1513377085
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs
new file mode 100644
index 0000000..4c08760
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs
@@ -0,0 +1,137 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 22-Nov-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy
+{
+ /// <summary>
+ /// This class communicates directly with the shader to draw the graphs. Performance here is very important
+ /// to reduce as much overhead as possible, as we are updating hundreds of values every frame.
+ /// </summary>
+ public class G_GraphShader
+ {
+ #region Variables
+
+ public const int ArrayMaxSizeFull = 512;
+ public const int ArrayMaxSizeLight = 128;
+
+ public int ArrayMaxSize = 128;
+
+ public float[] ShaderArrayValues;
+
+
+ public Image Image = null;
+
+
+ private string Name = "GraphValues"; // The name of the array
+ private string Name_Length = "GraphValues_Length";
+
+
+ public float Average = 0;
+ private int m_averagePropertyId = 0;
+
+
+ public float GoodThreshold = 0;
+ public float CautionThreshold = 0;
+
+ private int m_goodThresholdPropertyId = 0;
+ private int m_cautionThresholdPropertyId = 0;
+
+
+ public Color GoodColor = Color.white;
+ public Color CautionColor = Color.white;
+ public Color CriticalColor = Color.white;
+
+ private int m_goodColorPropertyId = 0;
+ private int m_cautionColorPropertyId = 0;
+ private int m_criticalColorPropertyId = 0;
+
+ #endregion
+
+ #region Methods -> Public
+
+ /// <summary>
+ /// This is done to avoid a design problem that arrays in shaders have,
+ /// and should be called before initializing any shader graph.
+ /// The first time that you use initialize an array, the size of the array in the shader is fixed.
+ /// This is why sometimes you will get a warning saying that the array size will be capped.
+ /// It shouldn't generate any issues, but in the worst case scenario just reset the Unity Editor
+ /// (if for some reason the shaders reload).
+ /// I also cache the Property IDs, that make access faster to modify shader parameters.
+ /// </summary>
+ public void InitializeShader()
+ {
+ Image.material.SetFloatArray( Name, new float[ ArrayMaxSize ] );
+
+ m_averagePropertyId = Shader.PropertyToID( "Average" );
+
+ m_goodThresholdPropertyId = Shader.PropertyToID( "_GoodThreshold" );
+ m_cautionThresholdPropertyId = Shader.PropertyToID( "_CautionThreshold" );
+
+ m_goodColorPropertyId = Shader.PropertyToID( "_GoodColor" );
+ m_cautionColorPropertyId = Shader.PropertyToID( "_CautionColor" );
+ m_criticalColorPropertyId = Shader.PropertyToID( "_CriticalColor" );
+ }
+
+ /// <summary>
+ /// Updates the material linked with this shader graph with the values in the float[] array.
+ /// </summary>
+ public void UpdateArray()
+ {
+ Image.material.SetInt( Name_Length, ShaderArrayValues.Length );
+ }
+
+ /// <summary>
+ /// Updates the average parameter in the material.
+ /// </summary>
+ public void UpdateAverage()
+ {
+ Image.material.SetFloat( m_averagePropertyId, Average );
+ }
+
+ /// <summary>
+ /// Updates the thresholds in the material.
+ /// </summary>
+ public void UpdateThresholds()
+ {
+ Image.material.SetFloat( m_goodThresholdPropertyId, GoodThreshold );
+ Image.material.SetFloat( m_cautionThresholdPropertyId, CautionThreshold );
+ }
+
+ /// <summary>
+ /// Updates the colors in the material.
+ /// </summary>
+ public void UpdateColors()
+ {
+ Image.material.SetColor( m_goodColorPropertyId, GoodColor );
+ Image.material.SetColor( m_cautionColorPropertyId, CautionColor );
+ Image.material.SetColor( m_criticalColorPropertyId, CriticalColor );
+ }
+
+ /// <summary>
+ /// Updates the points in the graph with the set array of values.
+ /// </summary>
+ public void UpdatePoints()
+ {
+ // Requires an array called "name"
+ // and another one called "name_Length"
+
+ Image.material.SetFloatArray( Name, ShaderArrayValues );
+ }
+
+ #endregion
+ }
+}
+
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs.meta
new file mode 100644
index 0000000..b598f4c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Shader/G_GraphShader.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0ddb605ced1369e409812b4f405221cd
+timeCreated: 1511903341
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef
new file mode 100644
index 0000000..bc271cf
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef
@@ -0,0 +1,21 @@
+{
+ "name": "Tayx.Graphy",
+ "references": [
+ "GUID:75469ad4d38634e559750d17036d5f7c"
+ ],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [
+ {
+ "name": "com.unity.inputsystem",
+ "expression": "",
+ "define": "GRAPHY_NEW_INPUT"
+ }
+ ],
+ "noEngineReferences": false
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef.meta
new file mode 100644
index 0000000..71a46db
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Tayx.Graphy.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 18e5109d897e1b244ab2dfeaf5482c7b
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI.meta
new file mode 100644
index 0000000..18a7ceb
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a6a45022ef0b3654a9d036efed540b32
+folderAsset: yes
+timeCreated: 1514998503
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs
new file mode 100644
index 0000000..647903a
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs
@@ -0,0 +1,26 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 03-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+namespace Tayx.Graphy.UI
+{
+ public interface IModifiableState
+ {
+ /// <summary>
+ /// Set the module state.
+ /// </summary>
+ /// <param name="newState">
+ /// The new state.
+ /// </param>
+ void SetState(GraphyManager.ModuleState newState, bool silentUpdate);
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs.meta
new file mode 100644
index 0000000..2732b8e
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IModifiableState.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: cbc1852edf51f8046aed2f13ea532ea9
+timeCreated: 1514998527
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs
new file mode 100644
index 0000000..d1d9ea7
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs
@@ -0,0 +1,26 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 03-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+namespace Tayx.Graphy.UI
+{
+ public interface IMovable
+ {
+ /// <summary>
+ /// Sets the position of the module.
+ /// </summary>
+ /// <param name="newModulePosition">
+ /// The new position of the module.
+ /// </param>
+ void SetPosition(GraphyManager.ModulePosition newModulePosition);
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs.meta
new file mode 100644
index 0000000..2fedf7f
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/UI/IMovable.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8a935302390075f45843775173889f94
+timeCreated: 1514998535
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util.meta
new file mode 100644
index 0000000..ebb78bf
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 931159fac06489e4aac42c90c50e8598
+folderAsset: yes
+timeCreated: 1512413960
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs
new file mode 100644
index 0000000..51dead4
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs
@@ -0,0 +1,65 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 04-Jan-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using System.Collections.Generic;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Utils
+{
+ public static class G_ExtensionMethods
+ {
+ #region Methods -> Extension Methods
+
+ /// <summary>
+ /// Functions as the SetActive function in the GameObject class, but for a list of them.
+ /// </summary>
+ /// <param name="gameObjects">
+ /// List of GameObjects.
+ /// </param>
+ /// <param name="active">
+ /// Wether to turn them on or off.
+ /// </param>
+ public static List<GameObject> SetAllActive(this List<GameObject> gameObjects, bool active)
+ {
+ foreach (var gameObj in gameObjects)
+ {
+ gameObj.SetActive(active);
+ }
+
+ return gameObjects;
+ }
+
+ public static List<Image> SetOneActive(this List<Image> images, int active)
+ {
+ for (int i = 0; i < images.Count; i++)
+ {
+ images[i].gameObject.SetActive(i == active);
+ }
+
+ return images;
+ }
+
+ public static List<Image> SetAllActive(this List<Image> images, bool active)
+ {
+ foreach (var image in images)
+ {
+ image.gameObject.SetActive(active);
+ }
+
+ return images;
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs.meta
new file mode 100644
index 0000000..2b0b2e8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_ExtensionMethods.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5aef4337f2241ec4d9a2ea5883fd1828
+timeCreated: 1515099756
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs
new file mode 100644
index 0000000..41dd336
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs
@@ -0,0 +1,196 @@
+/* ---------------------------------------
+ * Author: Started by David Mkrtchyan, modified by Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 18-May-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils.NumString
+{
+ public static class G_FloatString
+ {
+ #region Variables -> Private
+
+ /// <summary>
+ /// Float represented as a string, formatted.
+ /// </summary>
+ private const string m_floatFormat = "0.0";
+
+ /// <summary>
+ /// The currently defined, globally used decimal multiplier.
+ /// </summary>
+ private static float m_decimalMultiplier = 10f;
+
+ /// <summary>
+ /// List of negative floats casted to strings.
+ /// </summary>
+ private static string[] m_negativeBuffer = new string[0];
+
+ /// <summary>
+ /// List of positive floats casted to strings.
+ /// </summary>
+ private static string[] m_positiveBuffer = new string[0];
+
+ #endregion
+
+ #region Properties -> Public
+
+ /// <summary>
+ /// The lowest float value of the existing number buffer.
+ /// </summary>
+ public static float MinValue => -(m_negativeBuffer.Length - 1).FromIndex();
+
+ /// <summary>
+ /// The highest float value of the existing number buffer.
+ /// </summary>
+ public static float MaxValue => (m_positiveBuffer.Length - 1).FromIndex();
+
+ #endregion
+
+ #region Methods -> Public
+
+ /// <summary>
+ /// Initialize the buffers.
+ /// </summary>
+ /// <param name="minNegativeValue">
+ /// Lowest negative value allowed.
+ /// </param>
+ /// <param name="maxPositiveValue">
+ /// Highest positive value allowed.
+ /// </param>
+ public static void Init( float minNegativeValue, float maxPositiveValue )
+ {
+ int negativeLength = minNegativeValue.ToIndex();
+ int positiveLength = maxPositiveValue.ToIndex();
+
+ if ( MinValue > minNegativeValue && negativeLength >= 0 )
+ {
+ m_negativeBuffer = new string[ negativeLength ];
+ for ( int i = 0; i < negativeLength; i++ )
+ {
+ m_negativeBuffer[ i ] = (-i - 1).FromIndex().ToString( m_floatFormat );
+ }
+ }
+
+ if ( MaxValue < maxPositiveValue && positiveLength >= 0 )
+ {
+ m_positiveBuffer = new string[ positiveLength + 1 ];
+ for ( int i = 0; i < positiveLength + 1; i++ )
+ {
+ m_positiveBuffer[ i ] = i.FromIndex().ToString( m_floatFormat );
+ }
+ }
+ }
+
+ public static void Dispose()
+ {
+ m_negativeBuffer = new string[0];
+ m_positiveBuffer = new string[0];
+ }
+
+ /// <summary>
+ /// Returns this float as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required float.
+ /// </param>
+ /// <returns>
+ /// A cached number string.
+ /// </returns>
+ public static string ToStringNonAlloc(this float value)
+ {
+ int valIndex = value.ToIndex();
+
+ if (value < 0 && valIndex < m_negativeBuffer.Length)
+ {
+ return m_negativeBuffer[valIndex];
+ }
+
+ if (value >= 0 && valIndex < m_positiveBuffer.Length)
+ {
+ return m_positiveBuffer[valIndex];
+ }
+
+ return value.ToString();
+ }
+
+ //TODO: Convert this to use m_floatFormat instead, but investigate which functions require and dont require one first.
+ /// <summary>
+ /// Returns this float as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required float.
+ /// </param>
+ /// <returns>
+ /// A cached number string.
+ /// </returns>
+ public static string ToStringNonAlloc(this float value, string format)
+ {
+ int valIndex = value.ToIndex();
+
+ if (value < 0 && valIndex < m_negativeBuffer.Length)
+ {
+ return m_negativeBuffer[valIndex];
+ }
+
+ if (value >= 0 && valIndex < m_positiveBuffer.Length)
+ {
+ return m_positiveBuffer[valIndex];
+ }
+
+ return value.ToString(format);
+ }
+
+ /// <summary>
+ /// Returns a float as a casted int.
+ /// </summary>
+ /// <param name="f">
+ /// The given float.
+ /// </param>
+ /// <returns>
+ /// The given float as an int.
+ /// </returns>
+ public static int ToInt(this float f)
+ {
+ return (int)f;
+ }
+
+ /// <summary>
+ /// Returns an int as a casted float.
+ /// </summary>
+ /// <param name="f">
+ /// The given int.
+ /// </param>
+ /// <returns>
+ /// The given int as a float.
+ /// </returns>
+ public static float ToFloat(this int i)
+ {
+ return (float)i;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ private static int ToIndex(this float f)
+ {
+ return Mathf.Abs((f * m_decimalMultiplier).ToInt());
+ }
+
+ private static float FromIndex(this int i)
+ {
+ return (i.ToFloat() / m_decimalMultiplier);
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs.meta
new file mode 100644
index 0000000..fc8daa2
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_FloatString.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c7eaf0f83a3530240a97ac1c51d6f2e6
+timeCreated: 1538651101
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs
new file mode 100644
index 0000000..119c962
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs
@@ -0,0 +1,117 @@
+/* ---------------------------------------
+ * Author: Started by David Mkrtchyan, modified by Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 18-May-18
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils.NumString
+{
+ public static class G_IntString
+ {
+ #region Variables -> Private
+
+ /// <summary>
+ /// List of negative ints casted to strings.
+ /// </summary>
+ private static string[] m_negativeBuffer = new string[0];
+
+ /// <summary>
+ /// List of positive ints casted to strings.
+ /// </summary>
+ private static string[] m_positiveBuffer = new string[0];
+
+ #endregion
+
+ #region Properties -> Public
+
+ /// <summary>
+ /// The lowest int value of the existing number buffer.
+ /// </summary>
+ public static int MinValue => -(m_negativeBuffer.Length - 1);
+
+ /// <summary>
+ /// The highest int value of the existing number buffer.
+ /// </summary>
+ public static int MaxValue => m_positiveBuffer.Length;
+
+ #endregion
+
+ #region Methods -> Public
+
+ /// <summary>
+ /// Initialize the buffers.
+ /// </summary>
+ /// <param name="minNegativeValue">
+ /// Lowest negative value allowed.
+ /// </param>
+ /// <param name="maxPositiveValue">
+ /// Highest positive value allowed.
+ /// </param>
+ public static void Init( int minNegativeValue, int maxPositiveValue )
+ {
+ if ( MinValue > minNegativeValue && minNegativeValue <= 0 )
+ {
+ int length = Mathf.Abs( minNegativeValue );
+
+ m_negativeBuffer = new string[ length ];
+
+ for ( int i = 0; i < length; i++ )
+ {
+ m_negativeBuffer[ i ] = (-i - 1).ToString();
+ }
+ }
+
+ if ( MaxValue < maxPositiveValue && maxPositiveValue >= 0 )
+ {
+ m_positiveBuffer = new string[ maxPositiveValue + 1 ];
+
+ for ( int i = 0; i < maxPositiveValue + 1; i++ )
+ {
+ m_positiveBuffer[ i ] = i.ToString();
+ }
+ }
+ }
+
+ public static void Dispose()
+ {
+ m_negativeBuffer = new string[ 0 ];
+ m_positiveBuffer = new string[ 0 ];
+ }
+
+ /// <summary>
+ /// Returns this int as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required int.
+ /// </param>
+ /// <returns>
+ /// A cached number string if within the buffer ranges.
+ /// </returns>
+ public static string ToStringNonAlloc(this int value)
+ {
+ if (value < 0 && -value <= m_negativeBuffer.Length)
+ {
+ return m_negativeBuffer[-value - 1];
+ }
+
+ if (value >= 0 && value < m_positiveBuffer.Length)
+ {
+ return m_positiveBuffer[value];
+ }
+
+ // If the value is not within the buffer ranges, just do a normal .ToString()
+ return value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs.meta
new file mode 100644
index 0000000..9852448
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Intstring.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2584aec3ab9f9af49bbdb1477908274e
+timeCreated: 1526634575
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs
new file mode 100644
index 0000000..28da554
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs
@@ -0,0 +1,84 @@
+/* ---------------------------------------
+ * Sourced from: https://wiki.unity3d.com/index.php/Singleton
+ * Modified by: Martín Pane (martintayx@gmail.com) (@tayx94)
+ * Contributors: https://github.com/Tayx94/graphy/graphs/contributors
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 07-Jul-17
+ * Studio: Tayx
+ *
+ * Git repo: https://github.com/Tayx94/graphy
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils
+{
+ /// <summary>
+ /// Be aware this will not prevent a non singleton constructor
+ /// such as `T myT = new T();`
+ /// To prevent that, add `protected T () {}` to your singleton class.
+ /// </summary>
+ public class G_Singleton<T> : MonoBehaviour where T : MonoBehaviour
+ {
+ #region Variables -> Private
+
+ private static T _instance;
+
+ private static object _lock = new object();
+
+ #endregion
+
+ #region Properties -> Public
+
+ public static T Instance
+ {
+ get
+ {
+ lock (_lock)
+ {
+ if (_instance == null)
+ {
+ Debug.Log
+ (
+ "[Singleton] An instance of " + typeof(T) +
+ " is trying to be accessed, but it wasn't initialized first. " +
+ "Make sure to add an instance of " + typeof(T) + " in the scene before " +
+ " trying to access it."
+ );
+ }
+
+ return _instance;
+ }
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ void Awake()
+ {
+ if (_instance != null)
+ {
+ Destroy(gameObject);
+ }
+ else
+ {
+ _instance = GetComponent<T>();
+ }
+ }
+
+ void OnDestroy()
+ {
+ if (_instance == this)
+ {
+ _instance = null;
+ }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs.meta b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs.meta
new file mode 100644
index 0000000..1043fb6
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Runtime/Util/G_Singleton.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: dbf324bd9d0eaf7408f3b72ed03e2588
+timeCreated: 1512413989
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Shaders.meta b/Assets/Graphy - Ultimate Stats Monitor/Shaders.meta
new file mode 100644
index 0000000..1499d1a
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Shaders.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d09d01ed33a8e69449fa491b5cded29f
+folderAsset: yes
+timeCreated: 1511697726
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader
new file mode 100644
index 0000000..4d5899b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader
@@ -0,0 +1,182 @@
+Shader "Graphy/Graph Mobile"
+{
+ Properties
+ {
+ [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
+ _Color("Tint", Color) = (1,1,1,1)
+ [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
+
+ _GoodColor("Good Color", Color) = (1,1,1,1)
+ _CautionColor("Caution Color", Color) = (1,1,1,1)
+ _CriticalColor("Critical Color", Color) = (1,1,1,1)
+
+ _GoodThreshold("Good Threshold", Float) = 0.5
+ _CautionThreshold("Caution Threshold", Float) = 0.25
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue"="Transparent"
+ "IgnoreProjector"="True"
+ "RenderType"="Transparent"
+ "PreviewType"="Plane"
+ "CanUseSpriteAtlas"="True"
+ }
+
+ Cull Off
+ Lighting Off
+ ZWrite Off
+ ZTest Off
+ Blend One OneMinusSrcAlpha
+
+ Pass
+ {
+ Name "Default"
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile _ PIXELSNAP_ON
+
+ #include "UnityCG.cginc"
+
+ struct appdata_t
+ {
+ float4 vertex : POSITION;
+ float4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float4 vertex : SV_POSITION;
+ fixed4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ };
+
+ fixed4 _Color;
+
+ v2f vert(appdata_t IN)
+ {
+ v2f OUT;
+ OUT.vertex = UnityObjectToClipPos(IN.vertex);
+ OUT.texcoord = IN.texcoord;
+ OUT.color = IN.color * _Color;
+ #ifdef PIXELSNAP_ON
+ OUT.vertex = UnityPixelSnap(OUT.vertex);
+ #endif
+
+ return OUT;
+ }
+
+ sampler2D _MainTex;
+ sampler2D _AlphaTex;
+ float _AlphaSplitEnabled;
+
+ fixed4 SampleSpriteTexture(float2 uv)
+ {
+ fixed4 color = tex2D(_MainTex, uv);
+
+ #if UNITY_TEXTURE_ALPHASPLIT_ALLOWED
+ if (_AlphaSplitEnabled)
+ color.a = tex2D(_AlphaTex, uv).r;
+ #endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED
+
+ return color;
+ }
+
+ fixed4 _GoodColor;
+ fixed4 _CautionColor;
+ fixed4 _CriticalColor;
+
+ fixed _GoodThreshold;
+ fixed _CautionThreshold;
+
+ uniform float Average;
+
+ // NOTE: The size of this array can break compatibility with some older GPUs
+ // This shader is pretty much equal to GraphStandard.shader but with a smaller Array size.
+ uniform float GraphValues[128];
+
+ uniform float GraphValues_Length;
+
+ fixed4 frag(v2f IN) : SV_Target
+ {
+ fixed4 color = IN.color;
+
+ fixed xCoord = IN.texcoord.x;
+ fixed yCoord = IN.texcoord.y;
+
+ float graphValue = GraphValues[floor(xCoord * GraphValues_Length)];
+
+ // Define the width of each element of the graph
+ float increment = 1.0f / (GraphValues_Length - 1);
+
+ // Assign the corresponding color
+ if (graphValue > _GoodThreshold)
+ {
+ color *= _GoodColor;
+ }
+ else if (graphValue > _CautionThreshold)
+ {
+ color *= _CautionColor;
+ }
+ else
+ {
+ color *= _CriticalColor;
+ }
+
+ // Point coloring
+ if (graphValue - yCoord > increment * 4)
+ {
+ //color.a = yCoord * graphValue * 0.3;
+ color.a *= yCoord * 0.3 / graphValue;
+ }
+
+ // Set as transparent the part on top of the current point value
+ if (yCoord > graphValue)
+ {
+ color.a = 0;
+ }
+
+ // Average white bar
+ if (yCoord < Average && yCoord > Average - 0.02)
+ {
+ color = fixed4(1, 1, 1, 1);
+ }
+
+ // CautionColor bar
+ if (yCoord < _CautionThreshold && yCoord > _CautionThreshold - 0.02)
+ {
+ color = _CautionColor;
+ }
+
+ // GoodColor bar
+ if (yCoord < _GoodThreshold && yCoord > _GoodThreshold - 0.02)
+ {
+ color = _GoodColor;
+ }
+
+ // Fade the alpha of the sides of the graph
+ if (xCoord < 0.03)
+ {
+ color.a *= 1 - (0.03 - xCoord) / 0.03;
+ }
+ else if (xCoord > 0.97)
+ {
+ color.a *= (1 - xCoord) / 0.03;
+ }
+
+ fixed4 c = SampleSpriteTexture(IN.texcoord) * color;
+
+ c.rgb *= c.a;
+
+ return c;
+ }
+
+ ENDCG
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader.meta b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader.meta
new file mode 100644
index 0000000..ac6b733
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphMobile.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 96316acf0f537ae449a9a641fa00eefe
+timeCreated: 1511697757
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader
new file mode 100644
index 0000000..f94690b
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader
@@ -0,0 +1,190 @@
+Shader "Graphy/Graph Standard"
+{
+ Properties
+ {
+ [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
+ _Color("Tint", Color) = (1,1,1,1)
+ [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
+
+ _GoodColor("Good Color", Color) = (1,1,1,1)
+ _CautionColor("Caution Color", Color) = (1,1,1,1)
+ _CriticalColor("Critical Color", Color) = (1,1,1,1)
+
+ _GoodThreshold("Good Threshold", Float) = 0.5
+ _CautionThreshold("Caution Threshold", Float) = 0.25
+ }
+
+ SubShader
+ {
+ Tags
+ {
+ "Queue"="Transparent"
+ "IgnoreProjector"="True"
+ "RenderType"="Transparent"
+ "PreviewType"="Plane"
+ "CanUseSpriteAtlas"="True"
+ }
+
+ Cull Off
+ Lighting Off
+ ZWrite Off
+ ZTest Off
+ Blend One OneMinusSrcAlpha
+
+ Pass
+ {
+ Name "Default"
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile _ PIXELSNAP_ON
+
+ #include "UnityCG.cginc"
+
+ struct appdata_t
+ {
+ float4 vertex : POSITION;
+ float4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ };
+
+ struct v2f
+ {
+ float4 vertex : SV_POSITION;
+ fixed4 color : COLOR;
+ float2 texcoord : TEXCOORD0;
+ UNITY_VERTEX_OUTPUT_STEREO
+ };
+
+ fixed4 _Color;
+
+ v2f vert(appdata_t IN)
+ {
+ v2f OUT;
+
+ UNITY_SETUP_INSTANCE_ID(IN);
+ UNITY_INITIALIZE_OUTPUT(v2f, OUT);
+ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
+
+ OUT.vertex = UnityObjectToClipPos(IN.vertex);
+ OUT.texcoord = IN.texcoord;
+ OUT.color = IN.color * _Color;
+ #ifdef PIXELSNAP_ON
+ OUT.vertex = UnityPixelSnap(OUT.vertex);
+ #endif
+
+ return OUT;
+ }
+
+ sampler2D _MainTex;
+ sampler2D _AlphaTex;
+ float _AlphaSplitEnabled;
+
+ fixed4 SampleSpriteTexture(float2 uv)
+ {
+ fixed4 color = tex2D(_MainTex, uv);
+
+ #if UNITY_TEXTURE_ALPHASPLIT_ALLOWED
+ if (_AlphaSplitEnabled)
+ color.a = tex2D(_AlphaTex, uv).r;
+ #endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED
+
+ return color;
+ }
+
+ fixed4 _GoodColor;
+ fixed4 _CautionColor;
+ fixed4 _CriticalColor;
+
+ fixed _GoodThreshold;
+ fixed _CautionThreshold;
+
+ uniform float Average;
+
+ // NOTE: The size of this array can break compatibility with some older GPUs
+ // If you see a pink box or that the graphs are not working, try lowering this value
+ // or using the GraphMobile.shader
+ uniform float GraphValues[512];
+
+ uniform float GraphValues_Length;
+
+ fixed4 frag(v2f IN) : SV_Target
+ {
+ fixed4 color = IN.color;
+
+ fixed xCoord = IN.texcoord.x;
+ fixed yCoord = IN.texcoord.y;
+
+ float graphValue = GraphValues[floor(xCoord * GraphValues_Length)];
+
+ // Define the width of each element of the graph
+ float increment = 1.0f / (GraphValues_Length - 1);
+
+ // Assign the corresponding color
+ if (graphValue > _GoodThreshold)
+ {
+ color *= _GoodColor;
+ }
+ else if (graphValue > _CautionThreshold)
+ {
+ color *= _CautionColor;
+ }
+ else
+ {
+ color *= _CriticalColor;
+ }
+
+ // Point coloring
+ if (graphValue - yCoord > increment * 4)
+ {
+ //color.a = yCoord * graphValue * 0.3;
+ color.a *= yCoord * 0.3 / graphValue;
+ }
+
+ // Set as transparent the part on top of the current point value
+ if (yCoord > graphValue)
+ {
+ color.a = 0;
+ }
+
+ // Average white bar
+ if (yCoord < Average && yCoord > Average - 0.02)
+ {
+ color = fixed4(1, 1, 1, 1);
+ }
+
+ // CautionColor bar
+ if (yCoord < _CautionThreshold && yCoord > _CautionThreshold - 0.02)
+ {
+ color = _CautionColor;
+ }
+
+ // GoodColor bar
+ if (yCoord < _GoodThreshold && yCoord > _GoodThreshold - 0.02)
+ {
+ color = _GoodColor;
+ }
+
+ // Fade the alpha of the sides of the graph
+ if (xCoord < 0.03)
+ {
+ color.a *= 1 - (0.03 - xCoord) / 0.03;
+ }
+ else if (xCoord > 0.97)
+ {
+ color.a *= (1 - xCoord) / 0.03;
+ }
+
+ fixed4 c = SampleSpriteTexture(IN.texcoord) * color;
+
+ c.rgb *= c.a;
+
+ return c;
+ }
+
+ ENDCG
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader.meta b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader.meta
new file mode 100644
index 0000000..50170bf
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Shaders/GraphStandard.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bc65170c051b0724287a7f1636d87573
+timeCreated: 1511697757
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures.meta
new file mode 100644
index 0000000..2d14adf
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 8841cf313b29e834f9f40349f9d1a088
+folderAsset: yes
+timeCreated: 1511883622
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png
new file mode 100644
index 0000000..114f241
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png.meta
new file mode 100644
index 0000000..ccf73dd
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/2x2_Texture.png.meta
@@ -0,0 +1,105 @@
+fileFormatVersion: 2
+guid: ad4148593b05d0f47980774815c325fe
+labels:
+- texture
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 0
+ mipBias: -100
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: 5
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 1
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png
new file mode 100644
index 0000000..95291ec
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png.meta
new file mode 100644
index 0000000..621d514
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_Dark.png.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: c4f28d6a8d8f6ba41a7710f6e2368f80
+labels:
+- graphy
+- tayx
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 16
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png
new file mode 100644
index 0000000..47c3e69
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png.meta
new file mode 100644
index 0000000..e63d8ba
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Debugger_Logo_White.png.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: db20accdfca9af54c8673b4083d331b8
+labels:
+- graphy
+- tayx
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 16
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png
new file mode 100644
index 0000000..c65be5c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png.meta
new file mode 100644
index 0000000..39ff86c
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_Dark.png.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: 2967191e0207a36479ba2e37accf4403
+labels:
+- graphy
+- tayx
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 16
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png
new file mode 100644
index 0000000..85164d3
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png.meta
new file mode 100644
index 0000000..2a2f8f8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Manager_Logo_White.png.meta
@@ -0,0 +1,94 @@
+fileFormatVersion: 2
+guid: 468dad608405ce74f99362912f165deb
+labels:
+- graphy
+- tayx
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 16
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png b/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png
new file mode 100644
index 0000000..f8e26d4
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png
Binary files differ
diff --git a/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png.meta b/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png.meta
new file mode 100644
index 0000000..aab3d44
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/Textures/Rounded_Rect_10px.png.meta
@@ -0,0 +1,103 @@
+fileFormatVersion: 2
+guid: c4f7f8debbcf3cf4faf280628cab55f9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: -1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 10, y: 10, z: 10, w: 10}
+ spriteGenerateFallbackPhysicsShape: 0
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Graphy - Ultimate Stats Monitor/package.json b/Assets/Graphy - Ultimate Stats Monitor/package.json
new file mode 100644
index 0000000..29646f5
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "com.tayx.graphy",
+ "version": "2.1.3",
+ "displayName": "Graphy - Ultimate FPS Counter",
+ "description": "Graphy is the ultimate, easy to use, feature packed FPS Counter, stats monitor and debugger for your Unity project.",
+ "unity": "2019.3",
+ "license": "MIT",
+ "keywords": [
+ "fps",
+ "counter",
+ "performance",
+ "debugger",
+ "graphy"
+ ],
+ "author": {
+ "name": "Martin Pane",
+ "email": "martintayx@gmail.com",
+ "url": "https://twitter.com/martinTayx"
+ }
+}
diff --git a/Assets/Graphy - Ultimate Stats Monitor/package.json.meta b/Assets/Graphy - Ultimate Stats Monitor/package.json.meta
new file mode 100644
index 0000000..c3facd8
--- /dev/null
+++ b/Assets/Graphy - Ultimate Stats Monitor/package.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cddc533b908681b4eb4d94dc889d4db1
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Yellow.mat b/Assets/Materials/Yellow.mat
new file mode 100644
index 0000000..234fc3a
--- /dev/null
+++ b/Assets/Materials/Yellow.mat
@@ -0,0 +1,124 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8149313954941064805
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 4
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Yellow
+ m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2000
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _AlphaClip: 0
+ - _Blend: 0
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 0.93853647, b: 0.3537736, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Yellow.mat.meta b/Assets/Materials/Yellow.mat.meta
new file mode 100644
index 0000000..3d1b1b9
--- /dev/null
+++ b/Assets/Materials/Yellow.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 75d89a4280e56ecf6b1f827a0284797b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/couch.blend b/Assets/Models/couch.blend
new file mode 100644
index 0000000..0ba4000
--- /dev/null
+++ b/Assets/Models/couch.blend
Binary files differ
diff --git a/Assets/Models/couch.blend.meta b/Assets/Models/couch.blend.meta
new file mode 100644
index 0000000..66f7af9
--- /dev/null
+++ b/Assets/Models/couch.blend.meta
@@ -0,0 +1,102 @@
+fileFormatVersion: 2
+guid: 4ee15c5ba6ef898608cd660d744e8967
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/couch.blend1 b/Assets/Models/couch.blend1
new file mode 100644
index 0000000..abc6535
--- /dev/null
+++ b/Assets/Models/couch.blend1
Binary files differ
diff --git a/Assets/Models/couch.blend1.meta b/Assets/Models/couch.blend1.meta
new file mode 100644
index 0000000..0925494
--- /dev/null
+++ b/Assets/Models/couch.blend1.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e46e73becee33f44eae6192a72c1a931
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/tv.blend b/Assets/Models/tv.blend
new file mode 100644
index 0000000..1ad0b5f
--- /dev/null
+++ b/Assets/Models/tv.blend
Binary files differ
diff --git a/Assets/Models/tv.blend.meta b/Assets/Models/tv.blend.meta
new file mode 100644
index 0000000..f757662
--- /dev/null
+++ b/Assets/Models/tv.blend.meta
@@ -0,0 +1,102 @@
+fileFormatVersion: 2
+guid: c8d8bc747cfd21a95b43dd3bd0d75607
+ModelImporter:
+ serializedVersion: 20200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Models/tv.blend1 b/Assets/Models/tv.blend1
new file mode 100644
index 0000000..11cb1bb
--- /dev/null
+++ b/Assets/Models/tv.blend1
Binary files differ
diff --git a/Assets/Models/tv.blend1.meta b/Assets/Models/tv.blend1.meta
new file mode 100644
index 0000000..54959b8
--- /dev/null
+++ b/Assets/Models/tv.blend1.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 06939db6b3f393765b1dd1d3e8e4bc66
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta
new file mode 100644
index 0000000..7a66dfd
--- /dev/null
+++ b/Assets/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ea43c2fa69f861a1ba11aa44b6ddd5c1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK.meta b/Assets/Plugins/DiscordGameSDK.meta
new file mode 100644
index 0000000..b85ded5
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c0cbcee126bf415318012b080c8cf955
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/ActivityManager.cs b/Assets/Plugins/DiscordGameSDK/ActivityManager.cs
new file mode 100644
index 0000000..048e3b4
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/ActivityManager.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace Discord
+{
+ public partial class ActivityManager
+ {
+ public void RegisterCommand()
+ {
+ RegisterCommand(null);
+ }
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/ActivityManager.cs.meta b/Assets/Plugins/DiscordGameSDK/ActivityManager.cs.meta
new file mode 100644
index 0000000..ee85875
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/ActivityManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3b8d561750b35286ab9a5b9972dd6451
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/Constants.cs b/Assets/Plugins/DiscordGameSDK/Constants.cs
new file mode 100644
index 0000000..8e77e1b
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/Constants.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace Discord
+{
+ static class Constants
+ {
+ public const string DllName = "discord_game_sdk";
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/Constants.cs.meta b/Assets/Plugins/DiscordGameSDK/Constants.cs.meta
new file mode 100644
index 0000000..afd16f8
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/Constants.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c7f39ba4d38d50b0e9e5fcf3563134c1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/Core.cs b/Assets/Plugins/DiscordGameSDK/Core.cs
new file mode 100644
index 0000000..fa95765
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/Core.cs
@@ -0,0 +1,4199 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Discord
+{
+ public enum Result
+ {
+ Ok = 0,
+ ServiceUnavailable = 1,
+ InvalidVersion = 2,
+ LockFailed = 3,
+ InternalError = 4,
+ InvalidPayload = 5,
+ InvalidCommand = 6,
+ InvalidPermissions = 7,
+ NotFetched = 8,
+ NotFound = 9,
+ Conflict = 10,
+ InvalidSecret = 11,
+ InvalidJoinSecret = 12,
+ NoEligibleActivity = 13,
+ InvalidInvite = 14,
+ NotAuthenticated = 15,
+ InvalidAccessToken = 16,
+ ApplicationMismatch = 17,
+ InvalidDataUrl = 18,
+ InvalidBase64 = 19,
+ NotFiltered = 20,
+ LobbyFull = 21,
+ InvalidLobbySecret = 22,
+ InvalidFilename = 23,
+ InvalidFileSize = 24,
+ InvalidEntitlement = 25,
+ NotInstalled = 26,
+ NotRunning = 27,
+ InsufficientBuffer = 28,
+ PurchaseCanceled = 29,
+ InvalidGuild = 30,
+ InvalidEvent = 31,
+ InvalidChannel = 32,
+ InvalidOrigin = 33,
+ RateLimited = 34,
+ OAuth2Error = 35,
+ SelectChannelTimeout = 36,
+ GetGuildTimeout = 37,
+ SelectVoiceForceRequired = 38,
+ CaptureShortcutAlreadyListening = 39,
+ UnauthorizedForAchievement = 40,
+ InvalidGiftCode = 41,
+ PurchaseError = 42,
+ TransactionAborted = 43,
+ }
+
+ public enum CreateFlags
+ {
+ Default = 0,
+ NoRequireDiscord = 1,
+ }
+
+ public enum LogLevel
+ {
+ Error = 1,
+ Warn,
+ Info,
+ Debug,
+ }
+
+ public enum UserFlag
+ {
+ Partner = 2,
+ HypeSquadEvents = 4,
+ HypeSquadHouse1 = 64,
+ HypeSquadHouse2 = 128,
+ HypeSquadHouse3 = 256,
+ }
+
+ public enum PremiumType
+ {
+ None = 0,
+ Tier1 = 1,
+ Tier2 = 2,
+ }
+
+ public enum ImageType
+ {
+ User,
+ }
+
+ public enum ActivityType
+ {
+ Playing,
+ Streaming,
+ Listening,
+ Watching,
+ }
+
+ public enum ActivityActionType
+ {
+ Join = 1,
+ Spectate,
+ }
+
+ public enum ActivityJoinRequestReply
+ {
+ No,
+ Yes,
+ Ignore,
+ }
+
+ public enum Status
+ {
+ Offline = 0,
+ Online = 1,
+ Idle = 2,
+ DoNotDisturb = 3,
+ }
+
+ public enum RelationshipType
+ {
+ None,
+ Friend,
+ Blocked,
+ PendingIncoming,
+ PendingOutgoing,
+ Implicit,
+ }
+
+ public enum LobbyType
+ {
+ Private = 1,
+ Public,
+ }
+
+ public enum LobbySearchComparison
+ {
+ LessThanOrEqual = -2,
+ LessThan,
+ Equal,
+ GreaterThan,
+ GreaterThanOrEqual,
+ NotEqual,
+ }
+
+ public enum LobbySearchCast
+ {
+ String = 1,
+ Number,
+ }
+
+ public enum LobbySearchDistance
+ {
+ Local,
+ Default,
+ Extended,
+ Global,
+ }
+
+ public enum EntitlementType
+ {
+ Purchase = 1,
+ PremiumSubscription,
+ DeveloperGift,
+ TestModePurchase,
+ FreePurchase,
+ UserGift,
+ PremiumPurchase,
+ }
+
+ public enum SkuType
+ {
+ Application = 1,
+ DLC,
+ Consumable,
+ Bundle,
+ }
+
+ public enum InputModeType
+ {
+ VoiceActivity = 0,
+ PushToTalk,
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct User
+ {
+ public Int64 Id;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+ public string Username;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
+ public string Discriminator;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Avatar;
+
+ public bool Bot;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct OAuth2Token
+ {
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string AccessToken;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+ public string Scopes;
+
+ public Int64 Expires;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ImageHandle
+ {
+ public ImageType Type;
+
+ public Int64 Id;
+
+ public UInt32 Size;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ImageDimensions
+ {
+ public UInt32 Width;
+
+ public UInt32 Height;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ActivityTimestamps
+ {
+ public Int64 Start;
+
+ public Int64 End;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ActivityAssets
+ {
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string LargeImage;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string LargeText;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string SmallImage;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string SmallText;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct PartySize
+ {
+ public Int32 CurrentSize;
+
+ public Int32 MaxSize;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ActivityParty
+ {
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Id;
+
+ public PartySize Size;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct ActivitySecrets
+ {
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Match;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Join;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Spectate;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Activity
+ {
+ public ActivityType Type;
+
+ public Int64 ApplicationId;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Name;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string State;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Details;
+
+ public ActivityTimestamps Timestamps;
+
+ public ActivityAssets Assets;
+
+ public ActivityParty Party;
+
+ public ActivitySecrets Secrets;
+
+ public bool Instance;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Presence
+ {
+ public Status Status;
+
+ public Activity Activity;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Relationship
+ {
+ public RelationshipType Type;
+
+ public User User;
+
+ public Presence Presence;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Lobby
+ {
+ public Int64 Id;
+
+ public LobbyType Type;
+
+ public Int64 OwnerId;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
+ public string Secret;
+
+ public UInt32 Capacity;
+
+ public bool Locked;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct FileStat
+ {
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
+ public string Filename;
+
+ public UInt64 Size;
+
+ public UInt64 LastModified;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Entitlement
+ {
+ public Int64 Id;
+
+ public EntitlementType Type;
+
+ public Int64 SkuId;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct SkuPrice
+ {
+ public UInt32 Amount;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
+ public string Currency;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct Sku
+ {
+ public Int64 Id;
+
+ public SkuType Type;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+ public string Name;
+
+ public SkuPrice Price;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct InputMode
+ {
+ public InputModeType Type;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+ public string Shortcut;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct UserAchievement
+ {
+ public Int64 UserId;
+
+ public Int64 AchievementId;
+
+ public byte PercentComplete;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
+ public string UnlockedAt;
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct LobbyTransaction
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetTypeMethod(IntPtr methodsPtr, LobbyType type);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetOwnerMethod(IntPtr methodsPtr, Int64 ownerId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetCapacityMethod(IntPtr methodsPtr, UInt32 capacity);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetMetadataMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key, [MarshalAs(UnmanagedType.LPStr)]string value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result DeleteMetadataMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetLockedMethod(IntPtr methodsPtr, bool locked);
+
+ internal SetTypeMethod SetType;
+
+ internal SetOwnerMethod SetOwner;
+
+ internal SetCapacityMethod SetCapacity;
+
+ internal SetMetadataMethod SetMetadata;
+
+ internal DeleteMetadataMethod DeleteMetadata;
+
+ internal SetLockedMethod SetLocked;
+ }
+
+ internal IntPtr MethodsPtr;
+
+ internal Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public void SetType(LobbyType type)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetType(MethodsPtr, type);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void SetOwner(Int64 ownerId)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetOwner(MethodsPtr, ownerId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void SetCapacity(UInt32 capacity)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetCapacity(MethodsPtr, capacity);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void SetMetadata(string key, string value)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetMetadata(MethodsPtr, key, value);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void DeleteMetadata(string key)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.DeleteMetadata(MethodsPtr, key);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void SetLocked(bool locked)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetLocked(MethodsPtr, locked);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct LobbyMemberTransaction
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetMetadataMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key, [MarshalAs(UnmanagedType.LPStr)]string value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result DeleteMetadataMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key);
+
+ internal SetMetadataMethod SetMetadata;
+
+ internal DeleteMetadataMethod DeleteMetadata;
+ }
+
+ internal IntPtr MethodsPtr;
+
+ internal Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public void SetMetadata(string key, string value)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.SetMetadata(MethodsPtr, key, value);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void DeleteMetadata(string key)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.DeleteMetadata(MethodsPtr, key);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ public partial struct LobbySearchQuery
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result FilterMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key, LobbySearchComparison comparison, LobbySearchCast cast, [MarshalAs(UnmanagedType.LPStr)]string value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SortMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string key, LobbySearchCast cast, [MarshalAs(UnmanagedType.LPStr)]string value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result LimitMethod(IntPtr methodsPtr, UInt32 limit);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result DistanceMethod(IntPtr methodsPtr, LobbySearchDistance distance);
+
+ internal FilterMethod Filter;
+
+ internal SortMethod Sort;
+
+ internal LimitMethod Limit;
+
+ internal DistanceMethod Distance;
+ }
+
+ internal IntPtr MethodsPtr;
+
+ internal Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public void Filter(string key, LobbySearchComparison comparison, LobbySearchCast cast, string value)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.Filter(MethodsPtr, key, comparison, cast, value);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void Sort(string key, LobbySearchCast cast, string value)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.Sort(MethodsPtr, key, cast, value);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void Limit(UInt32 limit)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.Limit(MethodsPtr, limit);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public void Distance(LobbySearchDistance distance)
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ var res = Methods.Distance(MethodsPtr, distance);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+ }
+
+ public partial class ResultException : Exception
+ {
+ public readonly Result Result;
+
+ public ResultException(Result result) : base(result.ToString())
+ {
+ }
+ }
+
+ public partial class Discord : IDisposable
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DestroyHandler(IntPtr MethodsPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result RunCallbacksMethod(IntPtr methodsPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetLogHookCallback(IntPtr ptr, LogLevel level, [MarshalAs(UnmanagedType.LPStr)]string message);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetLogHookMethod(IntPtr methodsPtr, LogLevel minLevel, IntPtr callbackData, SetLogHookCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetApplicationManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetUserManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetImageManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetActivityManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetRelationshipManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetLobbyManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetNetworkManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetOverlayManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetStorageManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetStoreManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetVoiceManagerMethod(IntPtr discordPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr GetAchievementManagerMethod(IntPtr discordPtr);
+
+ internal DestroyHandler Destroy;
+
+ internal RunCallbacksMethod RunCallbacks;
+
+ internal SetLogHookMethod SetLogHook;
+
+ internal GetApplicationManagerMethod GetApplicationManager;
+
+ internal GetUserManagerMethod GetUserManager;
+
+ internal GetImageManagerMethod GetImageManager;
+
+ internal GetActivityManagerMethod GetActivityManager;
+
+ internal GetRelationshipManagerMethod GetRelationshipManager;
+
+ internal GetLobbyManagerMethod GetLobbyManager;
+
+ internal GetNetworkManagerMethod GetNetworkManager;
+
+ internal GetOverlayManagerMethod GetOverlayManager;
+
+ internal GetStorageManagerMethod GetStorageManager;
+
+ internal GetStoreManagerMethod GetStoreManager;
+
+ internal GetVoiceManagerMethod GetVoiceManager;
+
+ internal GetAchievementManagerMethod GetAchievementManager;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFICreateParams
+ {
+ internal Int64 ClientId;
+
+ internal UInt64 Flags;
+
+ internal IntPtr Events;
+
+ internal IntPtr EventData;
+
+ internal IntPtr ApplicationEvents;
+
+ internal UInt32 ApplicationVersion;
+
+ internal IntPtr UserEvents;
+
+ internal UInt32 UserVersion;
+
+ internal IntPtr ImageEvents;
+
+ internal UInt32 ImageVersion;
+
+ internal IntPtr ActivityEvents;
+
+ internal UInt32 ActivityVersion;
+
+ internal IntPtr RelationshipEvents;
+
+ internal UInt32 RelationshipVersion;
+
+ internal IntPtr LobbyEvents;
+
+ internal UInt32 LobbyVersion;
+
+ internal IntPtr NetworkEvents;
+
+ internal UInt32 NetworkVersion;
+
+ internal IntPtr OverlayEvents;
+
+ internal UInt32 OverlayVersion;
+
+ internal IntPtr StorageEvents;
+
+ internal UInt32 StorageVersion;
+
+ internal IntPtr StoreEvents;
+
+ internal UInt32 StoreVersion;
+
+ internal IntPtr VoiceEvents;
+
+ internal UInt32 VoiceVersion;
+
+ internal IntPtr AchievementEvents;
+
+ internal UInt32 AchievementVersion;
+ }
+
+ [DllImport(Constants.DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
+ private static extern Result DiscordCreate(UInt32 version, ref FFICreateParams createParams, out IntPtr manager);
+
+ public delegate void SetLogHookHandler(LogLevel level, string message);
+
+ private GCHandle SelfHandle;
+
+ private IntPtr EventsPtr;
+
+ private FFIEvents Events;
+
+ private IntPtr ApplicationEventsPtr;
+
+ private ApplicationManager.FFIEvents ApplicationEvents;
+
+ internal ApplicationManager ApplicationManagerInstance;
+
+ private IntPtr UserEventsPtr;
+
+ private UserManager.FFIEvents UserEvents;
+
+ internal UserManager UserManagerInstance;
+
+ private IntPtr ImageEventsPtr;
+
+ private ImageManager.FFIEvents ImageEvents;
+
+ internal ImageManager ImageManagerInstance;
+
+ private IntPtr ActivityEventsPtr;
+
+ private ActivityManager.FFIEvents ActivityEvents;
+
+ internal ActivityManager ActivityManagerInstance;
+
+ private IntPtr RelationshipEventsPtr;
+
+ private RelationshipManager.FFIEvents RelationshipEvents;
+
+ internal RelationshipManager RelationshipManagerInstance;
+
+ private IntPtr LobbyEventsPtr;
+
+ private LobbyManager.FFIEvents LobbyEvents;
+
+ internal LobbyManager LobbyManagerInstance;
+
+ private IntPtr NetworkEventsPtr;
+
+ private NetworkManager.FFIEvents NetworkEvents;
+
+ internal NetworkManager NetworkManagerInstance;
+
+ private IntPtr OverlayEventsPtr;
+
+ private OverlayManager.FFIEvents OverlayEvents;
+
+ internal OverlayManager OverlayManagerInstance;
+
+ private IntPtr StorageEventsPtr;
+
+ private StorageManager.FFIEvents StorageEvents;
+
+ internal StorageManager StorageManagerInstance;
+
+ private IntPtr StoreEventsPtr;
+
+ private StoreManager.FFIEvents StoreEvents;
+
+ internal StoreManager StoreManagerInstance;
+
+ private IntPtr VoiceEventsPtr;
+
+ private VoiceManager.FFIEvents VoiceEvents;
+
+ internal VoiceManager VoiceManagerInstance;
+
+ private IntPtr AchievementEventsPtr;
+
+ private AchievementManager.FFIEvents AchievementEvents;
+
+ internal AchievementManager AchievementManagerInstance;
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ private GCHandle? setLogHook;
+
+ public Discord(Int64 clientId, UInt64 flags)
+ {
+ FFICreateParams createParams;
+ createParams.ClientId = clientId;
+ createParams.Flags = flags;
+ Events = new FFIEvents();
+ EventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(Events));
+ createParams.Events = EventsPtr;
+ SelfHandle = GCHandle.Alloc(this);
+ createParams.EventData = GCHandle.ToIntPtr(SelfHandle);
+ ApplicationEvents = new ApplicationManager.FFIEvents();
+ ApplicationEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ApplicationEvents));
+ createParams.ApplicationEvents = ApplicationEventsPtr;
+ createParams.ApplicationVersion = 1;
+ UserEvents = new UserManager.FFIEvents();
+ UserEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(UserEvents));
+ createParams.UserEvents = UserEventsPtr;
+ createParams.UserVersion = 1;
+ ImageEvents = new ImageManager.FFIEvents();
+ ImageEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ImageEvents));
+ createParams.ImageEvents = ImageEventsPtr;
+ createParams.ImageVersion = 1;
+ ActivityEvents = new ActivityManager.FFIEvents();
+ ActivityEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ActivityEvents));
+ createParams.ActivityEvents = ActivityEventsPtr;
+ createParams.ActivityVersion = 1;
+ RelationshipEvents = new RelationshipManager.FFIEvents();
+ RelationshipEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(RelationshipEvents));
+ createParams.RelationshipEvents = RelationshipEventsPtr;
+ createParams.RelationshipVersion = 1;
+ LobbyEvents = new LobbyManager.FFIEvents();
+ LobbyEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(LobbyEvents));
+ createParams.LobbyEvents = LobbyEventsPtr;
+ createParams.LobbyVersion = 1;
+ NetworkEvents = new NetworkManager.FFIEvents();
+ NetworkEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(NetworkEvents));
+ createParams.NetworkEvents = NetworkEventsPtr;
+ createParams.NetworkVersion = 1;
+ OverlayEvents = new OverlayManager.FFIEvents();
+ OverlayEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(OverlayEvents));
+ createParams.OverlayEvents = OverlayEventsPtr;
+ createParams.OverlayVersion = 1;
+ StorageEvents = new StorageManager.FFIEvents();
+ StorageEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(StorageEvents));
+ createParams.StorageEvents = StorageEventsPtr;
+ createParams.StorageVersion = 1;
+ StoreEvents = new StoreManager.FFIEvents();
+ StoreEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(StoreEvents));
+ createParams.StoreEvents = StoreEventsPtr;
+ createParams.StoreVersion = 1;
+ VoiceEvents = new VoiceManager.FFIEvents();
+ VoiceEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(VoiceEvents));
+ createParams.VoiceEvents = VoiceEventsPtr;
+ createParams.VoiceVersion = 1;
+ AchievementEvents = new AchievementManager.FFIEvents();
+ AchievementEventsPtr = Marshal.AllocHGlobal(Marshal.SizeOf(AchievementEvents));
+ createParams.AchievementEvents = AchievementEventsPtr;
+ createParams.AchievementVersion = 1;
+ InitEvents(EventsPtr, ref Events);
+ var result = DiscordCreate(2, ref createParams, out MethodsPtr);
+ if (result != Result.Ok)
+ {
+ Dispose();
+ throw new ResultException(result);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public void Dispose()
+ {
+ if (MethodsPtr != IntPtr.Zero)
+ {
+ Methods.Destroy(MethodsPtr);
+ }
+ SelfHandle.Free();
+ Marshal.FreeHGlobal(EventsPtr);
+ Marshal.FreeHGlobal(ApplicationEventsPtr);
+ Marshal.FreeHGlobal(UserEventsPtr);
+ Marshal.FreeHGlobal(ImageEventsPtr);
+ Marshal.FreeHGlobal(ActivityEventsPtr);
+ Marshal.FreeHGlobal(RelationshipEventsPtr);
+ Marshal.FreeHGlobal(LobbyEventsPtr);
+ Marshal.FreeHGlobal(NetworkEventsPtr);
+ Marshal.FreeHGlobal(OverlayEventsPtr);
+ Marshal.FreeHGlobal(StorageEventsPtr);
+ Marshal.FreeHGlobal(StoreEventsPtr);
+ Marshal.FreeHGlobal(VoiceEventsPtr);
+ Marshal.FreeHGlobal(AchievementEventsPtr);
+ if (setLogHook.HasValue) {
+ setLogHook.Value.Free();
+ }
+ }
+
+ public void RunCallbacks()
+ {
+ var res = Methods.RunCallbacks(MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void SetLogHookCallbackImpl(IntPtr ptr, LogLevel level, string message)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SetLogHookHandler callback = (SetLogHookHandler)h.Target;
+ callback(level, message);
+ }
+
+ public void SetLogHook(LogLevel minLevel, SetLogHookHandler callback)
+ {
+ if (setLogHook.HasValue) {
+ setLogHook.Value.Free();
+ }
+ setLogHook = GCHandle.Alloc(callback);
+ Methods.SetLogHook(MethodsPtr, minLevel, GCHandle.ToIntPtr(setLogHook.Value), SetLogHookCallbackImpl);
+ }
+
+ public ApplicationManager GetApplicationManager()
+ {
+ if (ApplicationManagerInstance == null) {
+ ApplicationManagerInstance = new ApplicationManager(
+ Methods.GetApplicationManager(MethodsPtr),
+ ApplicationEventsPtr,
+ ref ApplicationEvents
+ );
+ }
+ return ApplicationManagerInstance;
+ }
+
+ public UserManager GetUserManager()
+ {
+ if (UserManagerInstance == null) {
+ UserManagerInstance = new UserManager(
+ Methods.GetUserManager(MethodsPtr),
+ UserEventsPtr,
+ ref UserEvents
+ );
+ }
+ return UserManagerInstance;
+ }
+
+ public ImageManager GetImageManager()
+ {
+ if (ImageManagerInstance == null) {
+ ImageManagerInstance = new ImageManager(
+ Methods.GetImageManager(MethodsPtr),
+ ImageEventsPtr,
+ ref ImageEvents
+ );
+ }
+ return ImageManagerInstance;
+ }
+
+ public ActivityManager GetActivityManager()
+ {
+ if (ActivityManagerInstance == null) {
+ ActivityManagerInstance = new ActivityManager(
+ Methods.GetActivityManager(MethodsPtr),
+ ActivityEventsPtr,
+ ref ActivityEvents
+ );
+ }
+ return ActivityManagerInstance;
+ }
+
+ public RelationshipManager GetRelationshipManager()
+ {
+ if (RelationshipManagerInstance == null) {
+ RelationshipManagerInstance = new RelationshipManager(
+ Methods.GetRelationshipManager(MethodsPtr),
+ RelationshipEventsPtr,
+ ref RelationshipEvents
+ );
+ }
+ return RelationshipManagerInstance;
+ }
+
+ public LobbyManager GetLobbyManager()
+ {
+ if (LobbyManagerInstance == null) {
+ LobbyManagerInstance = new LobbyManager(
+ Methods.GetLobbyManager(MethodsPtr),
+ LobbyEventsPtr,
+ ref LobbyEvents
+ );
+ }
+ return LobbyManagerInstance;
+ }
+
+ public NetworkManager GetNetworkManager()
+ {
+ if (NetworkManagerInstance == null) {
+ NetworkManagerInstance = new NetworkManager(
+ Methods.GetNetworkManager(MethodsPtr),
+ NetworkEventsPtr,
+ ref NetworkEvents
+ );
+ }
+ return NetworkManagerInstance;
+ }
+
+ public OverlayManager GetOverlayManager()
+ {
+ if (OverlayManagerInstance == null) {
+ OverlayManagerInstance = new OverlayManager(
+ Methods.GetOverlayManager(MethodsPtr),
+ OverlayEventsPtr,
+ ref OverlayEvents
+ );
+ }
+ return OverlayManagerInstance;
+ }
+
+ public StorageManager GetStorageManager()
+ {
+ if (StorageManagerInstance == null) {
+ StorageManagerInstance = new StorageManager(
+ Methods.GetStorageManager(MethodsPtr),
+ StorageEventsPtr,
+ ref StorageEvents
+ );
+ }
+ return StorageManagerInstance;
+ }
+
+ public StoreManager GetStoreManager()
+ {
+ if (StoreManagerInstance == null) {
+ StoreManagerInstance = new StoreManager(
+ Methods.GetStoreManager(MethodsPtr),
+ StoreEventsPtr,
+ ref StoreEvents
+ );
+ }
+ return StoreManagerInstance;
+ }
+
+ public VoiceManager GetVoiceManager()
+ {
+ if (VoiceManagerInstance == null) {
+ VoiceManagerInstance = new VoiceManager(
+ Methods.GetVoiceManager(MethodsPtr),
+ VoiceEventsPtr,
+ ref VoiceEvents
+ );
+ }
+ return VoiceManagerInstance;
+ }
+
+ public AchievementManager GetAchievementManager()
+ {
+ if (AchievementManagerInstance == null) {
+ AchievementManagerInstance = new AchievementManager(
+ Methods.GetAchievementManager(MethodsPtr),
+ AchievementEventsPtr,
+ ref AchievementEvents
+ );
+ }
+ return AchievementManagerInstance;
+ }
+ }
+
+ internal partial class MonoPInvokeCallbackAttribute : Attribute
+ {
+
+ }
+
+ public partial class ApplicationManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ValidateOrExitCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ValidateOrExitMethod(IntPtr methodsPtr, IntPtr callbackData, ValidateOrExitCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetCurrentLocaleMethod(IntPtr methodsPtr, StringBuilder locale);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetCurrentBranchMethod(IntPtr methodsPtr, StringBuilder branch);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetOAuth2TokenCallback(IntPtr ptr, Result result, ref OAuth2Token oauth2Token);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetOAuth2TokenMethod(IntPtr methodsPtr, IntPtr callbackData, GetOAuth2TokenCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetTicketCallback(IntPtr ptr, Result result, [MarshalAs(UnmanagedType.LPStr)]ref string data);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetTicketMethod(IntPtr methodsPtr, IntPtr callbackData, GetTicketCallback callback);
+
+ internal ValidateOrExitMethod ValidateOrExit;
+
+ internal GetCurrentLocaleMethod GetCurrentLocale;
+
+ internal GetCurrentBranchMethod GetCurrentBranch;
+
+ internal GetOAuth2TokenMethod GetOAuth2Token;
+
+ internal GetTicketMethod GetTicket;
+ }
+
+ public delegate void ValidateOrExitHandler(Result result);
+
+ public delegate void GetOAuth2TokenHandler(Result result, ref OAuth2Token oauth2Token);
+
+ public delegate void GetTicketHandler(Result result, ref string data);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ internal ApplicationManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ [MonoPInvokeCallback]
+ private static void ValidateOrExitCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ValidateOrExitHandler callback = (ValidateOrExitHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void ValidateOrExit(ValidateOrExitHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ValidateOrExit(MethodsPtr, GCHandle.ToIntPtr(wrapped), ValidateOrExitCallbackImpl);
+ }
+
+ public string GetCurrentLocale()
+ {
+ var ret = new StringBuilder(128);
+ Methods.GetCurrentLocale(MethodsPtr, ret);
+ return ret.ToString();
+ }
+
+ public string GetCurrentBranch()
+ {
+ var ret = new StringBuilder(4096);
+ Methods.GetCurrentBranch(MethodsPtr, ret);
+ return ret.ToString();
+ }
+
+ [MonoPInvokeCallback]
+ private static void GetOAuth2TokenCallbackImpl(IntPtr ptr, Result result, ref OAuth2Token oauth2Token)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ GetOAuth2TokenHandler callback = (GetOAuth2TokenHandler)h.Target;
+ h.Free();
+ callback(result, ref oauth2Token);
+ }
+
+ public void GetOAuth2Token(GetOAuth2TokenHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.GetOAuth2Token(MethodsPtr, GCHandle.ToIntPtr(wrapped), GetOAuth2TokenCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void GetTicketCallbackImpl(IntPtr ptr, Result result, ref string data)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ GetTicketHandler callback = (GetTicketHandler)h.Target;
+ h.Free();
+ callback(result, ref data);
+ }
+
+ public void GetTicket(GetTicketHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.GetTicket(MethodsPtr, GCHandle.ToIntPtr(wrapped), GetTicketCallbackImpl);
+ }
+ }
+
+ public partial class UserManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CurrentUserUpdateHandler(IntPtr ptr);
+
+ internal CurrentUserUpdateHandler OnCurrentUserUpdate;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetCurrentUserMethod(IntPtr methodsPtr, ref User currentUser);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetUserCallback(IntPtr ptr, Result result, ref User user);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetUserMethod(IntPtr methodsPtr, Int64 userId, IntPtr callbackData, GetUserCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetCurrentUserPremiumTypeMethod(IntPtr methodsPtr, ref PremiumType premiumType);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result CurrentUserHasFlagMethod(IntPtr methodsPtr, UserFlag flag, ref bool hasFlag);
+
+ internal GetCurrentUserMethod GetCurrentUser;
+
+ internal GetUserMethod GetUser;
+
+ internal GetCurrentUserPremiumTypeMethod GetCurrentUserPremiumType;
+
+ internal CurrentUserHasFlagMethod CurrentUserHasFlag;
+ }
+
+ public delegate void GetUserHandler(Result result, ref User user);
+
+ public delegate void CurrentUserUpdateHandler();
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event CurrentUserUpdateHandler OnCurrentUserUpdate;
+
+ internal UserManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnCurrentUserUpdate = OnCurrentUserUpdateImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public User GetCurrentUser()
+ {
+ var ret = new User();
+ var res = Methods.GetCurrentUser(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void GetUserCallbackImpl(IntPtr ptr, Result result, ref User user)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ GetUserHandler callback = (GetUserHandler)h.Target;
+ h.Free();
+ callback(result, ref user);
+ }
+
+ public void GetUser(Int64 userId, GetUserHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.GetUser(MethodsPtr, userId, GCHandle.ToIntPtr(wrapped), GetUserCallbackImpl);
+ }
+
+ public PremiumType GetCurrentUserPremiumType()
+ {
+ var ret = new PremiumType();
+ var res = Methods.GetCurrentUserPremiumType(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public bool CurrentUserHasFlag(UserFlag flag)
+ {
+ var ret = new bool();
+ var res = Methods.CurrentUserHasFlag(MethodsPtr, flag, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnCurrentUserUpdateImpl(IntPtr ptr)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.UserManagerInstance.OnCurrentUserUpdate != null)
+ {
+ d.UserManagerInstance.OnCurrentUserUpdate.Invoke();
+ }
+ }
+ }
+
+ public partial class ImageManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchCallback(IntPtr ptr, Result result, ImageHandle handleResult);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchMethod(IntPtr methodsPtr, ImageHandle handle, bool refresh, IntPtr callbackData, FetchCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetDimensionsMethod(IntPtr methodsPtr, ImageHandle handle, ref ImageDimensions dimensions);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetDataMethod(IntPtr methodsPtr, ImageHandle handle, byte[] data, Int32 dataLen);
+
+ internal FetchMethod Fetch;
+
+ internal GetDimensionsMethod GetDimensions;
+
+ internal GetDataMethod GetData;
+ }
+
+ public delegate void FetchHandler(Result result, ImageHandle handleResult);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ internal ImageManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ [MonoPInvokeCallback]
+ private static void FetchCallbackImpl(IntPtr ptr, Result result, ImageHandle handleResult)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ FetchHandler callback = (FetchHandler)h.Target;
+ h.Free();
+ callback(result, handleResult);
+ }
+
+ public void Fetch(ImageHandle handle, bool refresh, FetchHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.Fetch(MethodsPtr, handle, refresh, GCHandle.ToIntPtr(wrapped), FetchCallbackImpl);
+ }
+
+ public ImageDimensions GetDimensions(ImageHandle handle)
+ {
+ var ret = new ImageDimensions();
+ var res = Methods.GetDimensions(MethodsPtr, handle, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public void GetData(ImageHandle handle, byte[] data)
+ {
+ var res = Methods.GetData(MethodsPtr, handle, data, data.Length);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+ }
+
+ public partial class ActivityManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ActivityJoinHandler(IntPtr ptr, [MarshalAs(UnmanagedType.LPStr)]string secret);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ActivitySpectateHandler(IntPtr ptr, [MarshalAs(UnmanagedType.LPStr)]string secret);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ActivityJoinRequestHandler(IntPtr ptr, ref User user);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ActivityInviteHandler(IntPtr ptr, ActivityActionType type, ref User user, ref Activity activity);
+
+ internal ActivityJoinHandler OnActivityJoin;
+
+ internal ActivitySpectateHandler OnActivitySpectate;
+
+ internal ActivityJoinRequestHandler OnActivityJoinRequest;
+
+ internal ActivityInviteHandler OnActivityInvite;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result RegisterCommandMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string command);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result RegisterSteamMethod(IntPtr methodsPtr, UInt32 steamId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateActivityCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateActivityMethod(IntPtr methodsPtr, ref Activity activity, IntPtr callbackData, UpdateActivityCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ClearActivityCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ClearActivityMethod(IntPtr methodsPtr, IntPtr callbackData, ClearActivityCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendRequestReplyCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendRequestReplyMethod(IntPtr methodsPtr, Int64 userId, ActivityJoinRequestReply reply, IntPtr callbackData, SendRequestReplyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendInviteCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendInviteMethod(IntPtr methodsPtr, Int64 userId, ActivityActionType type, [MarshalAs(UnmanagedType.LPStr)]string content, IntPtr callbackData, SendInviteCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void AcceptInviteCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void AcceptInviteMethod(IntPtr methodsPtr, Int64 userId, IntPtr callbackData, AcceptInviteCallback callback);
+
+ internal RegisterCommandMethod RegisterCommand;
+
+ internal RegisterSteamMethod RegisterSteam;
+
+ internal UpdateActivityMethod UpdateActivity;
+
+ internal ClearActivityMethod ClearActivity;
+
+ internal SendRequestReplyMethod SendRequestReply;
+
+ internal SendInviteMethod SendInvite;
+
+ internal AcceptInviteMethod AcceptInvite;
+ }
+
+ public delegate void UpdateActivityHandler(Result result);
+
+ public delegate void ClearActivityHandler(Result result);
+
+ public delegate void SendRequestReplyHandler(Result result);
+
+ public delegate void SendInviteHandler(Result result);
+
+ public delegate void AcceptInviteHandler(Result result);
+
+ public delegate void ActivityJoinHandler(string secret);
+
+ public delegate void ActivitySpectateHandler(string secret);
+
+ public delegate void ActivityJoinRequestHandler(ref User user);
+
+ public delegate void ActivityInviteHandler(ActivityActionType type, ref User user, ref Activity activity);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event ActivityJoinHandler OnActivityJoin;
+
+ public event ActivitySpectateHandler OnActivitySpectate;
+
+ public event ActivityJoinRequestHandler OnActivityJoinRequest;
+
+ public event ActivityInviteHandler OnActivityInvite;
+
+ internal ActivityManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnActivityJoin = OnActivityJoinImpl;
+ events.OnActivitySpectate = OnActivitySpectateImpl;
+ events.OnActivityJoinRequest = OnActivityJoinRequestImpl;
+ events.OnActivityInvite = OnActivityInviteImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public void RegisterCommand(string command)
+ {
+ var res = Methods.RegisterCommand(MethodsPtr, command);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public void RegisterSteam(UInt32 steamId)
+ {
+ var res = Methods.RegisterSteam(MethodsPtr, steamId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void UpdateActivityCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ UpdateActivityHandler callback = (UpdateActivityHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void UpdateActivity(Activity activity, UpdateActivityHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.UpdateActivity(MethodsPtr, ref activity, GCHandle.ToIntPtr(wrapped), UpdateActivityCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void ClearActivityCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ClearActivityHandler callback = (ClearActivityHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void ClearActivity(ClearActivityHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ClearActivity(MethodsPtr, GCHandle.ToIntPtr(wrapped), ClearActivityCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void SendRequestReplyCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SendRequestReplyHandler callback = (SendRequestReplyHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SendRequestReply(Int64 userId, ActivityJoinRequestReply reply, SendRequestReplyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SendRequestReply(MethodsPtr, userId, reply, GCHandle.ToIntPtr(wrapped), SendRequestReplyCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void SendInviteCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SendInviteHandler callback = (SendInviteHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SendInvite(Int64 userId, ActivityActionType type, string content, SendInviteHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SendInvite(MethodsPtr, userId, type, content, GCHandle.ToIntPtr(wrapped), SendInviteCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void AcceptInviteCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ AcceptInviteHandler callback = (AcceptInviteHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void AcceptInvite(Int64 userId, AcceptInviteHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.AcceptInvite(MethodsPtr, userId, GCHandle.ToIntPtr(wrapped), AcceptInviteCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnActivityJoinImpl(IntPtr ptr, string secret)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.ActivityManagerInstance.OnActivityJoin != null)
+ {
+ d.ActivityManagerInstance.OnActivityJoin.Invoke(secret);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnActivitySpectateImpl(IntPtr ptr, string secret)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.ActivityManagerInstance.OnActivitySpectate != null)
+ {
+ d.ActivityManagerInstance.OnActivitySpectate.Invoke(secret);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnActivityJoinRequestImpl(IntPtr ptr, ref User user)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.ActivityManagerInstance.OnActivityJoinRequest != null)
+ {
+ d.ActivityManagerInstance.OnActivityJoinRequest.Invoke(ref user);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnActivityInviteImpl(IntPtr ptr, ActivityActionType type, ref User user, ref Activity activity)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.ActivityManagerInstance.OnActivityInvite != null)
+ {
+ d.ActivityManagerInstance.OnActivityInvite.Invoke(type, ref user, ref activity);
+ }
+ }
+ }
+
+ public partial class RelationshipManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void RefreshHandler(IntPtr ptr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void RelationshipUpdateHandler(IntPtr ptr, ref Relationship relationship);
+
+ internal RefreshHandler OnRefresh;
+
+ internal RelationshipUpdateHandler OnRelationshipUpdate;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool FilterCallback(IntPtr ptr, ref Relationship relationship);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FilterMethod(IntPtr methodsPtr, IntPtr callbackData, FilterCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result CountMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMethod(IntPtr methodsPtr, Int64 userId, ref Relationship relationship);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetAtMethod(IntPtr methodsPtr, UInt32 index, ref Relationship relationship);
+
+ internal FilterMethod Filter;
+
+ internal CountMethod Count;
+
+ internal GetMethod Get;
+
+ internal GetAtMethod GetAt;
+ }
+
+ public delegate bool FilterHandler(ref Relationship relationship);
+
+ public delegate void RefreshHandler();
+
+ public delegate void RelationshipUpdateHandler(ref Relationship relationship);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event RefreshHandler OnRefresh;
+
+ public event RelationshipUpdateHandler OnRelationshipUpdate;
+
+ internal RelationshipManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnRefresh = OnRefreshImpl;
+ events.OnRelationshipUpdate = OnRelationshipUpdateImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ [MonoPInvokeCallback]
+ private static bool FilterCallbackImpl(IntPtr ptr, ref Relationship relationship)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ FilterHandler callback = (FilterHandler)h.Target;
+ return callback(ref relationship);
+ }
+
+ public void Filter(FilterHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.Filter(MethodsPtr, GCHandle.ToIntPtr(wrapped), FilterCallbackImpl);
+ wrapped.Free();
+ }
+
+ public Int32 Count()
+ {
+ var ret = new Int32();
+ var res = Methods.Count(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Relationship Get(Int64 userId)
+ {
+ var ret = new Relationship();
+ var res = Methods.Get(MethodsPtr, userId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Relationship GetAt(UInt32 index)
+ {
+ var ret = new Relationship();
+ var res = Methods.GetAt(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnRefreshImpl(IntPtr ptr)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.RelationshipManagerInstance.OnRefresh != null)
+ {
+ d.RelationshipManagerInstance.OnRefresh.Invoke();
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnRelationshipUpdateImpl(IntPtr ptr, ref Relationship relationship)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.RelationshipManagerInstance.OnRelationshipUpdate != null)
+ {
+ d.RelationshipManagerInstance.OnRelationshipUpdate.Invoke(ref relationship);
+ }
+ }
+ }
+
+ public partial class LobbyManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void LobbyUpdateHandler(IntPtr ptr, Int64 lobbyId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void LobbyDeleteHandler(IntPtr ptr, Int64 lobbyId, UInt32 reason);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void MemberConnectHandler(IntPtr ptr, Int64 lobbyId, Int64 userId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void MemberUpdateHandler(IntPtr ptr, Int64 lobbyId, Int64 userId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void MemberDisconnectHandler(IntPtr ptr, Int64 lobbyId, Int64 userId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void LobbyMessageHandler(IntPtr ptr, Int64 lobbyId, Int64 userId, IntPtr dataPtr, Int32 dataLen);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SpeakingHandler(IntPtr ptr, Int64 lobbyId, Int64 userId, bool speaking);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void NetworkMessageHandler(IntPtr ptr, Int64 lobbyId, Int64 userId, byte channelId, IntPtr dataPtr, Int32 dataLen);
+
+ internal LobbyUpdateHandler OnLobbyUpdate;
+
+ internal LobbyDeleteHandler OnLobbyDelete;
+
+ internal MemberConnectHandler OnMemberConnect;
+
+ internal MemberUpdateHandler OnMemberUpdate;
+
+ internal MemberDisconnectHandler OnMemberDisconnect;
+
+ internal LobbyMessageHandler OnLobbyMessage;
+
+ internal SpeakingHandler OnSpeaking;
+
+ internal NetworkMessageHandler OnNetworkMessage;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyCreateTransactionMethod(IntPtr methodsPtr, ref IntPtr transaction);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyUpdateTransactionMethod(IntPtr methodsPtr, Int64 lobbyId, ref IntPtr transaction);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMemberUpdateTransactionMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, ref IntPtr transaction);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CreateLobbyCallback(IntPtr ptr, Result result, ref Lobby lobby);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CreateLobbyMethod(IntPtr methodsPtr, IntPtr transaction, IntPtr callbackData, CreateLobbyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateLobbyCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateLobbyMethod(IntPtr methodsPtr, Int64 lobbyId, IntPtr transaction, IntPtr callbackData, UpdateLobbyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DeleteLobbyCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DeleteLobbyMethod(IntPtr methodsPtr, Int64 lobbyId, IntPtr callbackData, DeleteLobbyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectLobbyCallback(IntPtr ptr, Result result, ref Lobby lobby);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectLobbyMethod(IntPtr methodsPtr, Int64 lobbyId, [MarshalAs(UnmanagedType.LPStr)]string secret, IntPtr callbackData, ConnectLobbyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectLobbyWithActivitySecretCallback(IntPtr ptr, Result result, ref Lobby lobby);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectLobbyWithActivitySecretMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string activitySecret, IntPtr callbackData, ConnectLobbyWithActivitySecretCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DisconnectLobbyCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DisconnectLobbyMethod(IntPtr methodsPtr, Int64 lobbyId, IntPtr callbackData, DisconnectLobbyCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyMethod(IntPtr methodsPtr, Int64 lobbyId, ref Lobby lobby);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyActivitySecretMethod(IntPtr methodsPtr, Int64 lobbyId, StringBuilder secret);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyMetadataValueMethod(IntPtr methodsPtr, Int64 lobbyId, [MarshalAs(UnmanagedType.LPStr)]string key, StringBuilder value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyMetadataKeyMethod(IntPtr methodsPtr, Int64 lobbyId, Int32 index, StringBuilder key);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result LobbyMetadataCountMethod(IntPtr methodsPtr, Int64 lobbyId, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result MemberCountMethod(IntPtr methodsPtr, Int64 lobbyId, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMemberUserIdMethod(IntPtr methodsPtr, Int64 lobbyId, Int32 index, ref Int64 userId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMemberUserMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, ref User user);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMemberMetadataValueMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, [MarshalAs(UnmanagedType.LPStr)]string key, StringBuilder value);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetMemberMetadataKeyMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, Int32 index, StringBuilder key);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result MemberMetadataCountMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateMemberCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UpdateMemberMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, IntPtr transaction, IntPtr callbackData, UpdateMemberCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendLobbyMessageCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SendLobbyMessageMethod(IntPtr methodsPtr, Int64 lobbyId, byte[] data, Int32 dataLen, IntPtr callbackData, SendLobbyMessageCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetSearchQueryMethod(IntPtr methodsPtr, ref IntPtr query);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SearchCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SearchMethod(IntPtr methodsPtr, IntPtr query, IntPtr callbackData, SearchCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void LobbyCountMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLobbyIdMethod(IntPtr methodsPtr, Int32 index, ref Int64 lobbyId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectVoiceCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ConnectVoiceMethod(IntPtr methodsPtr, Int64 lobbyId, IntPtr callbackData, ConnectVoiceCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DisconnectVoiceCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void DisconnectVoiceMethod(IntPtr methodsPtr, Int64 lobbyId, IntPtr callbackData, DisconnectVoiceCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result ConnectNetworkMethod(IntPtr methodsPtr, Int64 lobbyId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result DisconnectNetworkMethod(IntPtr methodsPtr, Int64 lobbyId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result FlushNetworkMethod(IntPtr methodsPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result OpenNetworkChannelMethod(IntPtr methodsPtr, Int64 lobbyId, byte channelId, bool reliable);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SendNetworkMessageMethod(IntPtr methodsPtr, Int64 lobbyId, Int64 userId, byte channelId, byte[] data, Int32 dataLen);
+
+ internal GetLobbyCreateTransactionMethod GetLobbyCreateTransaction;
+
+ internal GetLobbyUpdateTransactionMethod GetLobbyUpdateTransaction;
+
+ internal GetMemberUpdateTransactionMethod GetMemberUpdateTransaction;
+
+ internal CreateLobbyMethod CreateLobby;
+
+ internal UpdateLobbyMethod UpdateLobby;
+
+ internal DeleteLobbyMethod DeleteLobby;
+
+ internal ConnectLobbyMethod ConnectLobby;
+
+ internal ConnectLobbyWithActivitySecretMethod ConnectLobbyWithActivitySecret;
+
+ internal DisconnectLobbyMethod DisconnectLobby;
+
+ internal GetLobbyMethod GetLobby;
+
+ internal GetLobbyActivitySecretMethod GetLobbyActivitySecret;
+
+ internal GetLobbyMetadataValueMethod GetLobbyMetadataValue;
+
+ internal GetLobbyMetadataKeyMethod GetLobbyMetadataKey;
+
+ internal LobbyMetadataCountMethod LobbyMetadataCount;
+
+ internal MemberCountMethod MemberCount;
+
+ internal GetMemberUserIdMethod GetMemberUserId;
+
+ internal GetMemberUserMethod GetMemberUser;
+
+ internal GetMemberMetadataValueMethod GetMemberMetadataValue;
+
+ internal GetMemberMetadataKeyMethod GetMemberMetadataKey;
+
+ internal MemberMetadataCountMethod MemberMetadataCount;
+
+ internal UpdateMemberMethod UpdateMember;
+
+ internal SendLobbyMessageMethod SendLobbyMessage;
+
+ internal GetSearchQueryMethod GetSearchQuery;
+
+ internal SearchMethod Search;
+
+ internal LobbyCountMethod LobbyCount;
+
+ internal GetLobbyIdMethod GetLobbyId;
+
+ internal ConnectVoiceMethod ConnectVoice;
+
+ internal DisconnectVoiceMethod DisconnectVoice;
+
+ internal ConnectNetworkMethod ConnectNetwork;
+
+ internal DisconnectNetworkMethod DisconnectNetwork;
+
+ internal FlushNetworkMethod FlushNetwork;
+
+ internal OpenNetworkChannelMethod OpenNetworkChannel;
+
+ internal SendNetworkMessageMethod SendNetworkMessage;
+ }
+
+ public delegate void CreateLobbyHandler(Result result, ref Lobby lobby);
+
+ public delegate void UpdateLobbyHandler(Result result);
+
+ public delegate void DeleteLobbyHandler(Result result);
+
+ public delegate void ConnectLobbyHandler(Result result, ref Lobby lobby);
+
+ public delegate void ConnectLobbyWithActivitySecretHandler(Result result, ref Lobby lobby);
+
+ public delegate void DisconnectLobbyHandler(Result result);
+
+ public delegate void UpdateMemberHandler(Result result);
+
+ public delegate void SendLobbyMessageHandler(Result result);
+
+ public delegate void SearchHandler(Result result);
+
+ public delegate void ConnectVoiceHandler(Result result);
+
+ public delegate void DisconnectVoiceHandler(Result result);
+
+ public delegate void LobbyUpdateHandler(Int64 lobbyId);
+
+ public delegate void LobbyDeleteHandler(Int64 lobbyId, UInt32 reason);
+
+ public delegate void MemberConnectHandler(Int64 lobbyId, Int64 userId);
+
+ public delegate void MemberUpdateHandler(Int64 lobbyId, Int64 userId);
+
+ public delegate void MemberDisconnectHandler(Int64 lobbyId, Int64 userId);
+
+ public delegate void LobbyMessageHandler(Int64 lobbyId, Int64 userId, byte[] data);
+
+ public delegate void SpeakingHandler(Int64 lobbyId, Int64 userId, bool speaking);
+
+ public delegate void NetworkMessageHandler(Int64 lobbyId, Int64 userId, byte channelId, byte[] data);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event LobbyUpdateHandler OnLobbyUpdate;
+
+ public event LobbyDeleteHandler OnLobbyDelete;
+
+ public event MemberConnectHandler OnMemberConnect;
+
+ public event MemberUpdateHandler OnMemberUpdate;
+
+ public event MemberDisconnectHandler OnMemberDisconnect;
+
+ public event LobbyMessageHandler OnLobbyMessage;
+
+ public event SpeakingHandler OnSpeaking;
+
+ public event NetworkMessageHandler OnNetworkMessage;
+
+ internal LobbyManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnLobbyUpdate = OnLobbyUpdateImpl;
+ events.OnLobbyDelete = OnLobbyDeleteImpl;
+ events.OnMemberConnect = OnMemberConnectImpl;
+ events.OnMemberUpdate = OnMemberUpdateImpl;
+ events.OnMemberDisconnect = OnMemberDisconnectImpl;
+ events.OnLobbyMessage = OnLobbyMessageImpl;
+ events.OnSpeaking = OnSpeakingImpl;
+ events.OnNetworkMessage = OnNetworkMessageImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public LobbyTransaction GetLobbyCreateTransaction()
+ {
+ var ret = new LobbyTransaction();
+ var res = Methods.GetLobbyCreateTransaction(MethodsPtr, ref ret.MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public LobbyTransaction GetLobbyUpdateTransaction(Int64 lobbyId)
+ {
+ var ret = new LobbyTransaction();
+ var res = Methods.GetLobbyUpdateTransaction(MethodsPtr, lobbyId, ref ret.MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public LobbyMemberTransaction GetMemberUpdateTransaction(Int64 lobbyId, Int64 userId)
+ {
+ var ret = new LobbyMemberTransaction();
+ var res = Methods.GetMemberUpdateTransaction(MethodsPtr, lobbyId, userId, ref ret.MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void CreateLobbyCallbackImpl(IntPtr ptr, Result result, ref Lobby lobby)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ CreateLobbyHandler callback = (CreateLobbyHandler)h.Target;
+ h.Free();
+ callback(result, ref lobby);
+ }
+
+ public void CreateLobby(LobbyTransaction transaction, CreateLobbyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.CreateLobby(MethodsPtr, transaction.MethodsPtr, GCHandle.ToIntPtr(wrapped), CreateLobbyCallbackImpl);
+ transaction.MethodsPtr = IntPtr.Zero;
+ }
+
+ [MonoPInvokeCallback]
+ private static void UpdateLobbyCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ UpdateLobbyHandler callback = (UpdateLobbyHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void UpdateLobby(Int64 lobbyId, LobbyTransaction transaction, UpdateLobbyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.UpdateLobby(MethodsPtr, lobbyId, transaction.MethodsPtr, GCHandle.ToIntPtr(wrapped), UpdateLobbyCallbackImpl);
+ transaction.MethodsPtr = IntPtr.Zero;
+ }
+
+ [MonoPInvokeCallback]
+ private static void DeleteLobbyCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ DeleteLobbyHandler callback = (DeleteLobbyHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void DeleteLobby(Int64 lobbyId, DeleteLobbyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.DeleteLobby(MethodsPtr, lobbyId, GCHandle.ToIntPtr(wrapped), DeleteLobbyCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void ConnectLobbyCallbackImpl(IntPtr ptr, Result result, ref Lobby lobby)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ConnectLobbyHandler callback = (ConnectLobbyHandler)h.Target;
+ h.Free();
+ callback(result, ref lobby);
+ }
+
+ public void ConnectLobby(Int64 lobbyId, string secret, ConnectLobbyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ConnectLobby(MethodsPtr, lobbyId, secret, GCHandle.ToIntPtr(wrapped), ConnectLobbyCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void ConnectLobbyWithActivitySecretCallbackImpl(IntPtr ptr, Result result, ref Lobby lobby)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ConnectLobbyWithActivitySecretHandler callback = (ConnectLobbyWithActivitySecretHandler)h.Target;
+ h.Free();
+ callback(result, ref lobby);
+ }
+
+ public void ConnectLobbyWithActivitySecret(string activitySecret, ConnectLobbyWithActivitySecretHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ConnectLobbyWithActivitySecret(MethodsPtr, activitySecret, GCHandle.ToIntPtr(wrapped), ConnectLobbyWithActivitySecretCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void DisconnectLobbyCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ DisconnectLobbyHandler callback = (DisconnectLobbyHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void DisconnectLobby(Int64 lobbyId, DisconnectLobbyHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.DisconnectLobby(MethodsPtr, lobbyId, GCHandle.ToIntPtr(wrapped), DisconnectLobbyCallbackImpl);
+ }
+
+ public Lobby GetLobby(Int64 lobbyId)
+ {
+ var ret = new Lobby();
+ var res = Methods.GetLobby(MethodsPtr, lobbyId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public string GetLobbyActivitySecret(Int64 lobbyId)
+ {
+ var ret = new StringBuilder(128);
+ var res = Methods.GetLobbyActivitySecret(MethodsPtr, lobbyId, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+
+ public string GetLobbyMetadataValue(Int64 lobbyId, string key)
+ {
+ var ret = new StringBuilder(4096);
+ var res = Methods.GetLobbyMetadataValue(MethodsPtr, lobbyId, key, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+
+ public string GetLobbyMetadataKey(Int64 lobbyId, Int32 index)
+ {
+ var ret = new StringBuilder(256);
+ var res = Methods.GetLobbyMetadataKey(MethodsPtr, lobbyId, index, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+
+ public Int32 LobbyMetadataCount(Int64 lobbyId)
+ {
+ var ret = new Int32();
+ var res = Methods.LobbyMetadataCount(MethodsPtr, lobbyId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Int32 MemberCount(Int64 lobbyId)
+ {
+ var ret = new Int32();
+ var res = Methods.MemberCount(MethodsPtr, lobbyId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Int64 GetMemberUserId(Int64 lobbyId, Int32 index)
+ {
+ var ret = new Int64();
+ var res = Methods.GetMemberUserId(MethodsPtr, lobbyId, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public User GetMemberUser(Int64 lobbyId, Int64 userId)
+ {
+ var ret = new User();
+ var res = Methods.GetMemberUser(MethodsPtr, lobbyId, userId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public string GetMemberMetadataValue(Int64 lobbyId, Int64 userId, string key)
+ {
+ var ret = new StringBuilder(4096);
+ var res = Methods.GetMemberMetadataValue(MethodsPtr, lobbyId, userId, key, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+
+ public string GetMemberMetadataKey(Int64 lobbyId, Int64 userId, Int32 index)
+ {
+ var ret = new StringBuilder(256);
+ var res = Methods.GetMemberMetadataKey(MethodsPtr, lobbyId, userId, index, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+
+ public Int32 MemberMetadataCount(Int64 lobbyId, Int64 userId)
+ {
+ var ret = new Int32();
+ var res = Methods.MemberMetadataCount(MethodsPtr, lobbyId, userId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void UpdateMemberCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ UpdateMemberHandler callback = (UpdateMemberHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void UpdateMember(Int64 lobbyId, Int64 userId, LobbyMemberTransaction transaction, UpdateMemberHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.UpdateMember(MethodsPtr, lobbyId, userId, transaction.MethodsPtr, GCHandle.ToIntPtr(wrapped), UpdateMemberCallbackImpl);
+ transaction.MethodsPtr = IntPtr.Zero;
+ }
+
+ [MonoPInvokeCallback]
+ private static void SendLobbyMessageCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SendLobbyMessageHandler callback = (SendLobbyMessageHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SendLobbyMessage(Int64 lobbyId, byte[] data, SendLobbyMessageHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SendLobbyMessage(MethodsPtr, lobbyId, data, data.Length, GCHandle.ToIntPtr(wrapped), SendLobbyMessageCallbackImpl);
+ }
+
+ public LobbySearchQuery GetSearchQuery()
+ {
+ var ret = new LobbySearchQuery();
+ var res = Methods.GetSearchQuery(MethodsPtr, ref ret.MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void SearchCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SearchHandler callback = (SearchHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void Search(LobbySearchQuery query, SearchHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.Search(MethodsPtr, query.MethodsPtr, GCHandle.ToIntPtr(wrapped), SearchCallbackImpl);
+ query.MethodsPtr = IntPtr.Zero;
+ }
+
+ public Int32 LobbyCount()
+ {
+ var ret = new Int32();
+ Methods.LobbyCount(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public Int64 GetLobbyId(Int32 index)
+ {
+ var ret = new Int64();
+ var res = Methods.GetLobbyId(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void ConnectVoiceCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ConnectVoiceHandler callback = (ConnectVoiceHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void ConnectVoice(Int64 lobbyId, ConnectVoiceHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ConnectVoice(MethodsPtr, lobbyId, GCHandle.ToIntPtr(wrapped), ConnectVoiceCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void DisconnectVoiceCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ DisconnectVoiceHandler callback = (DisconnectVoiceHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void DisconnectVoice(Int64 lobbyId, DisconnectVoiceHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.DisconnectVoice(MethodsPtr, lobbyId, GCHandle.ToIntPtr(wrapped), DisconnectVoiceCallbackImpl);
+ }
+
+ public void ConnectNetwork(Int64 lobbyId)
+ {
+ var res = Methods.ConnectNetwork(MethodsPtr, lobbyId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public void DisconnectNetwork(Int64 lobbyId)
+ {
+ var res = Methods.DisconnectNetwork(MethodsPtr, lobbyId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public void FlushNetwork()
+ {
+ var res = Methods.FlushNetwork(MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public void OpenNetworkChannel(Int64 lobbyId, byte channelId, bool reliable)
+ {
+ var res = Methods.OpenNetworkChannel(MethodsPtr, lobbyId, channelId, reliable);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public void SendNetworkMessage(Int64 lobbyId, Int64 userId, byte channelId, byte[] data)
+ {
+ var res = Methods.SendNetworkMessage(MethodsPtr, lobbyId, userId, channelId, data, data.Length);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnLobbyUpdateImpl(IntPtr ptr, Int64 lobbyId)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnLobbyUpdate != null)
+ {
+ d.LobbyManagerInstance.OnLobbyUpdate.Invoke(lobbyId);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnLobbyDeleteImpl(IntPtr ptr, Int64 lobbyId, UInt32 reason)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnLobbyDelete != null)
+ {
+ d.LobbyManagerInstance.OnLobbyDelete.Invoke(lobbyId, reason);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnMemberConnectImpl(IntPtr ptr, Int64 lobbyId, Int64 userId)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnMemberConnect != null)
+ {
+ d.LobbyManagerInstance.OnMemberConnect.Invoke(lobbyId, userId);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnMemberUpdateImpl(IntPtr ptr, Int64 lobbyId, Int64 userId)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnMemberUpdate != null)
+ {
+ d.LobbyManagerInstance.OnMemberUpdate.Invoke(lobbyId, userId);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnMemberDisconnectImpl(IntPtr ptr, Int64 lobbyId, Int64 userId)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnMemberDisconnect != null)
+ {
+ d.LobbyManagerInstance.OnMemberDisconnect.Invoke(lobbyId, userId);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnLobbyMessageImpl(IntPtr ptr, Int64 lobbyId, Int64 userId, IntPtr dataPtr, Int32 dataLen)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnLobbyMessage != null)
+ {
+ byte[] data = new byte[dataLen];
+ Marshal.Copy(dataPtr, data, 0, (int)dataLen);
+ d.LobbyManagerInstance.OnLobbyMessage.Invoke(lobbyId, userId, data);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnSpeakingImpl(IntPtr ptr, Int64 lobbyId, Int64 userId, bool speaking)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnSpeaking != null)
+ {
+ d.LobbyManagerInstance.OnSpeaking.Invoke(lobbyId, userId, speaking);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnNetworkMessageImpl(IntPtr ptr, Int64 lobbyId, Int64 userId, byte channelId, IntPtr dataPtr, Int32 dataLen)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.LobbyManagerInstance.OnNetworkMessage != null)
+ {
+ byte[] data = new byte[dataLen];
+ Marshal.Copy(dataPtr, data, 0, (int)dataLen);
+ d.LobbyManagerInstance.OnNetworkMessage.Invoke(lobbyId, userId, channelId, data);
+ }
+ }
+ }
+
+ public partial class NetworkManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void MessageHandler(IntPtr ptr, UInt64 peerId, byte channelId, IntPtr dataPtr, Int32 dataLen);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void RouteUpdateHandler(IntPtr ptr, [MarshalAs(UnmanagedType.LPStr)]string routeData);
+
+ internal MessageHandler OnMessage;
+
+ internal RouteUpdateHandler OnRouteUpdate;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void GetPeerIdMethod(IntPtr methodsPtr, ref UInt64 peerId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result FlushMethod(IntPtr methodsPtr);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result OpenPeerMethod(IntPtr methodsPtr, UInt64 peerId, [MarshalAs(UnmanagedType.LPStr)]string routeData);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result UpdatePeerMethod(IntPtr methodsPtr, UInt64 peerId, [MarshalAs(UnmanagedType.LPStr)]string routeData);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result ClosePeerMethod(IntPtr methodsPtr, UInt64 peerId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result OpenChannelMethod(IntPtr methodsPtr, UInt64 peerId, byte channelId, bool reliable);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result CloseChannelMethod(IntPtr methodsPtr, UInt64 peerId, byte channelId);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SendMessageMethod(IntPtr methodsPtr, UInt64 peerId, byte channelId, byte[] data, Int32 dataLen);
+
+ internal GetPeerIdMethod GetPeerId;
+
+ internal FlushMethod Flush;
+
+ internal OpenPeerMethod OpenPeer;
+
+ internal UpdatePeerMethod UpdatePeer;
+
+ internal ClosePeerMethod ClosePeer;
+
+ internal OpenChannelMethod OpenChannel;
+
+ internal CloseChannelMethod CloseChannel;
+
+ internal SendMessageMethod SendMessage;
+ }
+
+ public delegate void MessageHandler(UInt64 peerId, byte channelId, byte[] data);
+
+ public delegate void RouteUpdateHandler(string routeData);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event MessageHandler OnMessage;
+
+ public event RouteUpdateHandler OnRouteUpdate;
+
+ internal NetworkManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnMessage = OnMessageImpl;
+ events.OnRouteUpdate = OnRouteUpdateImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ /// <summary>
+ /// Get the local peer ID for this process.
+ /// </summary>
+ public UInt64 GetPeerId()
+ {
+ var ret = new UInt64();
+ Methods.GetPeerId(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ /// <summary>
+ /// Send pending network messages.
+ /// </summary>
+ public void Flush()
+ {
+ var res = Methods.Flush(MethodsPtr);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Open a connection to a remote peer.
+ /// </summary>
+ public void OpenPeer(UInt64 peerId, string routeData)
+ {
+ var res = Methods.OpenPeer(MethodsPtr, peerId, routeData);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Update the route data for a connected peer.
+ /// </summary>
+ public void UpdatePeer(UInt64 peerId, string routeData)
+ {
+ var res = Methods.UpdatePeer(MethodsPtr, peerId, routeData);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Close the connection to a remote peer.
+ /// </summary>
+ public void ClosePeer(UInt64 peerId)
+ {
+ var res = Methods.ClosePeer(MethodsPtr, peerId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Open a message channel to a connected peer.
+ /// </summary>
+ public void OpenChannel(UInt64 peerId, byte channelId, bool reliable)
+ {
+ var res = Methods.OpenChannel(MethodsPtr, peerId, channelId, reliable);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Close a message channel to a connected peer.
+ /// </summary>
+ public void CloseChannel(UInt64 peerId, byte channelId)
+ {
+ var res = Methods.CloseChannel(MethodsPtr, peerId, channelId);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ /// <summary>
+ /// Send a message to a connected peer over an opened message channel.
+ /// </summary>
+ public void SendMessage(UInt64 peerId, byte channelId, byte[] data)
+ {
+ var res = Methods.SendMessage(MethodsPtr, peerId, channelId, data, data.Length);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnMessageImpl(IntPtr ptr, UInt64 peerId, byte channelId, IntPtr dataPtr, Int32 dataLen)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.NetworkManagerInstance.OnMessage != null)
+ {
+ byte[] data = new byte[dataLen];
+ Marshal.Copy(dataPtr, data, 0, (int)dataLen);
+ d.NetworkManagerInstance.OnMessage.Invoke(peerId, channelId, data);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnRouteUpdateImpl(IntPtr ptr, string routeData)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.NetworkManagerInstance.OnRouteUpdate != null)
+ {
+ d.NetworkManagerInstance.OnRouteUpdate.Invoke(routeData);
+ }
+ }
+ }
+
+ public partial class OverlayManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ToggleHandler(IntPtr ptr, bool locked);
+
+ internal ToggleHandler OnToggle;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void IsEnabledMethod(IntPtr methodsPtr, ref bool enabled);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void IsLockedMethod(IntPtr methodsPtr, ref bool locked);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetLockedCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetLockedMethod(IntPtr methodsPtr, bool locked, IntPtr callbackData, SetLockedCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenActivityInviteCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenActivityInviteMethod(IntPtr methodsPtr, ActivityActionType type, IntPtr callbackData, OpenActivityInviteCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenGuildInviteCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenGuildInviteMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string code, IntPtr callbackData, OpenGuildInviteCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenVoiceSettingsCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void OpenVoiceSettingsMethod(IntPtr methodsPtr, IntPtr callbackData, OpenVoiceSettingsCallback callback);
+
+ internal IsEnabledMethod IsEnabled;
+
+ internal IsLockedMethod IsLocked;
+
+ internal SetLockedMethod SetLocked;
+
+ internal OpenActivityInviteMethod OpenActivityInvite;
+
+ internal OpenGuildInviteMethod OpenGuildInvite;
+
+ internal OpenVoiceSettingsMethod OpenVoiceSettings;
+ }
+
+ public delegate void SetLockedHandler(Result result);
+
+ public delegate void OpenActivityInviteHandler(Result result);
+
+ public delegate void OpenGuildInviteHandler(Result result);
+
+ public delegate void OpenVoiceSettingsHandler(Result result);
+
+ public delegate void ToggleHandler(bool locked);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event ToggleHandler OnToggle;
+
+ internal OverlayManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnToggle = OnToggleImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public bool IsEnabled()
+ {
+ var ret = new bool();
+ Methods.IsEnabled(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public bool IsLocked()
+ {
+ var ret = new bool();
+ Methods.IsLocked(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void SetLockedCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SetLockedHandler callback = (SetLockedHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SetLocked(bool locked, SetLockedHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SetLocked(MethodsPtr, locked, GCHandle.ToIntPtr(wrapped), SetLockedCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OpenActivityInviteCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ OpenActivityInviteHandler callback = (OpenActivityInviteHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void OpenActivityInvite(ActivityActionType type, OpenActivityInviteHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.OpenActivityInvite(MethodsPtr, type, GCHandle.ToIntPtr(wrapped), OpenActivityInviteCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OpenGuildInviteCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ OpenGuildInviteHandler callback = (OpenGuildInviteHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void OpenGuildInvite(string code, OpenGuildInviteHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.OpenGuildInvite(MethodsPtr, code, GCHandle.ToIntPtr(wrapped), OpenGuildInviteCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OpenVoiceSettingsCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ OpenVoiceSettingsHandler callback = (OpenVoiceSettingsHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void OpenVoiceSettings(OpenVoiceSettingsHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.OpenVoiceSettings(MethodsPtr, GCHandle.ToIntPtr(wrapped), OpenVoiceSettingsCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnToggleImpl(IntPtr ptr, bool locked)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.OverlayManagerInstance.OnToggle != null)
+ {
+ d.OverlayManagerInstance.OnToggle.Invoke(locked);
+ }
+ }
+ }
+
+ public partial class StorageManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result ReadMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, byte[] data, Int32 dataLen, ref UInt32 read);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ReadAsyncCallback(IntPtr ptr, Result result, IntPtr dataPtr, Int32 dataLen);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ReadAsyncMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, IntPtr callbackData, ReadAsyncCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ReadAsyncPartialCallback(IntPtr ptr, Result result, IntPtr dataPtr, Int32 dataLen);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ReadAsyncPartialMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, UInt64 offset, UInt64 length, IntPtr callbackData, ReadAsyncPartialCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result WriteMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, byte[] data, Int32 dataLen);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void WriteAsyncCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void WriteAsyncMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, byte[] data, Int32 dataLen, IntPtr callbackData, WriteAsyncCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result DeleteMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result ExistsMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, ref bool exists);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CountMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result StatMethod(IntPtr methodsPtr, [MarshalAs(UnmanagedType.LPStr)]string name, ref FileStat stat);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result StatAtMethod(IntPtr methodsPtr, Int32 index, ref FileStat stat);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetPathMethod(IntPtr methodsPtr, StringBuilder path);
+
+ internal ReadMethod Read;
+
+ internal ReadAsyncMethod ReadAsync;
+
+ internal ReadAsyncPartialMethod ReadAsyncPartial;
+
+ internal WriteMethod Write;
+
+ internal WriteAsyncMethod WriteAsync;
+
+ internal DeleteMethod Delete;
+
+ internal ExistsMethod Exists;
+
+ internal CountMethod Count;
+
+ internal StatMethod Stat;
+
+ internal StatAtMethod StatAt;
+
+ internal GetPathMethod GetPath;
+ }
+
+ public delegate void ReadAsyncHandler(Result result, byte[] data);
+
+ public delegate void ReadAsyncPartialHandler(Result result, byte[] data);
+
+ public delegate void WriteAsyncHandler(Result result);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ internal StorageManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public UInt32 Read(string name, byte[] data)
+ {
+ var ret = new UInt32();
+ var res = Methods.Read(MethodsPtr, name, data, data.Length, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void ReadAsyncCallbackImpl(IntPtr ptr, Result result, IntPtr dataPtr, Int32 dataLen)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ReadAsyncHandler callback = (ReadAsyncHandler)h.Target;
+ h.Free();
+ byte[] data = new byte[dataLen];
+ Marshal.Copy(dataPtr, data, 0, (int)dataLen);
+ callback(result, data);
+ }
+
+ public void ReadAsync(string name, ReadAsyncHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ReadAsync(MethodsPtr, name, GCHandle.ToIntPtr(wrapped), ReadAsyncCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void ReadAsyncPartialCallbackImpl(IntPtr ptr, Result result, IntPtr dataPtr, Int32 dataLen)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ ReadAsyncPartialHandler callback = (ReadAsyncPartialHandler)h.Target;
+ h.Free();
+ byte[] data = new byte[dataLen];
+ Marshal.Copy(dataPtr, data, 0, (int)dataLen);
+ callback(result, data);
+ }
+
+ public void ReadAsyncPartial(string name, UInt64 offset, UInt64 length, ReadAsyncPartialHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.ReadAsyncPartial(MethodsPtr, name, offset, length, GCHandle.ToIntPtr(wrapped), ReadAsyncPartialCallbackImpl);
+ }
+
+ public void Write(string name, byte[] data)
+ {
+ var res = Methods.Write(MethodsPtr, name, data, data.Length);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void WriteAsyncCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ WriteAsyncHandler callback = (WriteAsyncHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void WriteAsync(string name, byte[] data, WriteAsyncHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.WriteAsync(MethodsPtr, name, data, data.Length, GCHandle.ToIntPtr(wrapped), WriteAsyncCallbackImpl);
+ }
+
+ public void Delete(string name)
+ {
+ var res = Methods.Delete(MethodsPtr, name);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public bool Exists(string name)
+ {
+ var ret = new bool();
+ var res = Methods.Exists(MethodsPtr, name, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Int32 Count()
+ {
+ var ret = new Int32();
+ Methods.Count(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public FileStat Stat(string name)
+ {
+ var ret = new FileStat();
+ var res = Methods.Stat(MethodsPtr, name, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public FileStat StatAt(Int32 index)
+ {
+ var ret = new FileStat();
+ var res = Methods.StatAt(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public string GetPath()
+ {
+ var ret = new StringBuilder(4096);
+ var res = Methods.GetPath(MethodsPtr, ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret.ToString();
+ }
+ }
+
+ public partial class StoreManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void EntitlementCreateHandler(IntPtr ptr, ref Entitlement entitlement);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void EntitlementDeleteHandler(IntPtr ptr, ref Entitlement entitlement);
+
+ internal EntitlementCreateHandler OnEntitlementCreate;
+
+ internal EntitlementDeleteHandler OnEntitlementDelete;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchSkusCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchSkusMethod(IntPtr methodsPtr, IntPtr callbackData, FetchSkusCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CountSkusMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetSkuMethod(IntPtr methodsPtr, Int64 skuId, ref Sku sku);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetSkuAtMethod(IntPtr methodsPtr, Int32 index, ref Sku sku);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchEntitlementsCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchEntitlementsMethod(IntPtr methodsPtr, IntPtr callbackData, FetchEntitlementsCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CountEntitlementsMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetEntitlementMethod(IntPtr methodsPtr, Int64 entitlementId, ref Entitlement entitlement);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetEntitlementAtMethod(IntPtr methodsPtr, Int32 index, ref Entitlement entitlement);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result HasSkuEntitlementMethod(IntPtr methodsPtr, Int64 skuId, ref bool hasEntitlement);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void StartPurchaseCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void StartPurchaseMethod(IntPtr methodsPtr, Int64 skuId, IntPtr callbackData, StartPurchaseCallback callback);
+
+ internal FetchSkusMethod FetchSkus;
+
+ internal CountSkusMethod CountSkus;
+
+ internal GetSkuMethod GetSku;
+
+ internal GetSkuAtMethod GetSkuAt;
+
+ internal FetchEntitlementsMethod FetchEntitlements;
+
+ internal CountEntitlementsMethod CountEntitlements;
+
+ internal GetEntitlementMethod GetEntitlement;
+
+ internal GetEntitlementAtMethod GetEntitlementAt;
+
+ internal HasSkuEntitlementMethod HasSkuEntitlement;
+
+ internal StartPurchaseMethod StartPurchase;
+ }
+
+ public delegate void FetchSkusHandler(Result result);
+
+ public delegate void FetchEntitlementsHandler(Result result);
+
+ public delegate void StartPurchaseHandler(Result result);
+
+ public delegate void EntitlementCreateHandler(ref Entitlement entitlement);
+
+ public delegate void EntitlementDeleteHandler(ref Entitlement entitlement);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event EntitlementCreateHandler OnEntitlementCreate;
+
+ public event EntitlementDeleteHandler OnEntitlementDelete;
+
+ internal StoreManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnEntitlementCreate = OnEntitlementCreateImpl;
+ events.OnEntitlementDelete = OnEntitlementDeleteImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ [MonoPInvokeCallback]
+ private static void FetchSkusCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ FetchSkusHandler callback = (FetchSkusHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void FetchSkus(FetchSkusHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.FetchSkus(MethodsPtr, GCHandle.ToIntPtr(wrapped), FetchSkusCallbackImpl);
+ }
+
+ public Int32 CountSkus()
+ {
+ var ret = new Int32();
+ Methods.CountSkus(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public Sku GetSku(Int64 skuId)
+ {
+ var ret = new Sku();
+ var res = Methods.GetSku(MethodsPtr, skuId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Sku GetSkuAt(Int32 index)
+ {
+ var ret = new Sku();
+ var res = Methods.GetSkuAt(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void FetchEntitlementsCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ FetchEntitlementsHandler callback = (FetchEntitlementsHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void FetchEntitlements(FetchEntitlementsHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.FetchEntitlements(MethodsPtr, GCHandle.ToIntPtr(wrapped), FetchEntitlementsCallbackImpl);
+ }
+
+ public Int32 CountEntitlements()
+ {
+ var ret = new Int32();
+ Methods.CountEntitlements(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public Entitlement GetEntitlement(Int64 entitlementId)
+ {
+ var ret = new Entitlement();
+ var res = Methods.GetEntitlement(MethodsPtr, entitlementId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public Entitlement GetEntitlementAt(Int32 index)
+ {
+ var ret = new Entitlement();
+ var res = Methods.GetEntitlementAt(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public bool HasSkuEntitlement(Int64 skuId)
+ {
+ var ret = new bool();
+ var res = Methods.HasSkuEntitlement(MethodsPtr, skuId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void StartPurchaseCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ StartPurchaseHandler callback = (StartPurchaseHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void StartPurchase(Int64 skuId, StartPurchaseHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.StartPurchase(MethodsPtr, skuId, GCHandle.ToIntPtr(wrapped), StartPurchaseCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnEntitlementCreateImpl(IntPtr ptr, ref Entitlement entitlement)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.StoreManagerInstance.OnEntitlementCreate != null)
+ {
+ d.StoreManagerInstance.OnEntitlementCreate.Invoke(ref entitlement);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnEntitlementDeleteImpl(IntPtr ptr, ref Entitlement entitlement)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.StoreManagerInstance.OnEntitlementDelete != null)
+ {
+ d.StoreManagerInstance.OnEntitlementDelete.Invoke(ref entitlement);
+ }
+ }
+ }
+
+ public partial class VoiceManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SettingsUpdateHandler(IntPtr ptr);
+
+ internal SettingsUpdateHandler OnSettingsUpdate;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetInputModeMethod(IntPtr methodsPtr, ref InputMode inputMode);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetInputModeCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetInputModeMethod(IntPtr methodsPtr, InputMode inputMode, IntPtr callbackData, SetInputModeCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result IsSelfMuteMethod(IntPtr methodsPtr, ref bool mute);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetSelfMuteMethod(IntPtr methodsPtr, bool mute);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result IsSelfDeafMethod(IntPtr methodsPtr, ref bool deaf);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetSelfDeafMethod(IntPtr methodsPtr, bool deaf);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result IsLocalMuteMethod(IntPtr methodsPtr, Int64 userId, ref bool mute);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetLocalMuteMethod(IntPtr methodsPtr, Int64 userId, bool mute);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetLocalVolumeMethod(IntPtr methodsPtr, Int64 userId, ref byte volume);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result SetLocalVolumeMethod(IntPtr methodsPtr, Int64 userId, byte volume);
+
+ internal GetInputModeMethod GetInputMode;
+
+ internal SetInputModeMethod SetInputMode;
+
+ internal IsSelfMuteMethod IsSelfMute;
+
+ internal SetSelfMuteMethod SetSelfMute;
+
+ internal IsSelfDeafMethod IsSelfDeaf;
+
+ internal SetSelfDeafMethod SetSelfDeaf;
+
+ internal IsLocalMuteMethod IsLocalMute;
+
+ internal SetLocalMuteMethod SetLocalMute;
+
+ internal GetLocalVolumeMethod GetLocalVolume;
+
+ internal SetLocalVolumeMethod SetLocalVolume;
+ }
+
+ public delegate void SetInputModeHandler(Result result);
+
+ public delegate void SettingsUpdateHandler();
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event SettingsUpdateHandler OnSettingsUpdate;
+
+ internal VoiceManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnSettingsUpdate = OnSettingsUpdateImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ public InputMode GetInputMode()
+ {
+ var ret = new InputMode();
+ var res = Methods.GetInputMode(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void SetInputModeCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SetInputModeHandler callback = (SetInputModeHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SetInputMode(InputMode inputMode, SetInputModeHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SetInputMode(MethodsPtr, inputMode, GCHandle.ToIntPtr(wrapped), SetInputModeCallbackImpl);
+ }
+
+ public bool IsSelfMute()
+ {
+ var ret = new bool();
+ var res = Methods.IsSelfMute(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public void SetSelfMute(bool mute)
+ {
+ var res = Methods.SetSelfMute(MethodsPtr, mute);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public bool IsSelfDeaf()
+ {
+ var ret = new bool();
+ var res = Methods.IsSelfDeaf(MethodsPtr, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public void SetSelfDeaf(bool deaf)
+ {
+ var res = Methods.SetSelfDeaf(MethodsPtr, deaf);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public bool IsLocalMute(Int64 userId)
+ {
+ var ret = new bool();
+ var res = Methods.IsLocalMute(MethodsPtr, userId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public void SetLocalMute(Int64 userId, bool mute)
+ {
+ var res = Methods.SetLocalMute(MethodsPtr, userId, mute);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ public byte GetLocalVolume(Int64 userId)
+ {
+ var ret = new byte();
+ var res = Methods.GetLocalVolume(MethodsPtr, userId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public void SetLocalVolume(Int64 userId, byte volume)
+ {
+ var res = Methods.SetLocalVolume(MethodsPtr, userId, volume);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnSettingsUpdateImpl(IntPtr ptr)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.VoiceManagerInstance.OnSettingsUpdate != null)
+ {
+ d.VoiceManagerInstance.OnSettingsUpdate.Invoke();
+ }
+ }
+ }
+
+ public partial class AchievementManager
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIEvents
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void UserAchievementUpdateHandler(IntPtr ptr, ref UserAchievement userAchievement);
+
+ internal UserAchievementUpdateHandler OnUserAchievementUpdate;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal partial struct FFIMethods
+ {
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetUserAchievementCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void SetUserAchievementMethod(IntPtr methodsPtr, Int64 achievementId, byte percentComplete, IntPtr callbackData, SetUserAchievementCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchUserAchievementsCallback(IntPtr ptr, Result result);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void FetchUserAchievementsMethod(IntPtr methodsPtr, IntPtr callbackData, FetchUserAchievementsCallback callback);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void CountUserAchievementsMethod(IntPtr methodsPtr, ref Int32 count);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetUserAchievementMethod(IntPtr methodsPtr, Int64 userAchievementId, ref UserAchievement userAchievement);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate Result GetUserAchievementAtMethod(IntPtr methodsPtr, Int32 index, ref UserAchievement userAchievement);
+
+ internal SetUserAchievementMethod SetUserAchievement;
+
+ internal FetchUserAchievementsMethod FetchUserAchievements;
+
+ internal CountUserAchievementsMethod CountUserAchievements;
+
+ internal GetUserAchievementMethod GetUserAchievement;
+
+ internal GetUserAchievementAtMethod GetUserAchievementAt;
+ }
+
+ public delegate void SetUserAchievementHandler(Result result);
+
+ public delegate void FetchUserAchievementsHandler(Result result);
+
+ public delegate void UserAchievementUpdateHandler(ref UserAchievement userAchievement);
+
+ private IntPtr MethodsPtr;
+
+ private Object MethodsStructure;
+
+ private FFIMethods Methods
+ {
+ get
+ {
+ if (MethodsStructure == null)
+ {
+ MethodsStructure = Marshal.PtrToStructure(MethodsPtr, typeof(FFIMethods));
+ }
+ return (FFIMethods)MethodsStructure;
+ }
+
+ }
+
+ public event UserAchievementUpdateHandler OnUserAchievementUpdate;
+
+ internal AchievementManager(IntPtr ptr, IntPtr eventsPtr, ref FFIEvents events)
+ {
+ if (eventsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ InitEvents(eventsPtr, ref events);
+ MethodsPtr = ptr;
+ if (MethodsPtr == IntPtr.Zero) {
+ throw new ResultException(Result.InternalError);
+ }
+ }
+
+ private void InitEvents(IntPtr eventsPtr, ref FFIEvents events)
+ {
+ events.OnUserAchievementUpdate = OnUserAchievementUpdateImpl;
+ Marshal.StructureToPtr(events, eventsPtr, false);
+ }
+
+ [MonoPInvokeCallback]
+ private static void SetUserAchievementCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ SetUserAchievementHandler callback = (SetUserAchievementHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void SetUserAchievement(Int64 achievementId, byte percentComplete, SetUserAchievementHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.SetUserAchievement(MethodsPtr, achievementId, percentComplete, GCHandle.ToIntPtr(wrapped), SetUserAchievementCallbackImpl);
+ }
+
+ [MonoPInvokeCallback]
+ private static void FetchUserAchievementsCallbackImpl(IntPtr ptr, Result result)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ FetchUserAchievementsHandler callback = (FetchUserAchievementsHandler)h.Target;
+ h.Free();
+ callback(result);
+ }
+
+ public void FetchUserAchievements(FetchUserAchievementsHandler callback)
+ {
+ GCHandle wrapped = GCHandle.Alloc(callback);
+ Methods.FetchUserAchievements(MethodsPtr, GCHandle.ToIntPtr(wrapped), FetchUserAchievementsCallbackImpl);
+ }
+
+ public Int32 CountUserAchievements()
+ {
+ var ret = new Int32();
+ Methods.CountUserAchievements(MethodsPtr, ref ret);
+ return ret;
+ }
+
+ public UserAchievement GetUserAchievement(Int64 userAchievementId)
+ {
+ var ret = new UserAchievement();
+ var res = Methods.GetUserAchievement(MethodsPtr, userAchievementId, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ public UserAchievement GetUserAchievementAt(Int32 index)
+ {
+ var ret = new UserAchievement();
+ var res = Methods.GetUserAchievementAt(MethodsPtr, index, ref ret);
+ if (res != Result.Ok)
+ {
+ throw new ResultException(res);
+ }
+ return ret;
+ }
+
+ [MonoPInvokeCallback]
+ private static void OnUserAchievementUpdateImpl(IntPtr ptr, ref UserAchievement userAchievement)
+ {
+ GCHandle h = GCHandle.FromIntPtr(ptr);
+ Discord d = (Discord)h.Target;
+ if (d.AchievementManagerInstance.OnUserAchievementUpdate != null)
+ {
+ d.AchievementManagerInstance.OnUserAchievementUpdate.Invoke(ref userAchievement);
+ }
+ }
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/Core.cs.meta b/Assets/Plugins/DiscordGameSDK/Core.cs.meta
new file mode 100644
index 0000000..7617e54
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/Core.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e4d828f93ba636abf8eeb1ff2b217cbf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/ImageManager.cs b/Assets/Plugins/DiscordGameSDK/ImageManager.cs
new file mode 100644
index 0000000..292e230
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/ImageManager.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Runtime.InteropServices;
+#if UNITY_EDITOR || UNITY_STANDALONE
+using UnityEngine;
+#endif
+
+namespace Discord
+{
+ public partial struct ImageHandle
+ {
+ static public ImageHandle User(Int64 id)
+ {
+ return User(id, 128);
+ }
+
+ static public ImageHandle User(Int64 id, UInt32 size)
+ {
+ return new ImageHandle
+ {
+ Type = ImageType.User,
+ Id = id,
+ Size = size,
+ };
+ }
+ }
+
+ public partial class ImageManager
+ {
+ public void Fetch(ImageHandle handle, FetchHandler callback)
+ {
+ Fetch(handle, false, callback);
+ }
+
+ public byte[] GetData(ImageHandle handle)
+ {
+ var dimensions = GetDimensions(handle);
+ var data = new byte[dimensions.Width * dimensions.Height * 4];
+ GetData(handle, data);
+ return data;
+ }
+
+#if UNITY_EDITOR || UNITY_STANDALONE
+ public Texture2D GetTexture(ImageHandle handle)
+ {
+ var dimensions = GetDimensions(handle);
+ var texture = new Texture2D((int)dimensions.Width, (int)dimensions.Height, TextureFormat.RGBA32, false, true);
+ texture.LoadRawTextureData(GetData(handle));
+ texture.Apply();
+ return texture;
+ }
+#endif
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/ImageManager.cs.meta b/Assets/Plugins/DiscordGameSDK/ImageManager.cs.meta
new file mode 100644
index 0000000..3d50d54
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/ImageManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 97814a07c22d331d3953871fc8bf9e23
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/LobbyManager.cs b/Assets/Plugins/DiscordGameSDK/LobbyManager.cs
new file mode 100644
index 0000000..c914ba8
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/LobbyManager.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Discord
+{
+ public partial class LobbyManager
+ {
+ public IEnumerable<User> GetMemberUsers(Int64 lobbyID)
+ {
+ var memberCount = MemberCount(lobbyID);
+ var members = new List<User>();
+ for (var i = 0; i < memberCount; i++)
+ {
+ members.Add(GetMemberUser(lobbyID, GetMemberUserId(lobbyID, i)));
+ }
+ return members;
+ }
+
+ public void SendLobbyMessage(Int64 lobbyID, string data, SendLobbyMessageHandler handler)
+ {
+ SendLobbyMessage(lobbyID, Encoding.UTF8.GetBytes(data), handler);
+ }
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/LobbyManager.cs.meta b/Assets/Plugins/DiscordGameSDK/LobbyManager.cs.meta
new file mode 100644
index 0000000..2b7d402
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/LobbyManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 87a4ed26db6533d25aa27dd18878f906
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/StorageManager.cs b/Assets/Plugins/DiscordGameSDK/StorageManager.cs
new file mode 100644
index 0000000..65cfe72
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/StorageManager.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Discord
+{
+ public partial class StorageManager
+ {
+ public IEnumerable<FileStat> Files()
+ {
+ var fileCount = Count();
+ var files = new List<FileStat>();
+ for (var i = 0; i < fileCount; i++)
+ {
+ files.Add(StatAt(i));
+ }
+ return files;
+ }
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/StorageManager.cs.meta b/Assets/Plugins/DiscordGameSDK/StorageManager.cs.meta
new file mode 100644
index 0000000..2d33b58
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/StorageManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 96c8280fa7aa3b74ba62193e69e5eaf7
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/DiscordGameSDK/StoreManager.cs b/Assets/Plugins/DiscordGameSDK/StoreManager.cs
new file mode 100644
index 0000000..4864576
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/StoreManager.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Discord
+{
+ public partial class StoreManager
+ {
+ public IEnumerable<Entitlement> GetEntitlements()
+ {
+ var count = CountEntitlements();
+ var entitlements = new List<Entitlement>();
+ for (var i = 0; i < count; i++)
+ {
+ entitlements.Add(GetEntitlementAt(i));
+ }
+ return entitlements;
+ }
+
+ public IEnumerable<Sku> GetSkus()
+ {
+ var count = CountSkus();
+ var skus = new List<Sku>();
+ for (var i = 0; i < count; i++)
+ {
+ skus.Add(GetSkuAt(i));
+ }
+ return skus;
+ }
+ }
+}
diff --git a/Assets/Plugins/DiscordGameSDK/StoreManager.cs.meta b/Assets/Plugins/DiscordGameSDK/StoreManager.cs.meta
new file mode 100644
index 0000000..efbd3c8
--- /dev/null
+++ b/Assets/Plugins/DiscordGameSDK/StoreManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ec47bab9bbdf1914c9f2f5b2f4e98062
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86.meta b/Assets/Plugins/x86.meta
new file mode 100644
index 0000000..d6f7451
--- /dev/null
+++ b/Assets/Plugins/x86.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e1f3dcb6922e1ea68b7302986ad0f958
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86/discord_game_sdk.dll b/Assets/Plugins/x86/discord_game_sdk.dll
new file mode 100644
index 0000000..8f1ee0a
--- /dev/null
+++ b/Assets/Plugins/x86/discord_game_sdk.dll
Binary files differ
diff --git a/Assets/Plugins/x86/discord_game_sdk.dll.lib b/Assets/Plugins/x86/discord_game_sdk.dll.lib
new file mode 100644
index 0000000..58ec282
--- /dev/null
+++ b/Assets/Plugins/x86/discord_game_sdk.dll.lib
Binary files differ
diff --git a/Assets/Plugins/x86/discord_game_sdk.dll.lib.meta b/Assets/Plugins/x86/discord_game_sdk.dll.lib.meta
new file mode 100644
index 0000000..b00594b
--- /dev/null
+++ b/Assets/Plugins/x86/discord_game_sdk.dll.lib.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 39a41f7d2ed3ea8d688d774f593943bd
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86/discord_game_sdk.dll.meta b/Assets/Plugins/x86/discord_game_sdk.dll.meta
new file mode 100644
index 0000000..fd168f6
--- /dev/null
+++ b/Assets/Plugins/x86/discord_game_sdk.dll.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 4c7e8a782bdad32eabbd82a646917a71
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ DefaultValueInitialized: true
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64.meta b/Assets/Plugins/x86_64.meta
new file mode 100644
index 0000000..c281c92
--- /dev/null
+++ b/Assets/Plugins/x86_64.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2bffcc684a3842f2eabdbd56bf44c0a1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.bundle b/Assets/Plugins/x86_64/discord_game_sdk.bundle
new file mode 100644
index 0000000..24045f7
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.bundle
Binary files differ
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.bundle.meta b/Assets/Plugins/x86_64/discord_game_sdk.bundle.meta
new file mode 100644
index 0000000..74a6f4d
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.bundle.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 7691cdbfb1c9ee0f38d215b4e4392033
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dll b/Assets/Plugins/x86_64/discord_game_sdk.dll
new file mode 100644
index 0000000..10a8928
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dll
Binary files differ
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dll.lib b/Assets/Plugins/x86_64/discord_game_sdk.dll.lib
new file mode 100644
index 0000000..8ab3d4c
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dll.lib
Binary files differ
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dll.lib.meta b/Assets/Plugins/x86_64/discord_game_sdk.dll.lib.meta
new file mode 100644
index 0000000..6e20ebe
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dll.lib.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 10e7a841af5c4ef91a266ae16dfb4334
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dll.meta b/Assets/Plugins/x86_64/discord_game_sdk.dll.meta
new file mode 100644
index 0000000..fd1ede0
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dll.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 863ae08263ce48ca097fd7e62b182c94
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dylib b/Assets/Plugins/x86_64/discord_game_sdk.dylib
new file mode 100644
index 0000000..24045f7
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dylib
Binary files differ
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.dylib.meta b/Assets/Plugins/x86_64/discord_game_sdk.dylib.meta
new file mode 100644
index 0000000..5e9f218
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.dylib.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 7cbb90409a56b7dbd8ba5e0980c79c67
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.so b/Assets/Plugins/x86_64/discord_game_sdk.so
new file mode 100644
index 0000000..e465760
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.so
Binary files differ
diff --git a/Assets/Plugins/x86_64/discord_game_sdk.so.meta b/Assets/Plugins/x86_64/discord_game_sdk.so.meta
new file mode 100644
index 0000000..ff3fdde
--- /dev/null
+++ b/Assets/Plugins/x86_64/discord_game_sdk.so.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 596275f3bfa576959992164e1602579d
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
index 4e6dbf2..02b666f 100644
--- a/Assets/Scenes/SampleScene.unity
+++ b/Assets/Scenes/SampleScene.unity
@@ -98,7 +98,7 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 112000000, guid: 85940cb058f26929b958ecda793c46ec, type: 2}
- m_LightingSettings: {fileID: 0}
+ m_LightingSettings: {fileID: 1692146846}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@@ -202,6 +202,40 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 192542588}
m_CullTransparentMesh: 1
+--- !u!1 &197851618
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 197851619}
+ m_Layer: 0
+ m_Name: Environment
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &197851619
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 197851618}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 2.1999998, y: 3.9077988, z: -0.32567263}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1242979799}
+ - {fileID: 1082980580}
+ - {fileID: 882904941}
+ - {fileID: 1051259111}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &328979632
GameObject:
m_ObjectHideFlags: 0
@@ -307,13 +341,278 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 328979632}
- m_LocalRotation: {x: 0.20319879, y: 0.17767163, z: 0.1299313, w: 0.95407593}
- m_LocalPosition: {x: 2.2, y: 5.29, z: 0}
+ m_LocalRotation: {x: 0.2031988, y: 0.17767164, z: 0.12993132, w: 0.954076}
+ m_LocalPosition: {x: 16.256123, y: 40.442844, z: -54.144653}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 8
+ m_Father: {fileID: 882904941}
+ m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 19.972, y: 24.639, z: 19.915}
+--- !u!1001 &396713614
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1082980580}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalScale.y
+ value: -1.9
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalScale.z
+ value: -1.08
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 9.4
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 2.6
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -3.7000008
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ propertyPath: m_Name
+ value: tv
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+--- !u!4 &396713615 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: c8d8bc747cfd21a95b43dd3bd0d75607, type: 3}
+ m_PrefabInstance: {fileID: 396713614}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &418645354
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 1082980580}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1.4303069
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.9688394
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -3.6000004
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -90
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -180
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ propertyPath: m_Name
+ value: couch
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+--- !u!4 &418645355 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 4ee15c5ba6ef898608cd660d744e8967, type: 3}
+ m_PrefabInstance: {fileID: 418645354}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1 &463187681
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 463187682}
+ - component: {fileID: 463187683}
+ m_Layer: 6
+ m_Name: Line
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &463187682
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 463187681}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1738192762}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!120 &463187683
+LineRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 463187681}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 0
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: 1}
+ m_Parameters:
+ serializedVersion: 3
+ widthMultiplier: 0.1
+ widthCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ colorGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ numCornerVertices: 0
+ numCapVertices: 0
+ alignment: 0
+ textureMode: 0
+ shadowBias: 0.5
+ generateLightingData: 0
+ m_UseWorldSpace: 0
+ m_Loop: 0
--- !u!1 &484860403
GameObject:
m_ObjectHideFlags: 0
@@ -486,6 +785,147 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &784347328
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 784347330}
+ - component: {fileID: 784347329}
+ m_Layer: 0
+ m_Name: Global Volume
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &784347329
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 784347328}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ isGlobal: 1
+ priority: 0
+ blendDistance: 0
+ weight: 1
+ sharedProfile: {fileID: 11400000, guid: 44e705d99eeb9b9b49d3934e22dd3c39, type: 2}
+--- !u!4 &784347330
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 784347328}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &788142064
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 788142065}
+ - component: {fileID: 788142066}
+ m_Layer: 0
+ m_Name: Spot Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &788142065
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 788142064}
+ m_LocalRotation: {x: 0.52053136, y: 0.40908125, z: -0.31261587, w: 0.6811542}
+ m_LocalPosition: {x: 4.54, y: 4.76, z: -4.99}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1082980580}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 74.773, y: 61.976, z: 0}
+--- !u!108 &788142066
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 788142064}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 3
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 100
+ m_Range: 6.5344095
+ m_SpotAngle: 34.728394
+ m_InnerSpotAngle: 22.024088
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 2
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
--- !u!1 &792269083
GameObject:
m_ObjectHideFlags: 0
@@ -592,11 +1032,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 792269083}
m_LocalRotation: {x: -0.36168423, y: -0.08467272, z: 0.21163385, w: 0.9040057}
- m_LocalPosition: {x: 2.2, y: 3.97, z: 0.69}
+ m_LocalPosition: {x: 16.256123, y: 39.122845, z: -53.454655}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 6
+ m_Father: {fileID: 882904941}
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: -38.177, y: -22.923, z: 34.379}
--- !u!1 &805551578
GameObject:
@@ -695,6 +1135,41 @@ Transform:
m_Father: {fileID: 1051259111}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &882904940
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 882904941}
+ m_Layer: 0
+ m_Name: Cubes
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &882904941
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 882904940}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -12.2, y: -39.060642, z: 54.470325}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 899046520}
+ - {fileID: 1669763709}
+ - {fileID: 792269088}
+ - {fileID: 1336637682}
+ - {fileID: 328979637}
+ m_Father: {fileID: 197851619}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &899046515
GameObject:
m_ObjectHideFlags: 0
@@ -801,11 +1276,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 899046515}
m_LocalRotation: {x: -0.4662051, y: 0.18758504, z: -0.32272494, w: 0.8020681}
- m_LocalPosition: {x: 2.2, y: 5.03, z: -0.85}
+ m_LocalPosition: {x: 16.256123, y: 40.182842, z: -54.99465}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 4
+ m_Father: {fileID: 882904941}
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -38.813, y: 50.567, z: -62.731}
--- !u!1 &963194225
GameObject:
@@ -818,6 +1293,7 @@ GameObject:
- component: {fileID: 963194228}
- component: {fileID: 963194227}
- component: {fileID: 963194226}
+ - component: {fileID: 963194229}
m_Layer: 6
m_Name: Main Camera
m_TagString: MainCamera
@@ -888,10 +1364,42 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1738192762}
- - {fileID: 1547366299}
+ - {fileID: 1813567089}
m_Father: {fileID: 805551582}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &963194229
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_RenderPostProcessing: 1
+ m_Antialiasing: 1
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
--- !u!1 &1051259110
GameObject:
m_ObjectHideFlags: 0
@@ -919,11 +1427,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1051259110}
m_LocalRotation: {x: -0, y: -0.006173001, z: -0, w: 0.999981}
- m_LocalPosition: {x: -0.014430671, y: 1.35, z: -6.18}
+ m_LocalPosition: {x: -2.2144306, y: -2.5577989, z: -5.854327}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 805551582}
- m_Father: {fileID: 0}
+ m_Father: {fileID: 197851619}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: -0.707, z: 0}
--- !u!143 &1051259112
@@ -976,6 +1484,5488 @@ Rigidbody:
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
+--- !u!1 &1082980579
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1082980580}
+ - component: {fileID: 1082980584}
+ - component: {fileID: 1082980583}
+ - component: {fileID: 1082980582}
+ - component: {fileID: 1082980581}
+ m_Layer: 0
+ m_Name: Demo House
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1082980580
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082980579}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -12.2, y: -3.9077988, z: 10.25}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 418645355}
+ - {fileID: 396713615}
+ - {fileID: 1867102916}
+ - {fileID: 788142065}
+ m_Father: {fileID: 197851619}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!64 &1082980581
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082980579}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 1798258414}
+--- !u!33 &1082980582
+MeshFilter:
+ m_ObjectHideFlags: 10
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082980579}
+ m_Mesh: {fileID: 1798258414}
+--- !u!23 &1082980583
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082980579}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 2
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &1082980584
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082980579}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_MeshFormatVersion: 1
+ m_Faces:
+ - m_Indexes: 000000000100000002000000030000000000000002000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 070000000500000006000000070000000400000005000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 08000000090000000a0000000b000000080000000a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 0d0000000f0000000c0000000d0000000e0000000f000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 100000001100000012000000130000001000000012000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 5
+ - m_Indexes: 170000001500000016000000170000001400000015000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 6
+ - m_Indexes: 18000000190000001a0000001b000000180000001a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 1e0000001c0000001d0000001e0000001f0000001c000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 200000002100000022000000230000002000000022000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 260000002400000025000000260000002700000024000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 28000000290000002a0000002b000000280000002a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 5
+ - m_Indexes: 2c0000002d0000002e0000002f0000002c0000002e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 5
+ - m_Indexes: 320000003000000031000000320000003300000030000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 6
+ - m_Indexes: 350000003700000034000000350000003600000037000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 6
+ - m_Indexes: 38000000390000003a0000003b000000380000003a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 3f0000003c0000003d0000003e0000003f0000003d000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 420000004000000041000000420000004300000040000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 460000004400000045000000460000004700000044000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 48000000490000004a0000004b000000480000004a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 4f0000004c0000004d0000004e0000004f0000004d000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 520000005000000051000000520000005300000050000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 560000005400000055000000560000005700000054000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 58000000590000005a000000590000005b0000005a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 5c0000005d0000005e0000005d0000005f0000005e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 600000006100000062000000610000006300000062000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 640000006500000066000000650000006700000066000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 68000000690000006a000000690000006b0000006a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 6c0000006d0000006e0000006d0000006f0000006e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 700000007100000072000000710000007300000072000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 740000007500000076000000750000007700000076000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 78000000790000007a000000790000007b0000007a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 7c0000007d0000007e0000007d0000007f0000007e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 800000008100000082000000810000008300000082000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 840000008500000086000000850000008700000086000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 88000000890000008a000000890000008b0000008a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 8c0000008d0000008e0000008d0000008f0000008e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 930000009000000091000000920000009300000091000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 7
+ - m_Indexes: 970000009400000095000000960000009700000095000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 8
+ - m_Indexes: 9a00000098000000990000009a0000009b00000098000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 10
+ - m_Indexes: 9e0000009c0000009d0000009e0000009f0000009c000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 11
+ - m_Indexes: a2000000a0000000a1000000a2000000a3000000a0000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 13
+ - m_Indexes: a5000000a6000000a7000000a5000000a7000000a4000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 14
+ - m_Indexes: ab000000a8000000aa000000a8000000a9000000aa000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 15
+ - m_Indexes: ae000000ac000000ad000000ae000000af000000ac000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 16
+ - m_Indexes: b3000000b0000000b1000000b2000000b3000000b1000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 17
+ - m_Indexes: b7000000b4000000b5000000b6000000b7000000b5000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 18
+ - m_Indexes: b8000000b9000000ba000000bb000000b8000000ba000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: bd000000bf000000bc000000bd000000be000000bf000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: c0000000c1000000c2000000c3000000c0000000c2000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 19
+ - m_Indexes: c6000000c4000000c5000000c6000000c7000000c4000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: c8000000c9000000ca000000cb000000c8000000ca000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 20
+ - m_Indexes: cd000000cf000000cc000000cd000000ce000000cf000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: d1000000d3000000d0000000d1000000d2000000d3000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: d4000000d5000000d6000000d7000000d4000000d6000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 21
+ - m_Indexes: db000000d9000000da000000db000000d8000000d9000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 22
+ - m_Indexes: de000000df000000dc000000dd000000de000000dc000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 23
+ - m_Indexes: e0000000e1000000e2000000e3000000e0000000e2000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: e5000000e7000000e4000000e5000000e6000000e7000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: e8000000e9000000ea000000eb000000e8000000ea000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: ed000000ef000000ec000000ed000000ee000000ef000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 26
+ - m_Indexes: f3000000f0000000f1000000f2000000f3000000f1000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 27
+ - m_Indexes: f6000000f4000000f5000000f6000000f7000000f4000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 28
+ - m_Indexes: fa000000f8000000f9000000fa000000fb000000f8000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: ff000000fc000000fd000000fe000000ff000000fd000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 020100000101000000010000020100000301000001010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 060100000501000004010000060100000701000005010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 08010000090100000a0100000b010000080100000a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 0d0100000e0100000c0100000e0100000f0100000c010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 100100001101000012010000130100001001000012010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 19
+ - m_Indexes: 160100001401000015010000160100001701000014010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 18010000190100001a0100001b010000180100001a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 20
+ - m_Indexes: 1e0100001c0100001d0100001e0100001f0100001c010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 220100002001000021010000220100002301000020010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 240100002501000026010000270100002401000026010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 21
+ - m_Indexes: 290100002b01000028010000290100002a0100002b010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 22
+ - m_Indexes: 2c0100002d0100002e0100002f0100002c0100002e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 23
+ - m_Indexes: 300100003101000032010000330100003001000032010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 350100003701000034010000350100003601000037010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 38010000390100003a0100003b010000380100003a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 3c0100003d0100003e0100003f0100003c0100003e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 400100004101000043010000410100004201000043010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 470100004401000046010000440100004501000046010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 48010000490100004a0100004b010000480100004a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 19
+ - m_Indexes: 4c0100004d0100004e0100004f0100004c0100004e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 19
+ - m_Indexes: 520100005001000051010000520100005301000050010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 550100005701000054010000550100005601000057010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 58010000590100005a0100005b010000580100005a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 20
+ - m_Indexes: 5c0100005d0100005e0100005f0100005c0100005e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 20
+ - m_Indexes: 620100006001000061010000620100006301000060010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 650100006701000064010000650100006601000067010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 6a01000068010000690100006a0100006b01000068010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 6d0100006f0100006c0100006d0100006e0100006f010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 700100007101000072010000730100007001000072010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 21
+ - m_Indexes: 740100007501000076010000770100007401000076010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 21
+ - m_Indexes: 7a01000078010000790100007a0100007b01000078010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 22
+ - m_Indexes: 7d0100007f0100007c0100007d0100007e0100007f010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 22
+ - m_Indexes: 800100008101000082010000830100008001000082010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 23
+ - m_Indexes: 840100008501000086010000870100008401000086010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 23
+ - m_Indexes: 88010000890100008a0100008b010000880100008a010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 8c0100008d0100008e0100008f0100008c0100008e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 910100009201000093010000910100009301000090010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 950100009701000094010000950100009601000097010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 98010000990100009b010000990100009a0100009b010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 7
+ - m_Indexes: 9f0100009c0100009e0100009c0100009d0100009e010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 7
+ - m_Indexes: a0010000a1010000a2010000a3010000a0010000a2010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 8
+ - m_Indexes: a7010000a4010000a5010000a6010000a7010000a5010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 8
+ - m_Indexes: aa010000a8010000a9010000aa010000ab010000a8010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 10
+ - m_Indexes: ae010000ac010000ad010000ae010000af010000ac010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 10
+ - m_Indexes: b1010000b2010000b3010000b1010000b3010000b0010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 11
+ - m_Indexes: b5010000b6010000b7010000b5010000b7010000b4010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 11
+ - m_Indexes: ba010000b8010000b9010000ba010000bb010000b8010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 13
+ - m_Indexes: be010000bc010000bd010000be010000bf010000bc010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 13
+ - m_Indexes: c1010000c3010000c0010000c1010000c2010000c3010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 14
+ - m_Indexes: c4010000c6010000c7010000c4010000c5010000c6010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 14
+ - m_Indexes: c8010000c9010000ca010000cb010000c8010000ca010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 15
+ - m_Indexes: cf010000cc010000cd010000ce010000cf010000cd010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 15
+ - m_Indexes: d2010000d0010000d1010000d2010000d3010000d0010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 16
+ - m_Indexes: d6010000d4010000d5010000d6010000d7010000d4010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 16
+ - m_Indexes: d8010000d9010000da010000db010000d8010000da010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 17
+ - m_Indexes: df010000dc010000dd010000de010000df010000dd010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 17
+ - m_Indexes: e0010000e1010000e2010000e3010000e0010000e2010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 18
+ - m_Indexes: e7010000e4010000e5010000e6010000e7010000e5010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 18
+ - m_Indexes: e8010000e9010000ea010000eb010000e8010000ea010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: ef010000ec010000ed010000ee010000ef010000ed010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: f0010000f1010000f2010000f3010000f0010000f2010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 27
+ - m_Indexes: f7010000f4010000f5010000f6010000f7010000f5010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 27
+ - m_Indexes: fa010000f8010000f9010000fa010000fb010000f8010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 28
+ - m_Indexes: fe010000fc010000fd010000fe010000ff010000fc010000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 28
+ - m_Indexes: 020200000002000001020000020200000302000000020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 060200000402000005020000060200000702000004020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 090200000a020000080200000a0200000b02000008020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 29
+ - m_Indexes: 0c0200000d0200000e0200000c0200000e0200000f020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 29
+ - m_Indexes: 120200001302000011020000130200001002000011020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 30
+ - m_Indexes: 150200001602000017020000150200001702000014020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 30
+ - m_Indexes: 18020000190200001a0200001b020000180200001a020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 1f0200001c0200001d0200001e0200001f0200001d020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 200200002102000022020000200200002202000023020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 240200002502000027020000250200002602000027020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 28020000290200002a0200002b020000280200002a020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 2f0200002c0200002d0200002e0200002f0200002d020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 300200003102000032020000330200003002000032020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 370200003402000035020000360200003702000035020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 9
+ - m_Indexes: 38020000390200003a020000380200003a0200003b020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 3c0200003d0200003f0200003d0200003e0200003f020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 400200004102000043020000410200004202000043020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 12
+ - m_Indexes: 440200004502000046020000470200004402000046020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: 490200004b02000048020000490200004a0200004b020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 26
+ - m_Indexes: 4e0200004c0200004d0200004e0200004f0200004c020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 500200005102000052020000530200005002000052020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 560200005402000055020000560200005702000054020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 5a02000058020000590200005a0200005b02000058020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 5c0200005d0200005e0200005f0200005c0200005e020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 600200006102000062020000630200006002000062020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 640200006502000066020000670200006402000066020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: 68020000690200006a0200006b020000680200006a020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: 6e0200006c0200006d0200006e0200006f0200006c020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 26
+ - m_Indexes: 710200007302000070020000710200007202000073020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 26
+ - m_Indexes: 760200007402000075020000760200007702000074020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 790200007b02000078020000790200007a0200007b020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 7c0200007d0200007e0200007f0200007c0200007e020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 800200008102000082020000830200008002000082020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: 8502000087020000840200008d0200008402000087020000880200008d020000870200008d020000880200008c0200008c02000088020000890200008c020000890200008b020000890200008a0200008b020000850200008602000087020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 8e0200008f020000900200009402000095020000960200009402000096020000930200009602000097020000930200009302000097020000920200008e02000092020000970200008e0200009102000092020000910200008e02000090020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: -1
+ - m_Indexes: 9a02000098020000990200009a0200009b02000098020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: 9d0200009f0200009c0200009d0200009e0200009f020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: a2020000a0020000a1020000a2020000a3020000a0020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: a5020000a7020000a4020000a5020000a6020000a7020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 24
+ - m_Indexes: a8020000a9020000aa020000ab020000a8020000aa020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: ac020000ad020000ae020000af020000ac020000ae020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: b0020000b1020000b2020000b3020000b0020000b2020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 25
+ - m_Indexes: b6020000b5020000b4020000b6020000b7020000b5020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: ba020000b9020000b8020000ba020000bb020000b9020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: be020000bd020000bc020000be020000bf020000bd020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: c2020000c1020000c0020000c2020000c3020000c1020000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ m_SharedVertices:
+ - m_Vertices: 000000003000000046000000
+ - m_Vertices: 0100000045000000380100006d010000
+ - m_Vertices: 020000003b010000a101000028020000
+ - m_Vertices: 0300000031000000a0010000b0010000
+ - m_Vertices: 040000001c0000004501000056010000
+ - m_Vertices: 05000000140000001f000000
+ - m_Vertices: 0600000017000000a8010000c5010000
+ - m_Vertices: 0700000046010000ab0100003e020000
+ - m_Vertices: 0800000056000000b9000000d0000000
+ - m_Vertices: 090000002800000055000000
+ - m_Vertices: 0a0000002b00000098010000e1010000
+ - m_Vertices: 0b000000ba000000e0010000e9010000
+ - m_Vertices: 0c000000bd00000002010000d001000013020000
+ - m_Vertices: 0d00000012000000c9010000d3010000
+ - m_Vertices: 0e0000001100000024000000
+ - m_Vertices: 0f00000027000000be000000c4000000
+ - m_Vertices: 10000000250000002d00000050000000
+ - m_Vertices: 130000002e000000c8010000d9010000
+ - m_Vertices: 150000001e0000003600000043000000
+ - m_Vertices: 1600000035000000bb010000c6010000
+ - m_Vertices: 18000000620000004d01000079010000
+ - m_Vertices: 190000006300000072000000
+ - m_Vertices: 1a000000390000006a00000073000000
+ - m_Vertices: 1b000000380000006f0000008f0000004e010000850100008b02000094020000
+ - m_Vertices: 1d000000400000005501000066010000
+ - m_Vertices: 20000000770000007a000000
+ - m_Vertices: 210000007b000000c0000000db000000
+ - m_Vertices: 22000000490000007e0000008a000000c3000000de0000008502000090020000
+ - m_Vertices: 23000000480000007600000083000000
+ - m_Vertices: 2600000053000000c5000000cf000000
+ - m_Vertices: 290000002c0000005100000054000000
+ - m_Vertices: 2a0000002f00000099010000d8010000
+ - m_Vertices: 3200000034000000b3010000b8010000
+ - m_Vertices: 33000000370000004200000047000000
+ - m_Vertices: 3a0000003c000000660000006b000000
+ - m_Vertices: 3b0000003f0000006e0000008d0000005d01000086010000
+ - m_Vertices: 3d0000005e00000067000000
+ - m_Vertices: 3e0000005f0000005e01000073010000
+ - m_Vertices: 4100000044000000650100006e010000
+ - m_Vertices: 4a0000004c0000007f00000088000000c8000000dd000000
+ - m_Vertices: 4b0000004f0000005b00000082000000
+ - m_Vertices: 4d00000086000000cb000000d6000000
+ - m_Vertices: 4e0000005a00000087000000
+ - m_Vertices: 5200000057000000cc000000d3000000
+ - m_Vertices: 580000008500000092000000b5000000
+ - m_Vertices: 590000008000000091000000b2000000
+ - m_Vertices: 5c00000065000000960000009d000000
+ - m_Vertices: 5d00000095000000700100008b010000
+ - m_Vertices: 600000009a0000007801000091010000
+ - m_Vertices: 610000007000000099000000a6000000
+ - m_Vertices: 64000000690000009e000000a1000000
+ - m_Vertices: 6800000071000000a2000000a5000000
+ - m_Vertices: 6c0000008c000000f2000000490200004d020000
+ - m_Vertices: 6d0000008e000000f10000004a020000530200008a02000095020000
+ - m_Vertices: 7400000081000000aa000000b1000000
+ - m_Vertices: 7500000078000000a9000000ae000000
+ - m_Vertices: 79000000ad000000d8000000e5000000
+ - m_Vertices: 7c0000008b000000ef000000f6000000fd000000860200008f020000
+ - m_Vertices: 7d00000089000000ec000000f5000000fa000000
+ - m_Vertices: 84000000b6000000d5000000e2000000
+ - m_Vertices: 90000000b30000009d010000de010000
+ - m_Vertices: 93000000b40000009e010000e5010000
+ - m_Vertices: 9400000088010000a50100002e020000
+ - m_Vertices: 970000009c000000a6010000b5010000
+ - m_Vertices: 98000000a7000000ad010000c1010000
+ - m_Vertices: 9b00000090010000ae01000038020000
+ - m_Vertices: 9f000000a0000000b6010000bd010000
+ - m_Vertices: a3000000a4000000be010000c0010000
+ - m_Vertices: a8000000af000000cd010000d6010000
+ - m_Vertices: ab000000b0000000ce010000dd010000
+ - m_Vertices: ac000000e600000007010000d501000016020000
+ - m_Vertices: b7000000e1000000e6010000ed010000
+ - m_Vertices: b8000000d10000000901000021010000
+ - m_Vertices: bb0000000a010000e801000019020000
+ - m_Vertices: bc000000030100000d0100000e02000025020000
+ - m_Vertices: bf000000c70000000e01000014010000
+ - m_Vertices: c1000000da0000001001000029010000
+ - m_Vertices: c2000000df000000130100002c0100008402000091020000
+ - m_Vertices: c6000000ce000000150100001c010000
+ - m_Vertices: c9000000dc000000180100002f010000
+ - m_Vertices: ca000000d70000001b01000026010000
+ - m_Vertices: cd000000d20000001d01000020010000
+ - m_Vertices: d4000000e30000002501000032010000
+ - m_Vertices: d9000000e40000002a01000035010000
+ - m_Vertices: e000000031010000ee0100001d020000
+ - m_Vertices: e700000006010000360100000b02000021020000
+ - m_Vertices: e800000000010000fb01000010020000
+ - m_Vertices: e9000000010100000d02000064020000ad020000
+ - m_Vertices: ea00000000020000670200009e020000
+ - m_Vertices: eb000000f801000003020000
+ - m_Vertices: ed000000f90000006d02000079020000
+ - m_Vertices: ee000000fe0000006c02000082020000870200008e020000
+ - m_Vertices: f0000000f50100005002000063020000
+ - m_Vertices: f3000000f60100004c02000059020000
+ - m_Vertices: f4000000fb000000fd01000006020000
+ - m_Vertices: f7000000fc00000005010000fe01000015020000
+ - m_Vertices: f8000000050200007a020000a5020000
+ - m_Vertices: ff000000040100000802000081020000b2020000
+ - m_Vertices: 08010000220100003d01000069010000
+ - m_Vertices: 0b0100003e0100001802000031020000
+ - m_Vertices: 0c010000400100002602000041020000
+ - m_Vertices: 0f010000170100004101000050010000
+ - m_Vertices: 1101000028010000480100007d010000
+ - m_Vertices: 120100002d0100004b010000800100008d02000092020000
+ - m_Vertices: 160100001f0100005101000060010000
+ - m_Vertices: 190100002e0100005801000083010000
+ - m_Vertices: 1a010000270100005b01000076010000
+ - m_Vertices: 1e010000230100006101000068010000
+ - m_Vertices: 2401000033010000750100008e010000
+ - m_Vertices: 2b010000340100007e01000095010000
+ - m_Vertices: 300100008d0100001e02000035020000
+ - m_Vertices: 370100009601000020020000bb020000be020000
+ - m_Vertices: 390100003c0100006a0100006c010000
+ - m_Vertices: 3a0100003f0100002902000030020000
+ - m_Vertices: 42010000440100005301000057010000
+ - m_Vertices: 43010000470100003d02000042020000
+ - m_Vertices: 490100004c0100007a0100007c010000
+ - m_Vertices: 4a0100004f01000081010000840100008c02000093020000
+ - m_Vertices: 52010000540100006301000067010000
+ - m_Vertices: 590100005c0100008201000087010000
+ - m_Vertices: 5a0100005f0100007201000077010000
+ - m_Vertices: 62010000640100006b0100006f010000
+ - m_Vertices: 71010000740100008a0100008f010000
+ - m_Vertices: 7b0100007f0100009201000094010000
+ - m_Vertices: 890100008c0100002d02000036020000
+ - m_Vertices: 930100009701000039020000b7020000ba020000
+ - m_Vertices: 9a0100009c010000db010000df010000
+ - m_Vertices: 9b0100009f010000e2010000e4010000
+ - m_Vertices: a2010000a40100002b0200002f020000
+ - m_Vertices: a3010000a7010000b1010000b4010000
+ - m_Vertices: a9010000ac010000c2010000c4010000
+ - m_Vertices: aa010000af0100003b0200003f020000
+ - m_Vertices: b2010000b7010000b9010000bc010000
+ - m_Vertices: ba010000bf010000c3010000c7010000
+ - m_Vertices: ca010000cc010000d2010000d7010000
+ - m_Vertices: cb010000cf010000da010000dc010000
+ - m_Vertices: d1010000d40100001202000017020000
+ - m_Vertices: e3010000e7010000ea010000ec010000
+ - m_Vertices: eb010000ef0100001a0200001c020000
+ - m_Vertices: f00100004602000054020000
+ - m_Vertices: f1010000450200005c020000
+ - m_Vertices: f2010000f40100005f02000060020000
+ - m_Vertices: f3010000f70100005502000058020000
+ - m_Vertices: f9010000fc0100000202000007020000
+ - m_Vertices: fa010000ff0100001102000014020000
+ - m_Vertices: 01020000040200009d020000a6020000
+ - m_Vertices: 090200000c020000ae020000b1020000
+ - m_Vertices: 0a0200000f0200002202000024020000
+ - m_Vertices: 1b0200001f0200003202000034020000
+ - m_Vertices: 230200002702000040020000bf020000c2020000
+ - m_Vertices: 2a0200002c0200003302000037020000
+ - m_Vertices: 3a0200003c02000043020000b6020000c3020000
+ - m_Vertices: 440200005d02000069020000a8020000
+ - m_Vertices: 47020000570200006a02000098020000
+ - m_Vertices: 480200004e0200007102000075020000
+ - m_Vertices: 4b02000052020000720200007f0200008902000096020000
+ - m_Vertices: 4f0200005a02000074020000a1020000
+ - m_Vertices: 51020000620200007c020000b5020000b8020000
+ - m_Vertices: 560200005b02000099020000a0020000
+ - m_Vertices: 5e02000061020000ab020000b4020000c1020000
+ - m_Vertices: 6502000068020000a9020000ac020000
+ - m_Vertices: 660200006b0200009b0200009f020000
+ - m_Vertices: 6e020000700200007602000078020000
+ - m_Vertices: 6f020000730200007e020000830200008802000097020000
+ - m_Vertices: 770200007b020000a2020000a4020000
+ - m_Vertices: 7d02000080020000b3020000b9020000bc020000
+ - m_Vertices: 9a0200009c020000a3020000a7020000
+ - m_Vertices: aa020000af020000b0020000bd020000c0020000
+ m_SharedTextures: []
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 0.5, y: 0, z: 0}
+ - {x: 0.5, y: 0.5, z: 0}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 0.5, y: 0, z: -10}
+ - {x: 0, y: 0, z: -10}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0.5, y: 0.5, z: -10}
+ - {x: 9.5, y: 0, z: 0}
+ - {x: 10, y: 0, z: 0}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 9.5, y: 0.5, z: 0}
+ - {x: 9.499965, y: 0.50003535, z: -10.000239}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 10, y: 0, z: -10}
+ - {x: 9.5, y: 0, z: -10}
+ - {x: 10, y: 0, z: -9.424328}
+ - {x: 10, y: 0, z: -10}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 10, y: 0.5, z: -9.424328}
+ - {x: 0, y: 0, z: -10}
+ - {x: 0, y: 0, z: -9.424328}
+ - {x: 0, y: 0.5, z: -9.424328}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0.5, y: 5.5, z: -10}
+ - {x: 0, y: 5.5, z: -10}
+ - {x: 0, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 0, z: -10}
+ - {x: 0.5, y: 0, z: -9.424328}
+ - {x: 0, y: 0, z: -9.424328}
+ - {x: 0, y: 0, z: -10}
+ - {x: 10, y: 5.5, z: -10}
+ - {x: 9.5, y: 5.5, z: -10}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 10, y: 5.5, z: -9.424328}
+ - {x: 10, y: 0, z: -10}
+ - {x: 10, y: 0, z: -9.424328}
+ - {x: 9.5, y: 0, z: -9.424328}
+ - {x: 9.5, y: 0, z: -10}
+ - {x: 10, y: 0, z: 0}
+ - {x: 10, y: 0, z: -0.42432785}
+ - {x: 10, y: 0.5, z: -0.42432785}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 0, z: -0.42432785}
+ - {x: 10, y: 0, z: -9.424328}
+ - {x: 10, y: 0.5, z: -9.424328}
+ - {x: 10, y: 0.5, z: -0.42432785}
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 0, y: 0.5, z: -0.42432785}
+ - {x: 0, y: 0, z: -0.42432785}
+ - {x: 0, y: 0.5, z: -0.42432785}
+ - {x: 0, y: 0.5, z: -9.424328}
+ - {x: 0, y: 0, z: -9.424328}
+ - {x: 0, y: 0, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 0, y: 5.5, z: -9.424328}
+ - {x: 0, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 0, y: 5.5, z: -0.42432785}
+ - {x: 0, y: 5.5, z: 0}
+ - {x: 0.5, y: 5.5, z: 0}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 0, z: -9.424328}
+ - {x: 0.5, y: 0, z: -0.42432785}
+ - {x: 0, y: 0, z: -0.42432785}
+ - {x: 0, y: 0, z: -9.424328}
+ - {x: 0.5, y: 0, z: -0.42432785}
+ - {x: 0.5, y: 0, z: 0}
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: -0.42432785}
+ - {x: 10, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 10, y: 5.5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: 0}
+ - {x: 10, y: 5.5, z: 0}
+ - {x: 10, y: 5.5, z: -0.42432785}
+ - {x: 10, y: 0, z: -9.424328}
+ - {x: 10, y: 0, z: -0.42432785}
+ - {x: 9.5, y: 0, z: -0.42432785}
+ - {x: 9.5, y: 0, z: -9.424328}
+ - {x: 10, y: 0, z: -0.42432785}
+ - {x: 10, y: 0, z: 0}
+ - {x: 9.5, y: 0, z: 0}
+ - {x: 9.5, y: 0, z: -0.42432785}
+ - {x: 10, y: 5, z: 0}
+ - {x: 10, y: 5, z: -0.42432785}
+ - {x: 10, y: 5.5, z: 0}
+ - {x: 10, y: 5.5, z: -0.42432785}
+ - {x: 0, y: 5, z: 0}
+ - {x: 0.5, y: 5, z: 0}
+ - {x: 0, y: 5.5, z: 0}
+ - {x: 0.5, y: 5.5, z: 0}
+ - {x: 0.5, y: 5, z: -10}
+ - {x: 0, y: 5, z: -10}
+ - {x: 0.5, y: 5.5, z: -10}
+ - {x: 0, y: 5.5, z: -10}
+ - {x: 0, y: 5, z: -0.42432785}
+ - {x: 0, y: 5, z: 0}
+ - {x: 0, y: 5.5, z: -0.42432785}
+ - {x: 0, y: 5.5, z: 0}
+ - {x: 0, y: 5, z: -9.424328}
+ - {x: 0, y: 5, z: -0.42432785}
+ - {x: 0, y: 5.5, z: -9.424328}
+ - {x: 0, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 0, y: 5, z: -10}
+ - {x: 0, y: 5, z: -9.424328}
+ - {x: 0, y: 5.5, z: -10}
+ - {x: 0, y: 5.5, z: -9.424328}
+ - {x: 10, y: 5, z: -9.424328}
+ - {x: 10, y: 5, z: -10}
+ - {x: 10, y: 5.5, z: -9.424328}
+ - {x: 10, y: 5.5, z: -10}
+ - {x: 10, y: 5, z: -10}
+ - {x: 9.5, y: 5, z: -10}
+ - {x: 10, y: 5.5, z: -10}
+ - {x: 9.5, y: 5.5, z: -10}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 10, y: 5, z: -0.42432785}
+ - {x: 10, y: 5, z: -9.424328}
+ - {x: 10, y: 5.5, z: -0.42432785}
+ - {x: 10, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5, z: 0}
+ - {x: 10, y: 5, z: 0}
+ - {x: 9.5, y: 5.5, z: 0}
+ - {x: 10, y: 5.5, z: 0}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 9.5, y: 5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 10, y: 3.5, z: -0.42432785}
+ - {x: 10, y: 5, z: -0.42432785}
+ - {x: 10, y: 5, z: 0}
+ - {x: 10, y: 3.5, z: 0}
+ - {x: 0.5, y: 3.5, z: 0}
+ - {x: 0.5, y: 5, z: 0}
+ - {x: 0, y: 5, z: 0}
+ - {x: 0, y: 3.5, z: 0}
+ - {x: 0, y: 3.5, z: -10}
+ - {x: 0, y: 5, z: -10}
+ - {x: 0.5, y: 5, z: -10}
+ - {x: 0.5, y: 3.5, z: -10}
+ - {x: 0, y: 3.5, z: 0}
+ - {x: 0, y: 5, z: 0}
+ - {x: 0, y: 5, z: -0.42432785}
+ - {x: 0, y: 3.5, z: -0.42432785}
+ - {x: 0, y: 3.5, z: -0.42432785}
+ - {x: 0, y: 5, z: -0.42432785}
+ - {x: 0, y: 5, z: -9.424328}
+ - {x: 0, y: 3.5, z: -9.424328}
+ - {x: 0, y: 3.5, z: -9.424328}
+ - {x: 0, y: 5, z: -9.424328}
+ - {x: 0, y: 5, z: -10}
+ - {x: 0, y: 3.5, z: -10}
+ - {x: 10, y: 3.5, z: -10}
+ - {x: 10, y: 5, z: -10}
+ - {x: 10, y: 5, z: -9.424328}
+ - {x: 10, y: 3.5, z: -9.424328}
+ - {x: 9.499965, y: 3.5, z: -10.000204}
+ - {x: 9.5, y: 5, z: -10}
+ - {x: 10, y: 5, z: -10}
+ - {x: 10, y: 3.5, z: -10}
+ - {x: 10, y: 3.5, z: -9.424328}
+ - {x: 10, y: 5, z: -9.424328}
+ - {x: 10, y: 5, z: -0.42432785}
+ - {x: 10, y: 3.5, z: -0.42432785}
+ - {x: 10, y: 3.5, z: 0}
+ - {x: 10, y: 5, z: 0}
+ - {x: 9.5, y: 5, z: 0}
+ - {x: 9.5, y: 3.5, z: 0}
+ - {x: 8, y: 0, z: 0}
+ - {x: 9.5, y: 0, z: 0}
+ - {x: 9.5, y: 0.5, z: 0}
+ - {x: 8, y: 0.5, z: 0}
+ - {x: 8, y: 0.50003535, z: -10.000204}
+ - {x: 9.499965, y: 0.50003535, z: -10.000239}
+ - {x: 9.5, y: 0, z: -10}
+ - {x: 8, y: 0, z: -10}
+ - {x: 9.5, y: 5.5, z: -10}
+ - {x: 8, y: 5.5, z: -10}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 0, z: -10}
+ - {x: 9.5, y: 0, z: -9.424328}
+ - {x: 8, y: 0, z: -9.424328}
+ - {x: 8, y: 0, z: -10}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 8, y: 5.5, z: -0.42432785}
+ - {x: 8, y: 5.5, z: 0}
+ - {x: 9.5, y: 5.5, z: 0}
+ - {x: 9.5, y: 0, z: -0.42432785}
+ - {x: 8, y: 0, z: -0.42432785}
+ - {x: 8, y: 0, z: -9.424328}
+ - {x: 9.5, y: 0, z: -9.424328}
+ - {x: 9.5, y: 0, z: 0}
+ - {x: 8, y: 0, z: 0}
+ - {x: 8, y: 0, z: -0.42432785}
+ - {x: 9.5, y: 0, z: -0.42432785}
+ - {x: 8, y: 5, z: 0}
+ - {x: 9.5, y: 5, z: 0}
+ - {x: 9.5, y: 5.5, z: 0}
+ - {x: 8, y: 5.5, z: 0}
+ - {x: 9.5, y: 5, z: -10}
+ - {x: 8, y: 5, z: -10}
+ - {x: 8, y: 5.5, z: -10}
+ - {x: 9.5, y: 5.5, z: -10}
+ - {x: 8, y: 5.5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: -0.42432785}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 8, y: 3.5, z: 0}
+ - {x: 9.5, y: 3.5, z: 0}
+ - {x: 9.5, y: 5, z: 0}
+ - {x: 8, y: 5, z: 0}
+ - {x: 8, y: 5, z: -10}
+ - {x: 9.5, y: 5, z: -10}
+ - {x: 9.499965, y: 3.5, z: -10.000204}
+ - {x: 8, y: 3.5, z: -10.00019}
+ - {x: 9.5, y: 0.5, z: -9.424328}
+ - {x: 8, y: 0.5, z: -9.424328}
+ - {x: 8, y: 0.5, z: -0.42432785}
+ - {x: 9.5, y: 0.5, z: -0.42432785}
+ - {x: 9.5, y: 5, z: -0.42432785}
+ - {x: 8, y: 5, z: -0.42432785}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 3.5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -0.42432785}
+ - {x: 0.5, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 5, z: -0.42432785}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 9.5, y: 3.5, z: -9.424328}
+ - {x: 8, y: 3.5, z: -0.42432785}
+ - {x: 8, y: 5, z: -0.42432785}
+ - {x: 9.5, y: 5, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 8, y: 3.5, z: -9.424328}
+ - {x: 9.5, y: 0.5, z: -9.424328}
+ - {x: 8, y: 0.5, z: -9.424328}
+ - {x: 9.499965, y: 0.50003535, z: -10.000239}
+ - {x: 8, y: 0.50003535, z: -10.000204}
+ - {x: 8, y: 3.5, z: -9.424328}
+ - {x: 9.5, y: 3.5, z: -9.424328}
+ - {x: 8, y: 3.5, z: -10.00019}
+ - {x: 9.499965, y: 3.5, z: -10.000204}
+ - {x: 7.5, y: 0, z: 0}
+ - {x: 8, y: 0, z: 0}
+ - {x: 8, y: 0.5, z: 0}
+ - {x: 7.5, y: 0.5, z: 0}
+ - {x: 7, y: 0.50001764, z: -10.000102}
+ - {x: 8, y: 0.50003535, z: -10.000204}
+ - {x: 8, y: 0, z: -10}
+ - {x: 7, y: 0, z: -10}
+ - {x: 8, y: 5.5, z: -10}
+ - {x: 7, y: 5.5, z: -10}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 8, y: 0, z: -10}
+ - {x: 8, y: 0, z: -9.424328}
+ - {x: 7.5, y: 0, z: -9.424328}
+ - {x: 7, y: 0, z: -10}
+ - {x: 8, y: 5.5, z: -0.42432785}
+ - {x: 7.5, y: 5.5, z: -0.42432785}
+ - {x: 7.5, y: 5.5, z: 0}
+ - {x: 8, y: 5.5, z: 0}
+ - {x: 8, y: 0, z: -9.424328}
+ - {x: 8, y: 0, z: -0.42432785}
+ - {x: 7.5, y: 0, z: -0.42432785}
+ - {x: 7.5, y: 0, z: -9.424328}
+ - {x: 8, y: 0, z: -0.42432785}
+ - {x: 8, y: 0, z: 0}
+ - {x: 7.5, y: 0, z: 0}
+ - {x: 7.5, y: 0, z: -0.42432785}
+ - {x: 7.5, y: 5, z: 0}
+ - {x: 8, y: 5, z: 0}
+ - {x: 8, y: 5.5, z: 0}
+ - {x: 7.5, y: 5.5, z: 0}
+ - {x: 7, y: 5.5, z: -10}
+ - {x: 8, y: 5.5, z: -10}
+ - {x: 8, y: 5, z: -10}
+ - {x: 7, y: 5, z: -10}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 7.5, y: 5.5, z: -0.42432785}
+ - {x: 8, y: 5.5, z: -0.42432785}
+ - {x: 7.5, y: 3.5, z: 0}
+ - {x: 8, y: 3.5, z: 0}
+ - {x: 8, y: 5, z: 0}
+ - {x: 7.5, y: 5, z: 0}
+ - {x: 7, y: 5, z: -10}
+ - {x: 8, y: 5, z: -10}
+ - {x: 8, y: 3.5, z: -10.00019}
+ - {x: 7, y: 3.5, z: -9.99963}
+ - {x: 0.5, y: 0, z: 0}
+ - {x: 5.5, y: 0, z: 0}
+ - {x: 5.5, y: 0.5, z: 0}
+ - {x: 0.5, y: 0.5, z: 0}
+ - {x: 5.5, y: 0, z: 0}
+ - {x: 7.5, y: 0, z: 0}
+ - {x: 7.5, y: 0.5, z: 0}
+ - {x: 5.5, y: 0.5, z: 0}
+ - {x: 7, y: 0.50001764, z: -10.000102}
+ - {x: 7, y: 0, z: -10}
+ - {x: 3.5, y: 0, z: -10}
+ - {x: 3.5, y: 0.5000088, z: -10.0000515}
+ - {x: 3.5, y: 0, z: -10}
+ - {x: 0.5, y: 0, z: -10}
+ - {x: 0.5, y: 0.5, z: -10}
+ - {x: 3.5, y: 0.5000088, z: -10.0000515}
+ - {x: 7, y: 5.5, z: -10}
+ - {x: 3.5, y: 5.5, z: -10}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 3.5, y: 5.5, z: -10}
+ - {x: 0.5, y: 5.5, z: -10}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 7, y: 0, z: -10}
+ - {x: 7.5, y: 0, z: -9.424328}
+ - {x: 5.5, y: 0, z: -9.424328}
+ - {x: 3.5, y: 0, z: -10}
+ - {x: 5.5, y: 0, z: -9.424328}
+ - {x: 0.5, y: 0, z: -9.424328}
+ - {x: 0.5, y: 0, z: -10}
+ - {x: 3.5, y: 0, z: -10}
+ - {x: 7.5, y: 5.5, z: -0.42432785}
+ - {x: 5.5, y: 5.5, z: -0.42432785}
+ - {x: 5.5, y: 5.5, z: 0}
+ - {x: 7.5, y: 5.5, z: 0}
+ - {x: 5.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 5.5, z: 0}
+ - {x: 5.5, y: 5.5, z: 0}
+ - {x: 7.5, y: 0, z: -9.424328}
+ - {x: 7.5, y: 0, z: -0.42432785}
+ - {x: 5.5, y: 0, z: -0.42432785}
+ - {x: 5.5, y: 0, z: -9.424328}
+ - {x: 5.5, y: 0, z: -0.42432785}
+ - {x: 0.5, y: 0, z: -0.42432785}
+ - {x: 0.5, y: 0, z: -9.424328}
+ - {x: 5.5, y: 0, z: -9.424328}
+ - {x: 7.5, y: 0, z: -0.42432785}
+ - {x: 7.5, y: 0, z: 0}
+ - {x: 5.5, y: 0, z: 0}
+ - {x: 5.5, y: 0, z: -0.42432785}
+ - {x: 5.5, y: 0, z: 0}
+ - {x: 0.5, y: 0, z: 0}
+ - {x: 0.5, y: 0, z: -0.42432785}
+ - {x: 5.5, y: 0, z: -0.42432785}
+ - {x: 0.5, y: 5, z: 0}
+ - {x: 5.5, y: 5, z: 0}
+ - {x: 5.5, y: 5.5, z: 0}
+ - {x: 0.5, y: 5.5, z: 0}
+ - {x: 5.5, y: 5, z: 0}
+ - {x: 7.5, y: 5, z: 0}
+ - {x: 7.5, y: 5.5, z: 0}
+ - {x: 5.5, y: 5.5, z: 0}
+ - {x: 0.5, y: 5, z: -10}
+ - {x: 0.5, y: 5.5, z: -10}
+ - {x: 3.5, y: 5.5, z: -10}
+ - {x: 3.5, y: 5, z: -10}
+ - {x: 3.5, y: 5.5, z: -10}
+ - {x: 7, y: 5.5, z: -10}
+ - {x: 7, y: 5, z: -10}
+ - {x: 3.5, y: 5, z: -10}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 5.5, y: 5.5, z: -0.42432785}
+ - {x: 7.5, y: 5.5, z: -0.42432785}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -0.42432785}
+ - {x: 5.5, y: 5.5, z: -0.42432785}
+ - {x: 0.5, y: 3.5, z: 0}
+ - {x: 5.5, y: 3.5, z: 0}
+ - {x: 5.5, y: 5, z: 0}
+ - {x: 0.5, y: 5, z: 0}
+ - {x: 5.5, y: 3.5, z: 0}
+ - {x: 7.5, y: 3.5, z: 0}
+ - {x: 7.5, y: 5, z: 0}
+ - {x: 5.5, y: 5, z: 0}
+ - {x: 0.5, y: 3.5, z: -10}
+ - {x: 0.5, y: 5, z: -10}
+ - {x: 3.5, y: 5, z: -10}
+ - {x: 3.5, y: 3.5, z: -9.999606}
+ - {x: 3.5, y: 5, z: -10}
+ - {x: 7, y: 5, z: -10}
+ - {x: 7, y: 3.5, z: -9.99963}
+ - {x: 3.5, y: 3.5, z: -9.999606}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 0.5, z: -0.42432785}
+ - {x: 10, y: 1.4999912, z: -0.42432785}
+ - {x: 10, y: 1.4999912, z: 0}
+ - {x: 10, y: 1.4999912, z: -0.42432785}
+ - {x: 10, y: 3.5, z: -0.42432785}
+ - {x: 10, y: 3.5, z: 0}
+ - {x: 10, y: 1.4999912, z: 0}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 0.5, y: 0.5, z: 0}
+ - {x: 0.5, y: 1.4999912, z: 0}
+ - {x: 0, y: 1.4999912, z: 0}
+ - {x: 0.5, y: 1.4999912, z: 0}
+ - {x: 0.5, y: 3.5, z: 0}
+ - {x: 0, y: 3.5, z: 0}
+ - {x: 0, y: 1.4999912, z: 0}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0, y: 1.4999912, z: -10}
+ - {x: 0.5, y: 1.4999912, z: -10}
+ - {x: 0.5, y: 0.5, z: -10}
+ - {x: 0, y: 1.4999912, z: -10}
+ - {x: 0, y: 3.5, z: -10}
+ - {x: 0.5, y: 3.5, z: -10}
+ - {x: 0.5, y: 1.4999912, z: -10}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 0, y: 1.4999912, z: 0}
+ - {x: 0, y: 1.4999912, z: -0.42432785}
+ - {x: 0, y: 0.5, z: -0.42432785}
+ - {x: 0, y: 1.4999912, z: 0}
+ - {x: 0, y: 3.5, z: 0}
+ - {x: 0, y: 3.5, z: -0.42432785}
+ - {x: 0, y: 1.4999912, z: -0.42432785}
+ - {x: 0, y: 0.5, z: -0.42432785}
+ - {x: 0, y: 1.4999912, z: -0.42432785}
+ - {x: 0, y: 1.4999912, z: -9.424328}
+ - {x: 0, y: 0.5, z: -9.424328}
+ - {x: 0, y: 1.4999912, z: -0.42432785}
+ - {x: 0, y: 3.5, z: -0.42432785}
+ - {x: 0, y: 3.5, z: -9.424328}
+ - {x: 0, y: 1.4999912, z: -9.424328}
+ - {x: 0, y: 3.5, z: -9.424328}
+ - {x: 0, y: 3.5, z: -10}
+ - {x: 0, y: 1.4999912, z: -10}
+ - {x: 0, y: 1.4999912, z: -9.424328}
+ - {x: 0, y: 1.4999912, z: -10}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0, y: 0.5, z: -9.424328}
+ - {x: 0, y: 1.4999912, z: -9.424328}
+ - {x: 10, y: 0.5, z: -9.424328}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 10, y: 1.4999912, z: -10}
+ - {x: 10, y: 1.4999912, z: -9.424328}
+ - {x: 10, y: 1.4999912, z: -10}
+ - {x: 10, y: 3.5, z: -10}
+ - {x: 10, y: 3.5, z: -9.424328}
+ - {x: 10, y: 1.4999912, z: -9.424328}
+ - {x: 9.499965, y: 0.50003535, z: -10.000239}
+ - {x: 9.499965, y: 1.5000088, z: -10.000221}
+ - {x: 10, y: 1.4999912, z: -10}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 9.499965, y: 1.5000088, z: -10.000221}
+ - {x: 9.499965, y: 3.5, z: -10.000204}
+ - {x: 10, y: 3.5, z: -10}
+ - {x: 10, y: 1.4999912, z: -10}
+ - {x: 10, y: 0.5, z: -0.42432785}
+ - {x: 10, y: 0.5, z: -9.424328}
+ - {x: 10, y: 1.4999912, z: -9.424328}
+ - {x: 10, y: 1.4999912, z: -0.42432785}
+ - {x: 10, y: 1.4999912, z: -9.424328}
+ - {x: 10, y: 3.5, z: -9.424328}
+ - {x: 10, y: 3.5, z: -0.42432785}
+ - {x: 10, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 0.5, z: 0}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 1.4999912, z: 0}
+ - {x: 9.5, y: 1.4999912, z: 0}
+ - {x: 10, y: 1.4999912, z: 0}
+ - {x: 10, y: 3.5, z: 0}
+ - {x: 9.5, y: 3.5, z: 0}
+ - {x: 9.5, y: 1.4999912, z: 0}
+ - {x: 8, y: 0.5, z: 0}
+ - {x: 9.5, y: 0.5, z: 0}
+ - {x: 9.5, y: 1.4999912, z: 0}
+ - {x: 8, y: 1.4999912, z: 0}
+ - {x: 9.5, y: 1.4999912, z: 0}
+ - {x: 9.5, y: 3.5, z: 0}
+ - {x: 8, y: 3.5, z: 0}
+ - {x: 8, y: 1.4999912, z: 0}
+ - {x: 0.5, y: 0.5, z: -0.42432785}
+ - {x: 0.5, y: 0.5, z: -9.424328}
+ - {x: 0.5, y: 1.4999912, z: -9.424328}
+ - {x: 0.5, y: 1.4999912, z: -0.42432785}
+ - {x: 0.5, y: 1.4999912, z: -9.424328}
+ - {x: 0.5, y: 3.5, z: -9.424328}
+ - {x: 0.5, y: 3.5, z: -0.42432785}
+ - {x: 0.5, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 0.5, z: -0.42432785}
+ - {x: 9.5, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 1.4999912, z: -9.424328}
+ - {x: 9.5, y: 0.5, z: -9.424328}
+ - {x: 9.5, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -9.424328}
+ - {x: 9.5, y: 1.4999912, z: -9.424328}
+ - {x: 8, y: 0.5, z: -0.42432785}
+ - {x: 8, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 1.4999912, z: -0.42432785}
+ - {x: 9.5, y: 0.5, z: -0.42432785}
+ - {x: 8, y: 1.4999912, z: -0.42432785}
+ - {x: 8, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 3.5, z: -0.42432785}
+ - {x: 9.5, y: 1.4999912, z: -0.42432785}
+ - {x: 8, y: 3.5, z: -9.424328}
+ - {x: 8, y: 1.4999912, z: -9.424328}
+ - {x: 8, y: 1.5000088, z: -10.000196}
+ - {x: 8, y: 3.5, z: -10.00019}
+ - {x: 8, y: 1.4999912, z: -9.424328}
+ - {x: 8, y: 0.5, z: -9.424328}
+ - {x: 8, y: 0.50003535, z: -10.000204}
+ - {x: 8, y: 1.5000088, z: -10.000196}
+ - {x: 9.5, y: 0.5, z: -9.424328}
+ - {x: 9.5, y: 1.4999912, z: -9.424328}
+ - {x: 9.499965, y: 1.5000088, z: -10.000221}
+ - {x: 9.499965, y: 0.50003535, z: -10.000239}
+ - {x: 9.5, y: 1.4999912, z: -9.424328}
+ - {x: 9.5, y: 3.5, z: -9.424328}
+ - {x: 9.499965, y: 3.5, z: -10.000204}
+ - {x: 9.499965, y: 1.5000088, z: -10.000221}
+ - {x: 7.5, y: 0.5, z: 0}
+ - {x: 8, y: 0.5, z: 0}
+ - {x: 8, y: 1.4999912, z: 0}
+ - {x: 7.5, y: 1.4999912, z: 0}
+ - {x: 8, y: 1.4999912, z: 0}
+ - {x: 8, y: 3.5, z: 0}
+ - {x: 7.5, y: 3.5, z: 0}
+ - {x: 7.5, y: 1.4999912, z: 0}
+ - {x: 7, y: 3.5, z: -9.99963}
+ - {x: 8, y: 3.5, z: -10.00019}
+ - {x: 8, y: 1.5000088, z: -10.000196}
+ - {x: 7, y: 1.4999956, z: -9.999632}
+ - {x: 8, y: 1.5000088, z: -10.000196}
+ - {x: 8, y: 0.50003535, z: -10.000204}
+ - {x: 7, y: 0.50001764, z: -10.000102}
+ - {x: 7, y: 1.4999956, z: -9.999632}
+ - {x: 0.5, y: 0.5, z: 0}
+ - {x: 5.5, y: 0.5, z: 0}
+ - {x: 5.5, y: 1.4999912, z: 0}
+ - {x: 0.5, y: 1.4999912, z: 0}
+ - {x: 5.5, y: 1.4999912, z: 0}
+ - {x: 5.5, y: 3.5, z: 0}
+ - {x: 0.5, y: 3.5, z: 0}
+ - {x: 0.5, y: 1.4999912, z: 0}
+ - {x: 5.5, y: 0.5, z: 0}
+ - {x: 7.5, y: 0.5, z: 0}
+ - {x: 7.5, y: 1.4999912, z: 0}
+ - {x: 5.5, y: 1.4999912, z: 0}
+ - {x: 7.5, y: 1.4999912, z: 0}
+ - {x: 7.5, y: 3.5, z: 0}
+ - {x: 5.5, y: 3.5, z: 0}
+ - {x: 5.5, y: 1.4999912, z: 0}
+ - {x: 0.5, y: 3.5, z: -10}
+ - {x: 3.5, y: 3.5, z: -9.999606}
+ - {x: 3.5, y: 1.4999933, z: -9.999607}
+ - {x: 0.5, y: 1.4999912, z: -10}
+ - {x: 3.5, y: 1.4999933, z: -9.999607}
+ - {x: 3.5, y: 0.5000088, z: -10.0000515}
+ - {x: 0.5, y: 0.5, z: -10}
+ - {x: 0.5, y: 1.4999912, z: -10}
+ - {x: 7, y: 1.4999956, z: -9.999632}
+ - {x: 7, y: 0.50001764, z: -10.000102}
+ - {x: 3.5, y: 0.5000088, z: -10.0000515}
+ - {x: 3.5, y: 1.4999933, z: -9.999607}
+ - {x: 3.5, y: 0.5, z: -9.424328}
+ - {x: 0.5, y: 0.5, z: -9.424328}
+ - {x: 0.5, y: 0.5, z: -0.42432785}
+ - {x: 3.5, y: 0.5, z: -0.42432785}
+ - {x: 3.5, y: 5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 3.5, z: -0.42432785}
+ - {x: 0.5, y: 5, z: -0.42432785}
+ - {x: 3.5, y: 5, z: -0.42432785}
+ - {x: 3.5, y: 3.5, z: -0.42432785}
+ - {x: 0.5, y: 3.5, z: -9.424328}
+ - {x: 3.5, y: 3.5, z: -9.424328}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 0.5, z: -0.42432785}
+ - {x: 0.5, y: 1.4999912, z: -0.42432785}
+ - {x: 3.5, y: 1.4999912, z: -0.42432785}
+ - {x: 3.5, y: 0.5, z: -0.42432785}
+ - {x: 0.5, y: 1.4999912, z: -0.42432785}
+ - {x: 0.5, y: 3.5, z: -0.42432785}
+ - {x: 3.5, y: 3.5, z: -0.42432785}
+ - {x: 3.5, y: 1.4999912, z: -0.42432785}
+ - {x: 0.5, y: 0.5, z: -9.424328}
+ - {x: 3.5, y: 0.5, z: -9.424328}
+ - {x: 3.5, y: 1.4999912, z: -9.424328}
+ - {x: 0.5, y: 1.4999912, z: -9.424328}
+ - {x: 0.5, y: 1.4999912, z: -9.424328}
+ - {x: 3.5, y: 1.4999912, z: -9.424328}
+ - {x: 3.5, y: 3.5, z: -9.424328}
+ - {x: 0.5, y: 3.5, z: -9.424328}
+ - {x: 8, y: 0.5, z: -9.424328}
+ - {x: 7, y: 0.5, z: -9.424328}
+ - {x: 7, y: 0.5, z: -0.42432785}
+ - {x: 8, y: 0.5, z: -0.42432785}
+ - {x: 7, y: 0.5, z: -9.424328}
+ - {x: 3.5, y: 0.5, z: -9.424328}
+ - {x: 3.5, y: 0.5, z: -0.42432785}
+ - {x: 7, y: 0.5, z: -0.42432785}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 8, y: 5, z: -0.42432785}
+ - {x: 7, y: 5, z: -0.42432785}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 7, y: 5, z: -0.42432785}
+ - {x: 3.5, y: 5, z: -0.42432785}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 3.5, y: 3.5, z: -0.42432785}
+ - {x: 3.5, y: 5, z: -0.42432785}
+ - {x: 7, y: 5, z: -0.42432785}
+ - {x: 7, y: 3.5, z: -0.42432785}
+ - {x: 7, y: 5, z: -0.42432785}
+ - {x: 8, y: 5, z: -0.42432785}
+ - {x: 8, y: 3.5, z: -0.42432785}
+ - {x: 7, y: 3.5, z: -0.42432785}
+ - {x: 3.5, y: 3.5, z: -9.424328}
+ - {x: 7, y: 3.5, z: -9.424328}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 7, y: 3.5, z: -9.424328}
+ - {x: 8, y: 3.5, z: -9.424328}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 8, y: 5, z: -9.424328}
+ - {x: 9.5, y: 5, z: -9.424328}
+ - {x: 9.5, y: 5.5, z: -9.424328}
+ - {x: 8, y: 5.5, z: -9.424328}
+ - {x: 7.5, y: 5.5, z: -9.424328}
+ - {x: 5.5, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 5.5, z: -9.424328}
+ - {x: 0.5, y: 5, z: -9.424328}
+ - {x: 3.5, y: 5, z: -9.424328}
+ - {x: 7, y: 5, z: -9.424328}
+ - {x: 3.5, y: 0.5, z: -0.42432785}
+ - {x: 3.5, y: 1.4999912, z: -0.42432785}
+ - {x: 7, y: 1.4999912, z: -0.42432785}
+ - {x: 7, y: 0.5, z: -0.42432785}
+ - {x: 7, y: 1.4999912, z: -0.42432785}
+ - {x: 8, y: 1.4999912, z: -0.42432785}
+ - {x: 8, y: 0.5, z: -0.42432785}
+ - {x: 7, y: 0.5, z: -0.42432785}
+ - {x: 3.5, y: 1.4999912, z: -0.42432785}
+ - {x: 3.5, y: 3.5, z: -0.42432785}
+ - {x: 7, y: 3.5, z: -0.42432785}
+ - {x: 7, y: 1.4999912, z: -0.42432785}
+ - {x: 7, y: 3.5, z: -0.42432785}
+ - {x: 8, y: 3.5, z: -0.42432785}
+ - {x: 8, y: 1.4999912, z: -0.42432785}
+ - {x: 7, y: 1.4999912, z: -0.42432785}
+ - {x: 3.5, y: 0.5, z: -9.424328}
+ - {x: 7, y: 0.5, z: -9.424328}
+ - {x: 7, y: 1.4999912, z: -9.424328}
+ - {x: 3.5, y: 1.4999912, z: -9.424328}
+ - {x: 7, y: 0.5, z: -9.424328}
+ - {x: 8, y: 0.5, z: -9.424328}
+ - {x: 8, y: 1.4999912, z: -9.424328}
+ - {x: 7, y: 1.4999912, z: -9.424328}
+ - {x: 7, y: 1.4999912, z: -9.424328}
+ - {x: 8, y: 1.4999912, z: -9.424328}
+ - {x: 8, y: 3.5, z: -9.424328}
+ - {x: 7, y: 3.5, z: -9.424328}
+ - {x: 3.5, y: 1.4999912, z: -9.424328}
+ - {x: 3.5, y: 3.5, z: -9.424328}
+ - {x: 3.5, y: 1.4999933, z: -9.999607}
+ - {x: 3.5, y: 3.5, z: -9.999606}
+ - {x: 3.5, y: 3.5, z: -9.424328}
+ - {x: 7, y: 3.5, z: -9.424328}
+ - {x: 3.5, y: 3.5, z: -9.999606}
+ - {x: 7, y: 3.5, z: -9.99963}
+ - {x: 7, y: 3.5, z: -9.424328}
+ - {x: 7, y: 1.4999912, z: -9.424328}
+ - {x: 7, y: 3.5, z: -9.99963}
+ - {x: 7, y: 1.4999956, z: -9.999632}
+ - {x: 7, y: 1.4999912, z: -9.424328}
+ - {x: 3.5, y: 1.4999912, z: -9.424328}
+ - {x: 7, y: 1.4999956, z: -9.999632}
+ - {x: 3.5, y: 1.4999933, z: -9.999607}
+ m_Textures0:
+ - {x: 0, y: 0}
+ - {x: -0.5, y: 0}
+ - {x: -0.5, y: 0.5}
+ - {x: 0, y: 0.5}
+ - {x: 0.49946415, y: 0.0026700709}
+ - {x: -0.00053584954, y: 0.0026700636}
+ - {x: -0.00053584954, y: 0.50267005}
+ - {x: 0.49946415, y: 0.50267005}
+ - {x: -9.5, y: 0}
+ - {x: -10, y: 0}
+ - {x: -10, y: 0.5}
+ - {x: -9.5, y: 0.5}
+ - {x: 9.499429, y: 0.50270563}
+ - {x: 9.999464, y: 0.5026702}
+ - {x: 9.999464, y: 0.0026702068}
+ - {x: 9.499464, y: 0.0026701996}
+ - {x: -9.424328, y: 0}
+ - {x: -10, y: 0}
+ - {x: -10, y: 0.5}
+ - {x: -9.424328, y: 0.5}
+ - {x: 10, y: 0}
+ - {x: 9.424328, y: 0}
+ - {x: 9.424328, y: 0.5}
+ - {x: 10, y: 0.5}
+ - {x: 0.5, y: -10}
+ - {x: 0, y: -10}
+ - {x: 0, y: -9.424328}
+ - {x: 0.5, y: -9.424328}
+ - {x: -0.5, y: -10}
+ - {x: -0.5, y: -9.424328}
+ - {x: 0, y: -9.424328}
+ - {x: 0, y: -10}
+ - {x: 10, y: -10}
+ - {x: 9.5, y: -10}
+ - {x: 9.5, y: -9.424328}
+ - {x: 10, y: -9.424328}
+ - {x: -10, y: -10}
+ - {x: -10, y: -9.424328}
+ - {x: -9.5, y: -9.424328}
+ - {x: -9.5, y: -10}
+ - {x: 0, y: 0}
+ - {x: -0.42432785, y: 0}
+ - {x: -0.42432785, y: 0.5}
+ - {x: 0, y: 0.5}
+ - {x: -0.42432785, y: 0}
+ - {x: -9.424328, y: 0}
+ - {x: -9.424328, y: 0.5}
+ - {x: -0.42432785, y: 0.5}
+ - {x: 0, y: 0}
+ - {x: 0, y: 0.5}
+ - {x: 0.42432785, y: 0.5}
+ - {x: 0.42432785, y: 0}
+ - {x: 0.42432785, y: 0.5}
+ - {x: 9.424328, y: 0.5}
+ - {x: 9.424328, y: 0}
+ - {x: 0.42432785, y: 0}
+ - {x: 0.5, y: -9.424328}
+ - {x: 0, y: -9.424328}
+ - {x: 0, y: -0.42432785}
+ - {x: 0.5, y: -0.42432785}
+ - {x: 0, y: -0.42432785}
+ - {x: 0, y: 0}
+ - {x: 0.5, y: 0}
+ - {x: 0.5, y: -0.42432785}
+ - {x: -0.5, y: -9.424328}
+ - {x: -0.5, y: -0.42432785}
+ - {x: 0, y: -0.42432785}
+ - {x: 0, y: -9.424328}
+ - {x: -0.5, y: -0.42432785}
+ - {x: -0.5, y: 0}
+ - {x: 0, y: 0}
+ - {x: 0, y: -0.42432785}
+ - {x: 10, y: -9.424328}
+ - {x: 9.5, y: -9.424328}
+ - {x: 9.5, y: -0.42432785}
+ - {x: 10, y: -0.42432785}
+ - {x: 9.5, y: -0.42432785}
+ - {x: 9.5, y: 0}
+ - {x: 10, y: 0}
+ - {x: 10, y: -0.42432785}
+ - {x: -10, y: -9.424328}
+ - {x: -10, y: -0.42432785}
+ - {x: -9.5, y: -0.42432785}
+ - {x: -9.5, y: -9.424328}
+ - {x: -10, y: -0.42432785}
+ - {x: -10, y: 0}
+ - {x: -9.5, y: 0}
+ - {x: -9.5, y: -0.42432785}
+ - {x: 0, y: 5}
+ - {x: -0.42432785, y: 5}
+ - {x: 0, y: 5.5}
+ - {x: -0.42432785, y: 5.5}
+ - {x: 0, y: 5}
+ - {x: -0.5, y: 5}
+ - {x: 0, y: 5.5}
+ - {x: -0.5, y: 5.5}
+ - {x: 0.5, y: 5}
+ - {x: 0, y: 5}
+ - {x: 0.5, y: 5.5}
+ - {x: 0, y: 5.5}
+ - {x: 0.42432785, y: 5}
+ - {x: 0, y: 5}
+ - {x: 0.42432785, y: 5.5}
+ - {x: 0, y: 5.5}
+ - {x: 9.424328, y: 5}
+ - {x: 0.42432785, y: 5}
+ - {x: 9.424328, y: 5.5}
+ - {x: 0.42432785, y: 5.5}
+ - {x: -0.42432785, y: 5}
+ - {x: -9.424328, y: 5}
+ - {x: -0.42432785, y: 5.5}
+ - {x: -9.424328, y: 5.5}
+ - {x: 10, y: 5}
+ - {x: 9.424328, y: 5}
+ - {x: 10, y: 5.5}
+ - {x: 9.424328, y: 5.5}
+ - {x: -9.424328, y: 5}
+ - {x: -10, y: 5}
+ - {x: -9.424328, y: 5.5}
+ - {x: -10, y: 5.5}
+ - {x: 10, y: 5}
+ - {x: 9.5, y: 5}
+ - {x: 10, y: 5.5}
+ - {x: 9.5, y: 5.5}
+ - {x: 9.424328, y: 5}
+ - {x: 0.42432785, y: 5}
+ - {x: 9.424328, y: 5.5}
+ - {x: 0.42432785, y: 5.5}
+ - {x: -0.42432785, y: 5}
+ - {x: -9.424328, y: 5}
+ - {x: -0.42432785, y: 5.5}
+ - {x: -9.424328, y: 5.5}
+ - {x: -9.5, y: 5}
+ - {x: -10, y: 5}
+ - {x: -9.5, y: 5.5}
+ - {x: -10, y: 5.5}
+ - {x: -0.42432785, y: 5.5}
+ - {x: -0.42432785, y: 5}
+ - {x: -9.424328, y: 5.5}
+ - {x: -9.424328, y: 5}
+ - {x: 0.42432785, y: 5}
+ - {x: 0.42432785, y: 5.5}
+ - {x: 9.424328, y: 5}
+ - {x: 9.424328, y: 5.5}
+ - {x: -0.42432785, y: 3.5}
+ - {x: -0.42432785, y: 5}
+ - {x: 0, y: 5}
+ - {x: 0, y: 3.5}
+ - {x: -0.5, y: 3.5}
+ - {x: -0.5, y: 5}
+ - {x: 0, y: 5}
+ - {x: 0, y: 3.5}
+ - {x: 0, y: 3.5}
+ - {x: 0, y: 5}
+ - {x: 0.5, y: 5}
+ - {x: 0.5, y: 3.5}
+ - {x: 0, y: 3.5}
+ - {x: 0, y: 5}
+ - {x: 0.42432785, y: 5}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 0.42432785, y: 5}
+ - {x: 9.424328, y: 5}
+ - {x: 9.424328, y: 3.5}
+ - {x: 9.424328, y: 3.5}
+ - {x: 9.424328, y: 5}
+ - {x: 10, y: 5}
+ - {x: 10, y: 3.5}
+ - {x: -10, y: 3.5}
+ - {x: -10, y: 5}
+ - {x: -9.424328, y: 5}
+ - {x: -9.424328, y: 3.5}
+ - {x: 9.4971285, y: 3.4994574}
+ - {x: 9.497164, y: 4.9994574}
+ - {x: 9.997164, y: 4.9994574}
+ - {x: 9.997164, y: 3.4994574}
+ - {x: -9.424328, y: 3.5}
+ - {x: -9.424328, y: 5}
+ - {x: -0.42432785, y: 5}
+ - {x: -0.42432785, y: 3.5}
+ - {x: -10, y: 3.5}
+ - {x: -10, y: 5}
+ - {x: -9.5, y: 5}
+ - {x: -9.5, y: 3.5}
+ - {x: -8, y: 0}
+ - {x: -9.5, y: 0}
+ - {x: -9.5, y: 0.5}
+ - {x: -8, y: 0.5}
+ - {x: 7.999464, y: 0.5027056}
+ - {x: 9.499429, y: 0.50270563}
+ - {x: 9.499464, y: 0.0026701996}
+ - {x: 7.999464, y: 0.0026701782}
+ - {x: 9.5, y: -10}
+ - {x: 8, y: -10}
+ - {x: 8, y: -9.424328}
+ - {x: 9.5, y: -9.424328}
+ - {x: -9.5, y: -10}
+ - {x: -9.5, y: -9.424328}
+ - {x: -8, y: -9.424328}
+ - {x: -8, y: -10}
+ - {x: 9.5, y: -0.42432785}
+ - {x: 8, y: -0.42432785}
+ - {x: 8, y: 0}
+ - {x: 9.5, y: 0}
+ - {x: -9.5, y: -0.42432785}
+ - {x: -8, y: -0.42432785}
+ - {x: -8, y: -9.424328}
+ - {x: -9.5, y: -9.424328}
+ - {x: -9.5, y: 0}
+ - {x: -8, y: 0}
+ - {x: -8, y: -0.42432785}
+ - {x: -9.5, y: -0.42432785}
+ - {x: -8, y: 5}
+ - {x: -9.5, y: 5}
+ - {x: -9.5, y: 5.5}
+ - {x: -8, y: 5.5}
+ - {x: 9.5, y: 5}
+ - {x: 8, y: 5}
+ - {x: 8, y: 5.5}
+ - {x: 9.5, y: 5.5}
+ - {x: 8, y: -0.42432785}
+ - {x: 9.5, y: -0.42432785}
+ - {x: 9.5, y: -9.424328}
+ - {x: 8, y: -9.424328}
+ - {x: -8, y: 3.5}
+ - {x: -9.5, y: 3.5}
+ - {x: -9.5, y: 5}
+ - {x: -8, y: 5}
+ - {x: 8.000966, y: 4.999688}
+ - {x: 9.500966, y: 4.999688}
+ - {x: 9.500931, y: 3.4996881}
+ - {x: 8.000966, y: 3.4996881}
+ - {x: 9.5, y: -9.424328}
+ - {x: 8, y: -9.424328}
+ - {x: 8, y: -0.42432785}
+ - {x: 9.5, y: -0.42432785}
+ - {x: -9.5, y: -0.42432785}
+ - {x: -8, y: -0.42432785}
+ - {x: -8, y: -9.424328}
+ - {x: -9.5, y: -9.424328}
+ - {x: -9.424328, y: 3.5}
+ - {x: -9.424328, y: 5}
+ - {x: -0.42432785, y: 5}
+ - {x: -0.42432785, y: 3.5}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 0.42432785, y: 5}
+ - {x: 9.424328, y: 5}
+ - {x: 9.424328, y: 3.5}
+ - {x: 8, y: 3.5}
+ - {x: 8, y: 5}
+ - {x: 9.5, y: 5}
+ - {x: 9.5, y: 3.5}
+ - {x: -9.5, y: 3.5}
+ - {x: -9.5, y: 5}
+ - {x: -8, y: 5}
+ - {x: -8, y: 3.5}
+ - {x: 9.5, y: -9.424358}
+ - {x: 8, y: -9.424358}
+ - {x: 9.499965, y: -10.00027}
+ - {x: 8, y: -10.000235}
+ - {x: -8, y: -9.424328}
+ - {x: -9.5, y: -9.424328}
+ - {x: -8, y: -10.00019}
+ - {x: -9.499965, y: -10.000204}
+ - {x: -7.5, y: 0}
+ - {x: -8, y: 0}
+ - {x: -8, y: 0.5}
+ - {x: -7.5, y: 0.5}
+ - {x: 6.999464, y: 0.5026878}
+ - {x: 7.999464, y: 0.5027056}
+ - {x: 7.999464, y: 0.0026701782}
+ - {x: 6.999464, y: 0.0026701638}
+ - {x: 8, y: -10}
+ - {x: 7, y: -10}
+ - {x: 7.5, y: -9.424328}
+ - {x: 8, y: -9.424328}
+ - {x: -8, y: -10}
+ - {x: -8, y: -9.424328}
+ - {x: -7.5, y: -9.424328}
+ - {x: -7, y: -10}
+ - {x: 8, y: -0.42432785}
+ - {x: 7.5, y: -0.42432785}
+ - {x: 7.5, y: 0}
+ - {x: 8, y: 0}
+ - {x: -8, y: -9.424328}
+ - {x: -8, y: -0.42432785}
+ - {x: -7.5, y: -0.42432785}
+ - {x: -7.5, y: -9.424328}
+ - {x: -8, y: -0.42432785}
+ - {x: -8, y: 0}
+ - {x: -7.5, y: 0}
+ - {x: -7.5, y: -0.42432785}
+ - {x: -7.5, y: 5}
+ - {x: -8, y: 5}
+ - {x: -8, y: 5.5}
+ - {x: -7.5, y: 5.5}
+ - {x: 7, y: 5.5}
+ - {x: 8, y: 5.5}
+ - {x: 8, y: 5}
+ - {x: 7, y: 5}
+ - {x: 8, y: -9.424328}
+ - {x: 7.5, y: -9.424328}
+ - {x: 7.5, y: -0.42432785}
+ - {x: 8, y: -0.42432785}
+ - {x: -7.5, y: 3.5}
+ - {x: -8, y: 3.5}
+ - {x: -8, y: 5}
+ - {x: -7.5, y: 5}
+ - {x: 7.0009656, y: 4.999688}
+ - {x: 8.000966, y: 4.999688}
+ - {x: 8.000966, y: 3.4996881}
+ - {x: 7.0009656, y: 3.4996881}
+ - {x: -0.5, y: 0}
+ - {x: -5.5, y: 0}
+ - {x: -5.5, y: 0.5}
+ - {x: -0.5, y: 0.5}
+ - {x: -5.5, y: 0}
+ - {x: -7.5, y: 0}
+ - {x: -7.5, y: 0.5}
+ - {x: -5.5, y: 0.5}
+ - {x: 6.999464, y: 0.5026878}
+ - {x: 6.999464, y: 0.0026701638}
+ - {x: 3.499464, y: 0.0026701137}
+ - {x: 3.499464, y: 0.50267893}
+ - {x: 3.499464, y: 0.0026701137}
+ - {x: 0.49946415, y: 0.0026700709}
+ - {x: 0.49946415, y: 0.50267005}
+ - {x: 3.499464, y: 0.50267893}
+ - {x: 7, y: -10}
+ - {x: 3.5, y: -10}
+ - {x: 5.5, y: -9.424328}
+ - {x: 7.5, y: -9.424328}
+ - {x: 3.5, y: -10}
+ - {x: 0.5, y: -10}
+ - {x: 0.5, y: -9.424328}
+ - {x: 5.5, y: -9.424328}
+ - {x: -7, y: -10}
+ - {x: -7.5, y: -9.424328}
+ - {x: -5.5, y: -9.424328}
+ - {x: -3.5, y: -10}
+ - {x: -5.5, y: -9.424328}
+ - {x: -0.5, y: -9.424328}
+ - {x: -0.5, y: -10}
+ - {x: -3.5, y: -10}
+ - {x: 7.5, y: -0.42432785}
+ - {x: 5.5, y: -0.42432785}
+ - {x: 5.5, y: 0}
+ - {x: 7.5, y: 0}
+ - {x: 5.5, y: -0.42432785}
+ - {x: 0.5, y: -0.42432785}
+ - {x: 0.5, y: 0}
+ - {x: 5.5, y: 0}
+ - {x: -7.5, y: -9.424328}
+ - {x: -7.5, y: -0.42432785}
+ - {x: -5.5, y: -0.42432785}
+ - {x: -5.5, y: -9.424328}
+ - {x: -5.5, y: -0.42432785}
+ - {x: -0.5, y: -0.42432785}
+ - {x: -0.5, y: -9.424328}
+ - {x: -5.5, y: -9.424328}
+ - {x: -7.5, y: -0.42432785}
+ - {x: -7.5, y: 0}
+ - {x: -5.5, y: 0}
+ - {x: -5.5, y: -0.42432785}
+ - {x: -5.5, y: 0}
+ - {x: -0.5, y: 0}
+ - {x: -0.5, y: -0.42432785}
+ - {x: -5.5, y: -0.42432785}
+ - {x: -0.5, y: 5}
+ - {x: -5.5, y: 5}
+ - {x: -5.5, y: 5.5}
+ - {x: -0.5, y: 5.5}
+ - {x: -5.5, y: 5}
+ - {x: -7.5, y: 5}
+ - {x: -7.5, y: 5.5}
+ - {x: -5.5, y: 5.5}
+ - {x: 0.5, y: 5}
+ - {x: 0.5, y: 5.5}
+ - {x: 3.5, y: 5.5}
+ - {x: 3.5, y: 5}
+ - {x: 3.5, y: 5.5}
+ - {x: 7, y: 5.5}
+ - {x: 7, y: 5}
+ - {x: 3.5, y: 5}
+ - {x: 7.5, y: -9.424328}
+ - {x: 5.5, y: -9.424328}
+ - {x: 5.5, y: -0.42432785}
+ - {x: 7.5, y: -0.42432785}
+ - {x: 5.5, y: -9.424328}
+ - {x: 0.5, y: -9.424328}
+ - {x: 0.5, y: -0.42432785}
+ - {x: 5.5, y: -0.42432785}
+ - {x: -0.5, y: 3.5}
+ - {x: -5.5, y: 3.5}
+ - {x: -5.5, y: 5}
+ - {x: -0.5, y: 5}
+ - {x: -5.5, y: 3.5}
+ - {x: -7.5, y: 3.5}
+ - {x: -7.5, y: 5}
+ - {x: -5.5, y: 5}
+ - {x: 0.5009658, y: 3.4996881}
+ - {x: 0.5009658, y: 4.999688}
+ - {x: 3.5009658, y: 4.999688}
+ - {x: 3.5009658, y: 3.4996881}
+ - {x: 3.5009658, y: 4.999688}
+ - {x: 7.0009656, y: 4.999688}
+ - {x: 7.0009656, y: 3.4996881}
+ - {x: 3.5009658, y: 3.4996881}
+ - {x: 0, y: 0.5}
+ - {x: -0.42432785, y: 0.5}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: 0, y: 1.4999912}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: -0.42432785, y: 3.5}
+ - {x: 0, y: 3.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0, y: 0.5}
+ - {x: -0.5, y: 0.5}
+ - {x: -0.5, y: 1.4999912}
+ - {x: 0, y: 1.4999912}
+ - {x: -0.5, y: 1.4999912}
+ - {x: -0.5, y: 3.5}
+ - {x: 0, y: 3.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0, y: 0.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0.5, y: 1.4999912}
+ - {x: 0.5, y: 0.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0, y: 3.5}
+ - {x: 0.5, y: 3.5}
+ - {x: 0.5, y: 1.4999912}
+ - {x: 0, y: 0.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 0.42432785, y: 0.5}
+ - {x: 0, y: 1.4999912}
+ - {x: 0, y: 3.5}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 0.42432785, y: 0.5}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 9.424328, y: 0.5}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 9.424328, y: 3.5}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 9.424328, y: 3.5}
+ - {x: 10, y: 3.5}
+ - {x: 10, y: 1.4999912}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 10, y: 1.4999912}
+ - {x: 10, y: 0.5}
+ - {x: 9.424328, y: 0.5}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: -9.424328, y: 0.5}
+ - {x: -10, y: 0.5}
+ - {x: -10, y: 1.4999912}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -10, y: 1.4999912}
+ - {x: -10, y: 3.5}
+ - {x: -9.424328, y: 3.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: 9.4971285, y: 0.49949265}
+ - {x: 9.4971285, y: 1.4994662}
+ - {x: 9.997164, y: 1.4994485}
+ - {x: 9.997164, y: 0.4994573}
+ - {x: 9.4971285, y: 1.4994662}
+ - {x: 9.4971285, y: 3.4994574}
+ - {x: 9.997164, y: 3.4994574}
+ - {x: 9.997164, y: 1.4994485}
+ - {x: -0.42432785, y: 0.5}
+ - {x: -9.424328, y: 0.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -9.424328, y: 3.5}
+ - {x: -0.42432785, y: 3.5}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: -9.5, y: 0.5}
+ - {x: -10, y: 0.5}
+ - {x: -10, y: 1.4999912}
+ - {x: -9.5, y: 1.4999912}
+ - {x: -10, y: 1.4999912}
+ - {x: -10, y: 3.5}
+ - {x: -9.5, y: 3.5}
+ - {x: -9.5, y: 1.4999912}
+ - {x: -8, y: 0.5}
+ - {x: -9.5, y: 0.5}
+ - {x: -9.5, y: 1.4999912}
+ - {x: -8, y: 1.4999912}
+ - {x: -9.5, y: 1.4999912}
+ - {x: -9.5, y: 3.5}
+ - {x: -8, y: 3.5}
+ - {x: -8, y: 1.4999912}
+ - {x: -0.42432785, y: 0.5}
+ - {x: -9.424328, y: 0.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -9.424328, y: 3.5}
+ - {x: -0.42432785, y: 3.5}
+ - {x: -0.42432785, y: 1.4999912}
+ - {x: 0.42432785, y: 0.5}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 9.424328, y: 0.5}
+ - {x: 0.42432785, y: 1.4999912}
+ - {x: 0.42432785, y: 3.5}
+ - {x: 9.424328, y: 3.5}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 8, y: 0.5}
+ - {x: 8, y: 1.4999912}
+ - {x: 9.5, y: 1.4999912}
+ - {x: 9.5, y: 0.5}
+ - {x: 8, y: 1.4999912}
+ - {x: 8, y: 3.5}
+ - {x: 9.5, y: 3.5}
+ - {x: 9.5, y: 1.4999912}
+ - {x: -9.424328, y: 3.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -10.000196, y: 1.5000088}
+ - {x: -10.00019, y: 3.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -9.424328, y: 0.5}
+ - {x: -10.000204, y: 0.50003535}
+ - {x: -10.000196, y: 1.5000088}
+ - {x: 9.423746, y: 0.5}
+ - {x: 9.423746, y: 1.4999912}
+ - {x: 9.9996395, y: 1.5000088}
+ - {x: 9.999658, y: 0.50003535}
+ - {x: 9.423746, y: 1.4999912}
+ - {x: 9.423746, y: 3.5}
+ - {x: 9.999622, y: 3.5}
+ - {x: 9.9996395, y: 1.5000088}
+ - {x: -7.5, y: 0.5}
+ - {x: -8, y: 0.5}
+ - {x: -8, y: 1.4999912}
+ - {x: -7.5, y: 1.4999912}
+ - {x: -8, y: 1.4999912}
+ - {x: -8, y: 3.5}
+ - {x: -7.5, y: 3.5}
+ - {x: -7.5, y: 1.4999912}
+ - {x: 7.0009656, y: 3.4996881}
+ - {x: 8.000966, y: 3.4996881}
+ - {x: 8.000966, y: 1.499697}
+ - {x: 7.0009656, y: 1.4996837}
+ - {x: 8.000966, y: 1.499697}
+ - {x: 8.000966, y: 0.49972346}
+ - {x: 7.0009656, y: 0.49970576}
+ - {x: 7.0009656, y: 1.4996837}
+ - {x: -0.5, y: 0.5}
+ - {x: -5.5, y: 0.5}
+ - {x: -5.5, y: 1.4999912}
+ - {x: -0.5, y: 1.4999912}
+ - {x: -5.5, y: 1.4999912}
+ - {x: -5.5, y: 3.5}
+ - {x: -0.5, y: 3.5}
+ - {x: -0.5, y: 1.4999912}
+ - {x: -5.5, y: 0.5}
+ - {x: -7.5, y: 0.5}
+ - {x: -7.5, y: 1.4999912}
+ - {x: -5.5, y: 1.4999912}
+ - {x: -7.5, y: 1.4999912}
+ - {x: -7.5, y: 3.5}
+ - {x: -5.5, y: 3.5}
+ - {x: -5.5, y: 1.4999912}
+ - {x: 0.5009658, y: 3.4996881}
+ - {x: 3.5009658, y: 3.4996881}
+ - {x: 3.5009658, y: 1.4996815}
+ - {x: 0.5009658, y: 1.4996793}
+ - {x: 3.5009658, y: 1.4996815}
+ - {x: 3.5009658, y: 0.4996969}
+ - {x: 0.5009658, y: 0.4996881}
+ - {x: 0.5009658, y: 1.4996793}
+ - {x: 7.0009656, y: 1.4996837}
+ - {x: 7.0009656, y: 0.49970576}
+ - {x: 3.5009658, y: 0.4996969}
+ - {x: 3.5009658, y: 1.4996815}
+ - {x: 3.5, y: -9.424328}
+ - {x: 0.5, y: -9.424328}
+ - {x: 0.5, y: -0.42432785}
+ - {x: 3.5, y: -0.42432785}
+ - {x: -3.5, y: -0.42432785}
+ - {x: -0.5, y: -0.42432785}
+ - {x: -0.5, y: -9.424328}
+ - {x: -3.5, y: -9.424328}
+ - {x: 0.5, y: 3.5}
+ - {x: 0.5, y: 5}
+ - {x: 3.5, y: 5}
+ - {x: 3.5, y: 3.5}
+ - {x: -0.5, y: 3.5}
+ - {x: -3.5, y: 3.5}
+ - {x: -3.5, y: 5}
+ - {x: -0.5, y: 5}
+ - {x: 0.5, y: 0.5}
+ - {x: 0.5, y: 1.4999912}
+ - {x: 3.5, y: 1.4999912}
+ - {x: 3.5, y: 0.5}
+ - {x: 0.5, y: 1.4999912}
+ - {x: 0.5, y: 3.5}
+ - {x: 3.5, y: 3.5}
+ - {x: 3.5, y: 1.4999912}
+ - {x: -0.5, y: 0.5}
+ - {x: -3.5, y: 0.5}
+ - {x: -3.5, y: 1.4999912}
+ - {x: -0.5, y: 1.4999912}
+ - {x: -0.5, y: 1.4999912}
+ - {x: -3.5, y: 1.4999912}
+ - {x: -3.5, y: 3.5}
+ - {x: -0.5, y: 3.5}
+ - {x: 8, y: -9.424328}
+ - {x: 7, y: -9.424328}
+ - {x: 7, y: -0.42432785}
+ - {x: 8, y: -0.42432785}
+ - {x: 7, y: -9.424328}
+ - {x: 3.5, y: -9.424328}
+ - {x: 3.5, y: -0.42432785}
+ - {x: 7, y: -0.42432785}
+ - {x: -8, y: -9.424328}
+ - {x: -8, y: -0.42432785}
+ - {x: -7, y: -0.42432785}
+ - {x: -7, y: -9.424328}
+ - {x: -7, y: -0.42432785}
+ - {x: -3.5, y: -0.42432785}
+ - {x: -3.5, y: -9.424328}
+ - {x: -7, y: -9.424328}
+ - {x: 3.5, y: 3.5}
+ - {x: 3.5, y: 5}
+ - {x: 7, y: 5}
+ - {x: 7, y: 3.5}
+ - {x: 7, y: 5}
+ - {x: 8, y: 5}
+ - {x: 8, y: 3.5}
+ - {x: 7, y: 3.5}
+ - {x: -3.5, y: 3.5}
+ - {x: -7, y: 3.5}
+ - {x: -7, y: 5}
+ - {x: -3.5, y: 5}
+ - {x: -7, y: 3.5}
+ - {x: -8, y: 3.5}
+ - {x: -8, y: 5}
+ - {x: -7, y: 5}
+ - {x: 8, y: 5.5}
+ - {x: 9.5, y: 5.5}
+ - {x: 9.5, y: 5}
+ - {x: 8, y: 5}
+ - {x: 7, y: 5}
+ - {x: 3.5, y: 5}
+ - {x: 0.5, y: 5}
+ - {x: 0.5, y: 5.5}
+ - {x: 5.5, y: 5.5}
+ - {x: 7.5, y: 5.5}
+ - {x: -8, y: 5}
+ - {x: -9.5, y: 5}
+ - {x: -9.5, y: 5.5}
+ - {x: -8, y: 5.5}
+ - {x: -7.5, y: 5.5}
+ - {x: -5.5, y: 5.5}
+ - {x: -0.5, y: 5.5}
+ - {x: -0.5, y: 5}
+ - {x: -3.5, y: 5}
+ - {x: -7, y: 5}
+ - {x: 3.5, y: 0.5}
+ - {x: 3.5, y: 1.4999912}
+ - {x: 7, y: 1.4999912}
+ - {x: 7, y: 0.5}
+ - {x: 7, y: 1.4999912}
+ - {x: 8, y: 1.4999912}
+ - {x: 8, y: 0.5}
+ - {x: 7, y: 0.5}
+ - {x: 3.5, y: 1.4999912}
+ - {x: 3.5, y: 3.5}
+ - {x: 7, y: 3.5}
+ - {x: 7, y: 1.4999912}
+ - {x: 7, y: 3.5}
+ - {x: 8, y: 3.5}
+ - {x: 8, y: 1.4999912}
+ - {x: 7, y: 1.4999912}
+ - {x: -3.5, y: 0.5}
+ - {x: -7, y: 0.5}
+ - {x: -7, y: 1.4999912}
+ - {x: -3.5, y: 1.4999912}
+ - {x: -7, y: 0.5}
+ - {x: -8, y: 0.5}
+ - {x: -8, y: 1.4999912}
+ - {x: -7, y: 1.4999912}
+ - {x: -7, y: 1.4999912}
+ - {x: -8, y: 1.4999912}
+ - {x: -8, y: 3.5}
+ - {x: -7, y: 3.5}
+ - {x: -9.424328, y: 1.4999912}
+ - {x: -9.424328, y: 3.5}
+ - {x: -9.999607, y: 1.4999933}
+ - {x: -9.999606, y: 3.5}
+ - {x: -3.5, y: -9.424328}
+ - {x: -7, y: -9.424328}
+ - {x: -3.5, y: -9.999606}
+ - {x: -7, y: -9.99963}
+ - {x: 9.424328, y: 3.5}
+ - {x: 9.424328, y: 1.4999912}
+ - {x: 9.99963, y: 3.5}
+ - {x: 9.999632, y: 1.4999956}
+ - {x: 7, y: -9.424339}
+ - {x: 3.5, y: -9.424339}
+ - {x: 7, y: -9.999643}
+ - {x: 3.5, y: -9.999619}
+ m_Textures2: []
+ m_Textures3: []
+ m_Tangents:
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -0.00000005960465, z: 0, w: -1}
+ - {x: 1, y: -0.000000029802326, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -0.000000029802326, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0.9999999, y: 0.000000119192435, z: 0.00047867678, w: -1}
+ - {x: 1, y: 0.000000059596218, z: 0.0002393384, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0.000000059596218, z: 0.0002393384, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 1, y: 9.899489e-16, z: 0.00020407188, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 9.899489e-16, z: 0.00020407188, w: -1}
+ - {x: 0.99999994, y: 0, z: 0.00040814377, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -0.000000039737362, z: -0.000023524504, w: -1}
+ - {x: 1, y: -0.000000039736896, z: -0.000011762243, w: -1}
+ - {x: 1, y: -0.000000039736427, z: 1.902225e-11, w: -1}
+ - {x: 1, y: -0.000000039736896, z: -0.000011762243, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: -0.000004768484, w: -1}
+ - {x: 1, y: 0, z: -0.000009536968, w: -1}
+ - {x: 1, y: 0, z: -0.000004768484, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -7.219322e-10, z: 0, w: -1}
+ - {x: 1, y: -7.219322e-10, z: 0, w: -1}
+ - {x: 1, y: -0.0000000014438644, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -0.000000037019014, z: -0.00005101795, w: -1}
+ - {x: 1, y: -0.000000059602527, z: -0.000102035905, w: -1}
+ - {x: 1, y: -0.000000037019014, z: -0.00005101795, w: -1}
+ - {x: 1, y: -0.0000000144355, z: 2.9459837e-12, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 1.7486025e-15, z: -0.00027990338, w: -1}
+ - {x: 0.9999999, y: 0, z: -0.0005598067, w: -1}
+ - {x: 1, y: 1.7486025e-15, z: -0.00027990338, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: -0.0000000170299, z: -0.000014440836, w: -1}
+ - {x: 1, y: -0.000000015666176, z: -0.0000072204175, w: -1}
+ - {x: 1, y: -0.000000014302454, z: 1.4730814e-12, w: -1}
+ - {x: 1, y: -0.000000015666176, z: -0.0000072204175, w: -1}
+ - {x: 1, y: -0.000000017074246, z: -0.000008582917, w: -1}
+ - {x: 1, y: -0.00000001428028, z: 0, w: -1}
+ - {x: 1, y: -0.000000017074246, z: -0.000008582917, w: -1}
+ - {x: 1, y: -0.000000019868216, z: -0.000017165834, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0.00013128917, w: -1}
+ - {x: 1, y: 0, z: 0.000065644585, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0.000065644585, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: -0.0000034059797, w: -1}
+ - {x: 1, y: 0, z: -0.0000068119593, w: -1}
+ - {x: 1, y: 0, z: -0.0000034059797, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0.9999999, y: -3.1581853e-12, z: 0.00046059245, w: -1}
+ - {x: 0.9999999, y: -2.1036408e-12, z: 0.00044247427, w: -1}
+ - {x: 0.9999999, y: -3.1581853e-12, z: 0.00046059245, w: -1}
+ - {x: 0.9999999, y: -4.2132573e-12, z: 0.00047871066, w: -1}
+ - {x: 0.9999999, y: -2.4980127e-16, z: 0.0004253087, w: -1}
+ - {x: 1, y: -2.4980127e-16, z: 0.00040814382, w: -1}
+ - {x: 0.9999999, y: -2.4980127e-16, z: 0.0004253087, w: -1}
+ - {x: 0.9999999, y: 0, z: 0.0004424736, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -0.00006126973, y: 0, z: -1, w: -1}
+ - {x: -0.0000612707, y: 4.0391044e-21, z: -1, w: -1}
+ - {x: -0.00006127167, y: 0, z: -1, w: -1}
+ - {x: -0.0000612707, y: 4.0391044e-21, z: -1, w: -1}
+ - {x: -0.00006127167, y: 0, z: -1, w: -1}
+ - {x: -0.000061272585, y: 0, z: -1, w: -1}
+ - {x: -0.000061273495, y: 0, z: -1, w: -1}
+ - {x: -0.000061272585, y: 0, z: -1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0.9999999, y: -1.2490047e-16, z: -0.0005621909, w: -1}
+ - {x: 0.9999999, y: 1.9428993e-16, z: -0.00055980677, w: -1}
+ - {x: 0.9999999, y: -1.2490047e-16, z: -0.0005621909, w: -1}
+ - {x: 0.9999999, y: -5.5511045e-17, z: -0.0005645751, w: -1}
+ - {x: 0.9999999, y: 7.887232e-13, z: -0.0005645752, w: -1}
+ - {x: 0.99999994, y: 9.289042e-13, z: -0.0003333134, w: -1}
+ - {x: 1, y: 1.0586001e-12, z: -0.00010205148, w: -1}
+ - {x: 0.99999994, y: 9.289042e-13, z: -0.0003333134, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 3.4694356e-18, z: 0.00013113022, w: -1}
+ - {x: 1, y: 0, z: 0.00013128917, w: -1}
+ - {x: 1, y: 3.4694356e-18, z: 0.00013113022, w: -1}
+ - {x: 1, y: 0, z: 0.00013097127, w: -1}
+ - {x: 1, y: 4.2633225e-14, z: 0.00013097096, w: -1}
+ - {x: 1, y: 1.0895099e-13, z: 0.000056902405, w: -1}
+ - {x: 1, y: 1.7526875e-13, z: -0.000017166138, w: -1}
+ - {x: 1, y: 1.0895099e-13, z: 0.000056902405, w: -1}
+ - {x: 1, y: 2.1380933e-16, z: -0.0000070847423, w: -1}
+ - {x: 1, y: -0.0000000042574375, z: -0.00001076361, w: -1}
+ - {x: 1, y: -0.000000008514874, z: -0.000014442478, w: -1}
+ - {x: 1, y: -0.0000000042574375, z: -0.00001076361, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0.00000032355487, z: 0, w: -1}
+ - {x: 1, y: 0.00000032355487, z: 0, w: -1}
+ - {x: 1, y: 0.00000064710974, z: 0, w: -1}
+ m_Colors: []
+ m_UnwrapParameters:
+ m_HardAngle: 88
+ m_PackMargin: 20
+ m_AngleError: 8
+ m_AreaError: 15
+ m_PreserveMeshAssetOnDestroy: 0
+ assetGuid:
+ m_Mesh: {fileID: 1798258414}
+ m_IsSelectable: 1
+ m_SelectedFaces:
+ m_SelectedEdges: []
+ m_SelectedVertices:
+--- !u!1001 &1196652274
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 177638, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_Name
+ value: '[Graphy]'
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_Pivot.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_Pivot.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 22451668, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0abab5bb77339e4428787a870eb31bd3, type: 3}
--- !u!1 &1242979795
GameObject:
m_ObjectHideFlags: 0
@@ -1065,12 +7055,12 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1242979795}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 2, y: 2, z: 2}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -2.1999998, y: -3.9077988, z: 0.32567263}
+ m_LocalScale: {x: 3, y: 3, z: 3}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 2
+ m_Father: {fileID: 197851619}
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1336637677
GameObject:
@@ -1177,12 +7167,12 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1336637677}
- m_LocalRotation: {x: 0.32907352, y: -0.5194172, z: 0.18226238, w: 0.76726574}
- m_LocalPosition: {x: 2.2, y: 3.85, z: -1.31}
+ m_LocalRotation: {x: 0.32907355, y: -0.5194173, z: 0.18226239, w: 0.7672658}
+ m_LocalPosition: {x: 16.256123, y: 39.002842, z: -55.454655}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 7
+ m_Father: {fileID: 882904941}
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 43.973, y: -70.196, z: -4.955}
--- !u!1 &1452691610
GameObject:
@@ -1248,116 +7238,8 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 10
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1547366298
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1547366299}
- - component: {fileID: 1547366302}
- - component: {fileID: 1547366301}
- - component: {fileID: 1547366300}
- - component: {fileID: 1547366303}
- m_Layer: 6
- m_Name: CineCamera
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1547366299
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1547366298}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0.004, y: 0, z: 0.092}
- m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
- m_Children: []
- m_Father: {fileID: 963194228}
- m_RootOrder: 1
+ m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!65 &1547366300
-BoxCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1547366298}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 2
- m_Size: {x: 1, y: 1, z: 1}
- m_Center: {x: 0, y: 0, z: 0}
---- !u!23 &1547366301
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1547366298}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
---- !u!33 &1547366302
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1547366298}
- m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
---- !u!114 &1547366303
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1547366298}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 7718b950bcd0d2919b3e063a4d7afa73, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!1 &1640945938
GameObject:
m_ObjectHideFlags: 0
@@ -1564,12 +7446,121 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1669763704}
m_LocalRotation: {x: 0.37866265, y: -0, z: -0, w: 0.9255348}
- m_LocalPosition: {x: 2.2, y: 2.46, z: 0}
+ m_LocalPosition: {x: 16.256123, y: 37.612843, z: -54.144653}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 5
+ m_Father: {fileID: 882904941}
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 44.502, y: 0, z: 0}
+--- !u!850595691 &1692146846
+LightingSettings:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ serializedVersion: 3
+ m_GIWorkflowMode: 1
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_RealtimeEnvironmentLighting: 1
+ m_BounceScale: 1
+ m_AlbedoBoost: 1
+ m_IndirectOutputScale: 1
+ m_UsingShadowmask: 1
+ m_BakeBackend: 1
+ m_LightmapMaxSize: 1024
+ m_BakeResolution: 40
+ m_Padding: 2
+ m_TextureCompression: 1
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAO: 0
+ m_MixedBakeMode: 2
+ m_LightmapsBakeMode: 1
+ m_FilterMode: 1
+ m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_RealtimeResolution: 2
+ m_ForceWhiteAlbedo: 0
+ m_ForceUpdates: 0
+ m_FinalGather: 0
+ m_FinalGatherRayCount: 256
+ m_FinalGatherFiltering: 1
+ m_PVRCulling: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_LightProbeSampleCountMultiplier: 4
+ m_PVRBounces: 2
+ m_PVRMinBounces: 1
+ m_PVREnvironmentMIS: 1
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+--- !u!1 &1705185482
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1705185484}
+ - component: {fileID: 1705185483}
+ m_Layer: 0
+ m_Name: Discord RPC
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1705185483
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1705185482}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 88183e77c2589e58e8752a5fe5452fb8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ applicationID: 847225833223094302
+ rpcStatus: Working on a new tool.
+ rpcDetails: New tool
+ rpcLargeImage:
+ rpcLargeImageText:
+--- !u!4 &1705185484
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1705185482}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1738192761
GameObject:
m_ObjectHideFlags: 0
@@ -1602,6 +7593,7 @@ Transform:
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_Children:
- {fileID: 1640945939}
+ - {fileID: 463187682}
m_Father: {fileID: 963194228}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1619,7 +7611,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
_maxGrabDistance: 40
_minGrabDistance: 1
- _pickLine: {fileID: 0}
+ _pickLine: {fileID: 463187683}
_barrelPoint: {fileID: 0}
--- !u!65 &1738192764
BoxCollider:
@@ -1683,6 +7675,265 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1738192761}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!43 &1798258414
+Mesh:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: pb_Mesh-29190
+ serializedVersion: 10
+ m_SubMeshes:
+ - serializedVersion: 2
+ firstByte: 0
+ indexCount: 1080
+ topology: 0
+ baseVertex: 0
+ firstVertex: 0
+ vertexCount: 359
+ localAABB:
+ m_Center: {x: 5, y: 2.75, z: -5.0001197}
+ m_Extent: {x: 5, y: 2.75, z: 5.0001197}
+ m_Shapes:
+ vertices: []
+ shapes: []
+ channels: []
+ fullWeights: []
+ m_BindPose: []
+ m_BoneNameHashes:
+ m_RootBoneNameHash: 0
+ m_BonesAABB: []
+ m_VariableBoneCountWeights:
+ m_Data:
+ m_MeshCompression: 0
+ m_IsReadable: 1
+ m_KeepVertices: 0
+ m_KeepIndices: 0
+ m_IndexFormat: 0
+ m_IndexBuffer: 000001000200030000000200040005000600040007000500080009000a000b0008000a000c000d000e000c000f000d00100011001200130010001200140015001600140017001500180019001a001b0018001a001c001d001e001c001f001d00200021002200230020002200240025002600240027002500280029002a002b0028002a002900100013002a00290013002c002d002e002c002f002d0016002f002c00160015002f001b001a00300031001b00300031003000320033003100320034001e00350034001c001e00360035003700360034003500230022003800390023003800390038003a003b0039003a003c0026003d003c00240026003e003d003f003e003c003d00400041004200410043004200440045004600450047004600480049004a0049004b004a004c004d004e004d004f004e0050004c0051004c004e005100520053005400530055005400560050005700500051005700580059005a0059005b005a005c005d005e005d005f005e0060006100620061006300620041005800430058005a004300640065006600650067006600680069006a0069006b006a006c006d006e006d006f006e007000710041004000700041007200730045004400720045004800740049004800750074004c0076004d004c0077007600500077004c005000780077005000560079005000790078007a007b0058007b00590058007c007d007e007c007f007d0071007a005800410071005800800081006500640080006500820008000b00830082000b008400850086008400870085002100880089002200210089008a00270024008a008b00270038008c008d003a0038008d008e0024003c008e008a0024008f003c003e008f008e003c009000640066009100900066005f00920093005f005d009200220089008c00380022008c0094008000640090009400640095009600970095009800960099009a009b009c0099009b009d009e009f009d00a0009e00a100a20053005200a10053006000a30061006000a400a300a500a600a700a500a800a600a900aa00ab00ac00a900ab00ad009a009900ad00ae009a00af00b000b100af00b200b000b30082008300b400b30083008600b500b600b500b700b6008800b800b90089008800b900ba008b008a00ba00bb008b008c00bc00bd008d008c00bd00be008a008e00be00ba008a00bf008e008f00bf00be008e00c00090009100c100c00091009300c200c30093009200c2008900b900bc008c008900bc00c40094009000c000c4009000c500c600c700c500c800c6000100c900ca0002000100ca00c900b300b400ca00c900b400cb00b700cc00b700cd00cc00cc00cd000400cd0007000400b800ce00cf00b900b800cf00ce0018001b00cf00ce001b00d000bb00ba00d000d100bb001e00d100d0001e001d00d100bc00d200d300bd00bc00d300d20031003300d300d2003300d400ba00be00d400d000ba003500d000d40035001e00d000d500be00bf00d500d400be003700d400d50037003500d4004500d600d70047004500d700d600c000c100d700d600c100d80048004a00d800d9004800c300d900d800c300c200d900b900cf00d200bc00b900d200cf001b003100d200cf0031007300da00d60045007300d600da00c400c000d600da00c000db00dc00dd00db00dd00de00c700df00dc00c700e000df002b002a00e1002a00e200e100e100e2007000e2007100700003000200e300e4000300e300e400e30073007200e4007300e500e600e700e500e800e6007500e70074007500e500e700e900ea002c00e9002c002e0076007700ea007600ea00e900eb002c00ea00eb0016002c007800ea0077007800eb00ea007900eb0078007900ec00eb00ec001600eb00ec001400160013001200ed00ee001300ed00ee00ed007b007a00ee007b00ef00f000f100ef00f200f0007f00f100f3007f00ef00f1002a001300ee00e2002a00ee00e200ee007a007100e2007a000b000a00f400f5000b00f400f500f40081008000f500810083000b00f500f6008300f500f600f50080009400f6008000f700f800f900fa00f700f900fa00f900a200a100fa00a200fb00fc00fd00fb00fe00fc00a400fd00a300a400fb00fd00ff0000010101ff0002010001a8000101a600a800ff00010103010401050104010601050103010701080103010801040109010a010b010a010c010b010d010e0109010d0109010b01b4008300f6000f01b400f6000f01f6009400c4000f0194001001110112011001120113011201140115011401160115010200ca001701e30002001701e3001701da007300e300da00ca00b4000f011701ca000f0117010f01c400da001701c400de0018011901de0019011a011b011c011d011c011e011d011f01160120011601210120012201230124012501220124012601270128012601290127012a012b012c012a012d012b012e012f01300131012e0130013201330134013201350133012d0134012b012d0132013401360137013801390136013801390138012f012e0139012f019a003a013b019b009a003b013a01220125013b013a0125013c01a0009d003c013d01a00028013d013c01280127013d013e012d012a013e013f012d01a7003f013e01a700a6003f012f014001410130012f0141014001a900ac0041014001ac0042014301440145014401430146014501430145014601470147014601480147014801490148014a01490142014b014301ac00ab004c014d01310130014d0130014e01300141014e014e0141014f01ac004f014101ac0050014f015001ac004c015101350132015101520135010101520151010101000152013f0132012d013f0151013201a60051013f01a6000101510137015301540138013701540153015501560154015301560154015601a90040015401a90057015801590157015a0158015b015c015d015b015e015c015f01600161015f0162016001630164016501630166016401
+ m_VertexData:
+ serializedVersion: 3
+ m_VertexCount: 359
+ m_Channels:
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 3
+ - stream: 0
+ offset: 12
+ format: 0
+ dimension: 3
+ - stream: 0
+ offset: 24
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 40
+ format: 0
+ dimension: 2
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ m_DataSize: 17232
+ _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf00000000000000000000003f000000000000000000000000000000000000803f000080bf0000000000000000000080bf000000bf000000000000003f0000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000000bf0000003f000000000000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000000000000003f0000003f0000003f000020c10000000000000000000080bf0000803f010000b300000000000080bfc4b9ff3efcae003f0000000000000000000020c10000000000000000000080bf0000803f010000b300000000000080bf41780cba3cfc2e3b000000000000003f000020c10000000000000000000080bf0000803f0000000000000000000080bf41780cbafcae003f0000003f00000000000020c10000000000000000000080bf0000803f010080b300000000000080bfc4b9ff3e5bfc2e3b00001841000000000000000000000000000000000000803f000080bf0000000000000000000080bf000018c10000000000002041000000000000000000000000000000000000803f000080bf0000000000000000000080bf000020c100000000000020410000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000020c10000003f000018410000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000018c10000003f000020410000003f000020c1e9f67a39e9f67ab9feff7fbf0000803fbcf67f33eaf67a39000080bfcefd1f41ffae003f0000184100000000000020c1e9f67a39e9f67ab9feff7fbf0000803fbcf67f33eaf67a39000080bfcefd174184fe2e3bdbff17415102003ffb0020c1e9f6fa39e9f6fab9fcff7fbffeff7f3fbcf6ff33e9f6fa39000080bfa9fd174151b1003f0000204100000000000020c10000000000000000000080bf0000803f0000000000000000000080bfcefd1f41a3fe2e3b00002041000000000cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1000000000000204100000000000020c10000803f000000000000000000000000000000000000803f000080bf000020c100000000000020410000003f000020c10000803f000000000000000000000000000000000000803f000080bf000020c10000003f000020410000003f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000003f000000000000003f000020c1000080bf00000000000000000000000000000000000080bf000080bf000020410000003f00000000000000000cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca164100000000000000000000003f0cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000003f0000000000000000000020c1000080bf00000000000000000000000000000000000080bf000080bf00002041000000000000003f0000b040000020c1000000000000803f000000000000803f0000000000000000000080bf0000003f000020c1000000000000b040000020c1000000000000803f000000000000803f0000000000000000000080bf00000000000020c1000000000000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf000000000cca16c10000003f0000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf0000003f0cca16c100000000000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000000cca16c10000003f00000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000000bf000020c10000003f000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000bf0cca16c10000000000000000000020c100000000000080bf00000000000080bf0000000000000000000080bf00000000000020c1000020410000b040000020c1000000000000803f000000000000803f0000000000000000000080bf00002041000020c1000018410000b040000020c1000000000000803f000000000000803f0000000000000000000080bf00001841000020c1000018410000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf000018410cca16c1000020410000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf000020410cca16c100001841000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf000018c10cca16c10000204100000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000020c1000020c100002041000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf000020c10cca16c10000184100000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000018c1000020c10000204100000000000000000000803f000000000000000000000000000000000000803f000080bf000000000000000000002041000000008041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be00000000000020410000003f8041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000003f000020410000003f000000000000803f000000000000000000000000000000000000803f000080bf000000000000003f000000000000003f8041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000003f000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf0000000000000000000000000000003f00000000000080bf00000000000000000000000000000000000080bf000080bf000000000000003f00000000000000008041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e00000000000000000000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf000000008041d9be0000003f0000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf0000003f8041d9be000000000000b04000000000000000000000803f000000000000803f0000000000000000000080bf00000000000000000000003f0000b04000000000000000000000803f000000000000803f0000000000000000000080bf0000003f0000000000000000000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf000000008041d9be0000003f000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf000000bf8041d9be00000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf00000000000000000000003f000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000000bf00000000000018410000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf000018418041d9be000020410000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf000020418041d9be000018410000b04000000000000000000000803f000000000000803f0000000000000000000080bf0000184100000000000020410000b04000000000000000000000803f000000000000803f0000000000000000000080bf000020410000000000001841000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf000018c18041d9be00002041000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf000020c18041d9be00001841000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000018c10000000000002041000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000020c100000000000020410000a040000000000000803f000000000000000000000000000000000000803f000080bf000000000000a040000020410000a0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000a040000020410000b040000000000000803f000000000000000000000000000000000000803f000080bf000000000000b040000020410000b0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000b040000000000000a0400000000000000000000000000000803f000080bf0000000000000000000080bf000000000000a0400000003f0000a0400000000000000000000000000000803f000080bf0000000000000000000080bf000000bf0000a040000000000000b0400000000000000000000000000000803f000080bf0000000000000000000080bf000000000000b0400000003f0000b0400000000000000000000000000000803f000080bf0000000000000000000080bf000000bf0000b0400000003f0000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf0000003f0000a040000000000000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf000000000000a0400000003f0000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf0000003f0000b040000000000000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf000000000000b040000000000000a0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000a040000000000000a04000000000000080bf00000000000000000000000000000000000080bf000080bf000000000000a040000000000000b0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000b040000000000000b04000000000000080bf00000000000000000000000000000000000080bf000080bf000000000000b040000000000000a0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000a040000000000000b0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000b0400000003f0000a0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000a0400000003f0000a0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000a0400000003f0000b0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000b0400000003f0000b0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000b040000000000000a040000020c1000080bf00000000000000000000000000000000000080bf000080bf000020410000a040000000000000b040000020c1000080bf00000000000000000000000000000000000080bf000080bf000020410000b040000020410000a0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000a040000020410000a040000020c10000803f000000000000000000000000000000000000803f000080bf000020c10000a040000020410000b0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000b040000020410000b040000020c10000803f000000000000000000000000000000000000803f000080bf000020c10000b040000020410000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf000020410000a040000018410000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf000018410000a040000020410000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf000020410000b040000018410000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf000018410000b040000018410000a0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000a040000018410000a0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000a040000018410000b0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000b040000018410000b0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000b040000018410000a0400000000000000000000000000000803f000080bf0000000000000000000080bf000018c10000a040000020410000a0400000000000000000000000000000803f000080bf0000000000000000000080bf000020c10000a040000018410000b0400000000000000000000000000000803f000080bf0000000000000000000080bf000018c10000b040000020410000b0400000000000000000000000000000803f000080bf0000000000000000000080bf000020c10000b040000018410000b0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000b040000018410000a0408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000a040000018410000b0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000b040000018410000a0400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000a0400000003f0000a0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000a0400000003f0000b0408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000b0400000003f0000a0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000a0400000003f0000b0400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000b0400000204100006040000000000000803f000000000000000000000000000000000000803f000080bf000000000000604000002041000060408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000604000000000000060400000000000000000000000000000803f000080bf0000000000000000000080bf00000000000060400000003f000060400000000000000000000000000000803f000080bf0000000000000000000080bf000000bf000060400000000000006040000020c10000000000000000000080bf0000803f0000000000000000000080bf00000000000060400000003f00006040000020c10000000000000000000080bf0000803f0000000000000000000080bf0000003f00006040000000000000604000000000000080bf00000000000000000000000000000000000080bf000080bf000000000000604000000000000060408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000604000000000000060400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca1641000060400000000000006040000020c1000080bf00000000000000000000000000000000000080bf000080bf000020410000604000002041000060400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1000060400000204100006040000020c10000803f000000000000000000000000000000000000803f000080bf000020c100006040000020410000a040000020c121fc5539abaa8e38000080bf0000803fabaa8e2621fc5539000080bf62f41f418efb9f40dbff174100006040d60020c121fc5539abaa8e38000080bf0000803fabaa8e2621fc5539000080bf3df417411cf75f40000018410000a040000020c100000000abaa0e39000080bf0000803f0000000000000000000080bf62f417418efb9f400000204100006040000020c121fcd53900000000ffff7fbfffff7f3f0000000021fcd539000080bf62f41f411cf75f4000001841000060400000000000000000000000000000803f000080bf0000000000000000000080bf000018c10000604000002041000060400000000000000000000000000000803f000080bf0000000000000000000080bf000020c10000604000000041000000000000000000000000000000000000803f000080bf0000000000000000000080bf000000c100000000000000410000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000000c10000003fdbff17415102003ffb0020c1855645b7ca7be8b9ffff7fbf0000803f2eab2ab3735645b7000080bfa9fd174151b1003f0000004100000000000020c1855645b7ca7be8b9ffff7fbf0000803f2eab2ab3735645b7000080bf9cfbff4028fe2e3b000000415102003fd60020c18556c5b721fcd5b9ffff7fbf0000803fb1ab2ab37d56c5b7000080bf9cfbff4050b1003f0000184100000000000020c10000000073fbfab9ffff7fbf0000803faaaa2ab34d52a72d000080bfcefd174184fe2e3b000000410000b040000020c1000000000000803f000000000000803f0000000000000000000080bf00000041000020c1000000410000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf000000410cca16c100000041000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000c10cca16c10000004100000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000000c1000020c1000000410000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf000000418041d9be000000410000b04000000000000000000000803f000000000000803f0000000000000000000080bf000000410000000000000041000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf000000c18041d9be00000041000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000000c100000000000000410000a0400000000000000000000000000000803f000080bf0000000000000000000080bf000000c10000a040000000410000b0400000000000000000000000000000803f000080bf0000000000000000000080bf000000c10000b040000000410000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf000000410000a040000000410000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf000000410000b04000000041000060400000000000000000000000000000803f000080bf0000000000000000000080bf000000c100006040000018410000a040000020c1f700a0b6b2aa0939000080bf0000803f00000000f700a0b6000080bff503184172fd9f400000004100006040c70020c1f700a0b6b2aa0939000080bf0000803f00000000f700a0b6000080bff5030041e4fa5f40000000410000a040000020c100000000abaa0439000080bf0000803f0000000000000000000080bff503004172fd9f40dbff174100006040d60020c1f70020b7baaa0e39000080bf0000803f00000000f70020b7000080bfd0031841e4fa5f40000018410000003f0cca16c1000000000000803f000000000000803f0000000000000000000080bf000018410cca16c1000000410000003f0cca16c1000000000000803f000000000000803f0000000000000000000080bf000000410cca16c1000000410000003f8041d9be000000000000803f000000000000803f0000000000000000000080bf000000418041d9be000018410000003f8041d9be000000000000803f000000000000803f0000000000000000000080bf000018418041d9be000000410000a0408041d9be00000000000080bf00000000000080bf0000000000000000000080bf000000c18041d9be000018410000a0400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000018c10cca16c1000018410000a0408041d9be00000000000080bf00000000000080bf0000000000000000000080bf000018c18041d9be000000410000a0400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000c10cca16c10000003f000060408041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be000060400000003f000060400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000604000001841000060408041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000604000001841000060400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca164100006040000018410000a0408041d9be0000000000000000000080bf0000803f0000000000000000000080bf000018410000a04000000041000060408041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000004100006040000000410000a0408041d9be0000000000000000000080bf0000803f0000000000000000000080bf000000410000a04000001841000060408041d9be0000000000000000000080bf0000803f0000000000000000000080bf000018410000604000000041000060400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000c10000604000001841000060400cca16c100000000000000000000803f000080bf0000000000000000000080bf000018c100006040000018410000a0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000018c10000a040000000410000a0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000c10000a040dbff17415102003ffb0020c1767146300000803f84b680380000803f767146b000000000000080bfdbff17411b0120c1000000415102003fd60020c17671c6300000803f86b780380000803f7671c6b000000000000080bf00000041f60020c10000004100006040c70020c100000000000080bf00000000000080bf0000000000000000000080bf000000c1c70020c100001841000060400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000018c10cca16c100000041000060400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000c10cca16c1dbff174100006040d60020c100000000000080bf00000000000080bf0000000000000000000080bfdbff17c1d60020c10000f040000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c0000000000000f0400000003f0000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c00000003f0000004100000000000020c11efc55b8947da0b9000080bf0000803fd6fe1eb31bfc55b8000080bf9cfbff4028fe2e3b0000e0402801003f6b0020c11efc55b8947da0b9000080bf0000803fd6fe1eb31bfc55b8000080bf9cfbdf4026b0003f0000e04000000000000020c10000000011fe55b9000080bf0000803f000078b2204e4f2c000080bf9cfbdf40eafd2e3b0000e0400000b040000020c1000000000000803f000000000000803f0000000000000000000080bf0000e040000020c10000f0400000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf0000f0400cca16c10000f040000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf0000f0c00cca16c10000e04000000000000020c100000000000080bf00000000000080bf0000000000000000000080bf0000e0c0000020c10000f0400000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf0000f0408041d9be0000f0400000b04000000000000000000000803f000000000000803f0000000000000000000080bf0000f040000000000000f040000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf0000f0c08041d9be0000f040000000000000000000000000000080bf00000000000080bf0000000000000000000080bf0000f0c0000000000000f0400000a0400000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c00000a0400000f0400000b0400000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c00000b0400000e0400000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf0000e0400000a0400000e0400000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf0000e0400000b0400000f040000060400000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c000006040000000410000a040000020c1febf92b902007cb8feff7fbf0000803f0c00fc26ffbf92b9000080bff503004172fd9f400000e040000060407cfe1fc1febf92b902007cb8feff7fbf0000803f0c00fc26ffbf92b9000080bfe907e040e4fa5f400000e0400000a040000020c100000000555581b9000080bf0000803f0000000000000000000080bfe907e04072fd9f400000004100006040c70020c1febf12baa9aa0439fdff7fbffeff7f3f00000000febf12ba000080bff5030041e4fa5f400000b040000000000000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c0000000000000b0400000003f0000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c00000003f0000e0402801003f6b0020c1ef4672b711fe55b9000080bf0000803f254992b2eb4672b7000080bf9cfbdf4026b0003f000060409400003f360020c1ef46f2b6cafe20b9000080bf0000803f499286b2ea46f2b6000080bf38f75f4091af003f0000604000000000000020c10000000006ffd7b8000080bf0000803fdcb675b25a51cf2b000080bf38f75f4013fd2e3b000060400000b040000020c1000000000000803f000000000000803f0000000000000000000080bf00006040000020c10000b0400000b0400cca16c1000000000000803f000000000000803f0000000000000000000080bf0000b0400cca16c10000b040000000000cca16c100000000000080bf00000000000080bf0000000000000000000080bf0000b0c00cca16c10000604000000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000060c0000020c10000b0400000b0408041d9be000000000000803f000000000000803f0000000000000000000080bf0000b0408041d9be0000b0400000b04000000000000000000000803f000000000000803f0000000000000000000080bf0000b040000000000000b040000000008041d9be00000000000080bf00000000000080bf0000000000000000000080bf0000b0c08041d9be0000b040000000000000000000000000000080bf00000000000080bf0000000000000000000080bf0000b0c0000000000000b0400000a0400000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c00000a0400000b0400000b0400000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c00000b040000060400000b040000020c10000000000000000000080bf0000803f0000000000000000000080bf000060400000b040000060400000a040000020c10000000000000000000080bf0000803f0000000000000000000080bf000060400000a0400000b040000060400000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c0000060400000003f0000a040000020c1abaa8938abaa09b9000080bf0000803f00000000abaa8938000080bf4b3f003f72fd9f40000060400000a040000020c100000000abaa89b9000080bf0000803f0000000000000000000080bfd30f604072fd9f40000060400000604063fe1fc1abaa8938abaa09b9000080bf0000803f00000000abaa8938000080bfd30f6040e4fa5f400000003f00006040000020c1abaa093900000000000080bf0000803f00000000abaa0939000080bf4b3f003fe4fa5f40000060400000604063fe1fc1499264b6008085b9000080bf0000803f00000000499264b6000080bfd30f6040e4fa5f400000e040000060407cfe1fc14992e4b6555581b9000080bf0000803f000000004992e4b6000080bfe907e040e4fa5f4000002041b6ffbf3f000000000000803f000000000000000000000000000000000000803f000080bf00000000b6ffbf3f00002041b6ffbf3f8041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9beb6ffbf3f0000003fb6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf000000bfb6ffbf3f00000000b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf00000000b6ffbf3f0000003fb6ffbf3f000020c10000000000000000000080bf0000803f0000000000000000000080bf0000003fb6ffbf3f000000000000003f000020c10000000000000000000080bf0000803f0000000000000000000080bf000000000000003f00000000b6ffbf3f000020c10000000000000000000080bf0000803f0000000000000000000080bf00000000b6ffbf3f0000003f0000003f000020c10000000000000000000080bf0000803f0000000000000000000080bf0000003f0000003f00000000b6ffbf3f00000000000080bf00000000000000000000000000000000000080bf000080bf00000000b6ffbf3f00000000b6ffbf3f8041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93eb6ffbf3f00000000b6ffbf3f0cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca1641b6ffbf3f00000000b6ffbf3f000020c1000080bf00000000000000000000000000000000000080bf000080bf00002041b6ffbf3f00002041b6ffbf3f000020c10000803f000000000000000000000000000000000000803f000080bf000020c1b6ffbf3f00002041b6ffbf3f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1b6ffbf3f00002041b6ffbf3f000020c1ac7bf13908011837feff7fbffeff7f3fcf3c5eacac7bf139000080bf62f41f41eeedbf3fdbff17415102003ffb0020c1ac7bf13908011837feff7fbffeff7f3fcf3c5eacac7bf139000080bf3df4174180bdff3edbff17414a00c03fe80020c1e4fbe73908019837feff7fbffeff7f3fd30714ace4fbe739000080bf3df4174182eebf3f000020410000003f000020c175fbfa3900000000feff7fbffeff7f3fa63d94ac75fbfa39000080bf62f41f41deb8ff3edbff174100006040d60020c122fcd53929001037ffff7fbf0000803f290090a523fcd539000080bf3df417411cf75f4000002041b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf000020c1b6ffbf3f00001841b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf000018c1b6ffbf3f00000041b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf000000c1b6ffbf3f0000003f0000003f8041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9be0000003f0000003f0000003f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000003f0000003fb6ffbf3f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1b6ffbf3f0000003fb6ffbf3f8041d9be0000803f000000000000000000000000000000000000803f000080bf8041d9beb6ffbf3f00001841b6ffbf3f0cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca1641b6ffbf3f000018410000003f8041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93e0000003f00001841b6ffbf3f8041d9be000080bf00000000000000000000000000000000000080bf000080bf8041d93eb6ffbf3f000018410000003f0cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca16410000003f00001841b6ffbf3f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf00001841b6ffbf3f000000410000003f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf000000410000003f00000041b6ffbf3f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf00000041b6ffbf3f000018410000003f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf000018410000003f00000041b6ffbf3f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1b6ffbf3f000000414a00c03fce0020c10000803f000000000000000000000000000000000000803f000080bfce0020c14a00c03f00000041000060400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1000060400000004100006040c70020c10000803f000000000000000000000000000000000000803f000080bfc70020c100006040000000410000003f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000003f000000415102003fd60020c10000803f000000000000000000000000000000000000803f000080bfd60020c15102003fdbff17414a00c03fe80020c1000080bfd29798b0fa7e8038fa7e80b800000000000080bf000080bf86fe1f414a00c03fdbff17415102003ffb0020c1000080bfd29718b0757e8038757e80b8d297981d000080bf000080bf99fe1f415102003f00001841b6ffbf3f0cca16c1000080bfd29718b0757e8038757e80b8d297981d000080bf000080bfaac71641b6ffbf3f000018410000003f0cca16c1000080bf00000000f07d8038f07d80b800000000000080bf000080bfaac716410000003f00001841000060400cca16c1000080bf1e9090af787f8038787f80b800000000000080bf000080bfaac7164100006040dbff174100006040d60020c1000080bf1e9010b0f57f8038f57f80b800000000000080bf000080bf74fe1f41000060400000f040b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf0000f0c0b6ffbf3f0000e040000060407cfe1fc1ff5f13ba1a001036feff7fbffeff7f3f1d0010a5fe5f13ba000080bfe907e040e4fa5f400000004100006040c70020c1ffbf12ba3e006036fdff7fbffeff7f3f44006025ffbf12ba000080bff5030041e4fa5f40000000414a00c03fce0020c1ff5f13ba1a001036feff7fbffeff7f3f1d0010a5fe5f13ba000080bff503004112f6bf3f0000e040dbffbf3f7efe1fc1ffff13badaff7f35feff7fbffeff7f3fe0ff7fa4feff13ba000080bfe907e040a3f5bf3f000000415102003fd60020c18fc0aeb969817a39feff7fbfffff7f3f4dbb822b91c0aeb9000080bff5030041c1dbff3e0000e040dbffbf3f7efe1fc18fc0aeb969817a39feff7fbfffff7f3f4dbb822b91c0aeb9000080bfe907e040a3f5bf3f0000e0402801003f6b0020c17704d6b86281f639feff7fbf0000803f17fc942b7904d6b8000080bfe907e0406fd9ff3e0000b040b6ffbf3f0000000000000000000000000000803f000080bf0000000000000000000080bf0000b0c0b6ffbf3f000060400000604063fe1fc1abaa0939c8ffff34000080bf0000803f00000000abaa0939000080bfd30f6040e4fa5f4000006040c8ffbf3f64fe1fc100800939c8ff7f34000080bf0000803fc9ff7f2200800939000080bfd30f604090f5bf3f0000003fb6ffbf3f000020c15555093900000000000080bf0000803f0000000055550939000080bf4b3f003f7ef5bf3f00006040c8ffbf3f64fe1fc13f550939eb00e939ffff7fbf0000803fc300402940550939000080bfd30f604090f5bf3f000060409400003f360020c17eaa6e38eb006939000080bf0000803ff855f5297eaa6e38000080bfd30f604046d8ff3e0000003fb6ffbf3f000020c17eaa6e38eb006939000080bf0000803ff855f5297eaa6e38000080bf4b3f003f7ef5bf3f0000003f0000003f000020c1000090b700000000000080bf0000803fc755452a000090b7000080bf4b3f003f1ed7ff3e0000e040dbffbf3f7efe1fc177b9edb66281f639feff7fbf0000803f6081762579b9edb6000080bfe907e040a3f5bf3f00006040c8ffbf3f64fe1fc1579534b727c1ef39feff7fbf0000803fd14892b15a9534b7000080bfd30f604090f5bf3f000060409400003f360020c1f34d72b7ec00e939ffff7fbf0000803fd04812b2f84d72b7000080bfd30f604046d8ff3e000060400000003f0cca16c1000000000000803f000000000000803f0000000000000000000080bf000060400cca16c10000003f0000003f0cca16c1000000000000803f000000000000803f0000000000000000000080bf0000003f0cca16c10000003f0000003f8041d9be000000000000803f000000000000803f0000000000000000000080bf0000003f8041d9be000060400000003f8041d9be000000000000803f000000000000803f0000000000000000000080bf000060408041d9be0000003f0000a0408041d9be00000000000080bf00000000000080bf0000000000000000000080bf000000bf8041d9be000060400000a0400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000060c00cca16c1000060400000a0408041d9be00000000000080bf00000000000080bf0000000000000000000080bf000060c08041d9be0000003f0000a0400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000000bf0cca16c1000060400000a0408041d9be0000000000000000000080bf0000803f0000000000000000000080bf000060400000a0400000003f000060408041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000003f000060400000003f0000a0408041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000003f0000a04000006040000060408041d9be0000000000000000000080bf0000803f0000000000000000000080bf00006040000060400000003f000060400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000bf0000604000006040000060400cca16c100000000000000000000803f000080bf0000000000000000000080bf000060c000006040000060400000a0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000060c00000a0400000003f0000a0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000bf0000a04000006040b6ffbf3f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf00006040b6ffbf3f0000003f0000003f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000003f0000003f0000003fb6ffbf3f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000003fb6ffbf3f000060400000003f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf000060400000003f0000003f0000003f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000000bf0000003f000060400000003f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000060c00000003f00006040b6ffbf3f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000060c0b6ffbf3f0000003fb6ffbf3f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000000bfb6ffbf3f0000e0400000003f0cca16c1000000000000803f000000000000803f0000000000000000000080bf0000e0400cca16c10000e0400000003f8041d9be000000000000803f000000000000803f0000000000000000000080bf0000e0408041d9be0000e0400000a0408041d9be00000000000080bf00000000000080bf0000000000000000000080bf0000e0c08041d9be0000e0400000a0400cca16c100000000000080bf00000000000080bf0000000000000000000080bf0000e0c00cca16c10000e0400000a0408041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000e0400000a0400000e040000060408041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000e040000060400000e040000060400cca16c100000000000000000000803f000080bf0000000000000000000080bf0000e0c0000060400000e0400000a0400cca16c100000000000000000000803f000080bf0000000000000000000080bf0000e0c00000a040000018410000b0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf000018410000b040000000410000a0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf000000410000a040000000410000b0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf000000410000b0400000f0400000b0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf0000f0400000b0400000e0400000a0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf0000e0400000a0400000b0400000b0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf0000b0400000b040000060400000a0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf000060400000a0400000003f0000b0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf0000003f0000b0400000003f0000a0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf0000003f0000a040000018410000a0400cca16c10000000000000000000080bf0000803f0000000000000000000080bf000018410000a040000018410000b0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000018c10000b0400000003f0000b0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000bf0000b0400000b0400000b0400cca16c100000000000000000000803f000080bf0000000000000000000080bf0000b0c00000b0400000f0400000b0400cca16c100000000000000000000803f000080bf0000000000000000000080bf0000f0c00000b040000000410000b0400cca16c100000000000000000000803f000080bf0000000000000000000080bf000000c10000b0400000e040b6ffbf3f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000e040b6ffbf3f0000e0400000003f8041d9be0000000000000000000080bf0000803f0000000000000000000080bf0000e0400000003f0000e0400000003f0cca16c100000000000000000000803f000080bf0000000000000000000080bf0000e0c00000003f0000e040b6ffbf3f0cca16c100000000000000000000803f000080bf0000000000000000000080bf0000e0c0b6ffbf3f000000410000003f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000000c10000003f00000041b6ffbf3f0cca16c100000000000000000000803f000080bf0000000000000000000080bf000000c1b6ffbf3f00006040c8ffbf3f64fe1fc10000803f000000000000000000000000000000000000803f000080bf64fe1fc1c8ffbf3f00006040000060400cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c10000604000006040b6ffbf3f0cca16c10000803f000000000000000000000000000000000000803f000080bf0cca16c1b6ffbf3f000060400000604063fe1fc10000803f000000000000000000000000000000000000803f000080bf63fe1fc100006040000060400000604063fe1fc100000000000080bf00000000000080bf0000000000000000000080bf000060c063fe1fc10000e040000060400cca16c100000000000080bf00000000000080bf0000000000000000000080bf0000e0c00cca16c100006040000060400cca16c100000000000080bf00000000000080bf0000000000000000000080bf000060c00cca16c10000e040000060407cfe1fc100000000000080bf00000000000080bf0000000000000000000080bf0000e0c07cfe1fc10000e040000060407cfe1fc1000080bf00000000000000000000000000000000000080bf000080bf7cfe1f41000060400000e040b6ffbf3f0cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca1641b6ffbf3f0000e040000060400cca16c1000080bf00000000000000000000000000000000000080bf000080bf0cca1641000060400000e040dbffbf3f7efe1fc1000080bf00000000000000000000000000000000000080bf000080bf7efe1f41dbffbf3f0000e040dbffbf3f7efe1fc10bb5adb40000803fb934bf360000803f0bb5ad3400000000000080bf0000e0408afe1fc100006040b6ffbf3f0cca16c10bb5adb40000803fb934bf360000803f0bb5ad3400000000000080bf0000604018ca16c10000e040b6ffbf3f0cca16c1000000000000803fada000370000803f0000000000000000000080bf0000e04018ca16c100006040c8ffbf3f64fe1fc10bb52db50000803f2f507a360000803f0bb52d3500000000000080bf0000604070fe1fc1
+ m_CompressedMesh:
+ m_Vertices:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_UV:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Normals:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Tangents:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Weights:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_NormalSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_TangentSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_FloatColors:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_BoneIndices:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_Triangles:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_UVInfo: 0
+ m_LocalAABB:
+ m_Center: {x: 5, y: 2.75, z: -5.0001197}
+ m_Extent: {x: 5, y: 2.75, z: 5.0001197}
+ m_MeshUsageFlags: 0
+ m_BakedConvexCollisionMesh:
+ m_BakedTriangleCollisionMesh:
+ m_MeshMetrics[0]: 1
+ m_MeshMetrics[1]: 1
+ m_MeshOptimizationFlags: 1
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
+--- !u!1001 &1813567088
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 963194228}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.10000002
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.10000001
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0.0038828254
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.009492397
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0.0825084
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071078
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.70705193
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.000000007916242
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.008729769
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -89.293
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -89.28
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 89.987
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_Name
+ value: CineCamera
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ propertyPath: m_IsActive
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+--- !u!4 &1813567089 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ m_PrefabInstance: {fileID: 1813567088}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1 &1813567090 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 0a87a7726de842e1dab2d826eeb1cb99, type: 3}
+ m_PrefabInstance: {fileID: 1813567088}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &1813567091
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1813567090}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7718b950bcd0d2919b3e063a4d7afa73, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1826398601
GameObject:
m_ObjectHideFlags: 0
@@ -1713,7 +7964,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
physGun: {fileID: 1738192761}
- cineCamera: {fileID: 0}
+ cineCamera: {fileID: 1813567090}
--- !u!4 &1826398603
Transform:
m_ObjectHideFlags: 0
@@ -1726,7 +7977,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 1
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1862833724
GameObject:
@@ -1821,10 +8072,607 @@ RectTransform:
m_Children:
- {fileID: 484860404}
m_Father: {fileID: 0}
- m_RootOrder: 9
+ m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
+--- !u!1 &1867102915
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1867102916}
+ - component: {fileID: 1867102920}
+ - component: {fileID: 1867102919}
+ - component: {fileID: 1867102918}
+ - component: {fileID: 1867102917}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1867102916
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1867102915}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 5.5, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1082980580}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!64 &1867102917
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1867102915}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 1868056856}
+--- !u!33 &1867102918
+MeshFilter:
+ m_ObjectHideFlags: 10
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1867102915}
+ m_Mesh: {fileID: 1868056856}
+--- !u!23 &1867102919
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1867102915}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 2
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &1867102920
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1867102915}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_MeshFormatVersion: 1
+ m_Faces:
+ - m_Indexes: 000000000100000002000000010000000300000002000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 040000000500000006000000050000000700000006000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 0}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: -1
+ m_TextureGroup: -1
+ - m_Indexes: 08000000090000000a0000000b000000080000000a000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 0c0000000d0000000e0000000f0000000c0000000e000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 1
+ - m_Indexes: 130000001100000012000000130000001000000011000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 170000001500000016000000170000001400000015000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 2
+ - m_Indexes: 1a0000001b00000018000000190000001a00000018000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: 1d0000001e0000001f0000001c0000001d0000001f000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 3
+ - m_Indexes: 230000002100000022000000230000002000000021000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ - m_Indexes: 260000002400000025000000260000002700000024000000
+ m_SmoothingGroup: 0
+ m_Uv:
+ m_UseWorldSpace: 0
+ m_FlipU: 0
+ m_FlipV: 0
+ m_SwapUV: 0
+ m_Fill: 1
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Rotation: 0
+ m_Anchor: 9
+ m_Material: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_SubmeshIndex: 0
+ m_ManualUV: 0
+ elementGroup: 0
+ m_TextureGroup: 4
+ m_SharedVertices:
+ - m_Vertices: 000000001500000026000000
+ - m_Vertices: 010000000800000025000000
+ - m_Vertices: 020000001600000018000000
+ - m_Vertices: 030000000b00000019000000
+ - m_Vertices: 040000000d00000021000000
+ - m_Vertices: 050000001000000020000000
+ - m_Vertices: 060000000e0000001d000000
+ - m_Vertices: 07000000130000001e000000
+ - m_Vertices: 090000000c0000002200000024000000
+ - m_Vertices: 0a0000000f0000001a0000001c000000
+ - m_Vertices: 11000000140000002300000027000000
+ - m_Vertices: 12000000170000001b0000001f000000
+ m_SharedTextures: []
+ m_Positions:
+ - {x: 0, y: 0, z: 0}
+ - {x: 10, y: 0, z: 0}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 0, z: -10}
+ - {x: 0, y: 0, z: -10}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 10, y: 0, z: 0}
+ - {x: 10, y: 0, z: -5}
+ - {x: 10, y: 3.1352072, z: -5}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 0, z: -5}
+ - {x: 10, y: 0, z: -10}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 10, y: 3.1352072, z: -5}
+ - {x: 0, y: 0, z: -10}
+ - {x: 0, y: 0, z: -5}
+ - {x: 0, y: 3.1352072, z: -5}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0, y: 0, z: -5}
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 0, y: 3.1352072, z: -5}
+ - {x: 0, y: 0.5, z: 0}
+ - {x: 10, y: 0.5, z: 0}
+ - {x: 10, y: 3.1352072, z: -5}
+ - {x: 0, y: 3.1352072, z: -5}
+ - {x: 10, y: 3.1352072, z: -5}
+ - {x: 10, y: 0.5, z: -10}
+ - {x: 0, y: 0.5, z: -10}
+ - {x: 0, y: 3.1352072, z: -5}
+ - {x: 0, y: 0, z: -10}
+ - {x: 10, y: 0, z: -10}
+ - {x: 10, y: 0, z: -5}
+ - {x: 0, y: 0, z: -5}
+ - {x: 10, y: 0, z: -5}
+ - {x: 10, y: 0, z: 0}
+ - {x: 0, y: 0, z: 0}
+ - {x: 0, y: 0, z: -5}
+ m_Textures0:
+ - {x: 0, y: 0}
+ - {x: -10, y: 0}
+ - {x: 0, y: 0.5}
+ - {x: -10, y: 0.5}
+ - {x: 10, y: 0}
+ - {x: 0, y: 0}
+ - {x: 10, y: 0.5}
+ - {x: 0, y: 0.5}
+ - {x: 0, y: 0}
+ - {x: -5, y: 0}
+ - {x: -5, y: 3.1352072}
+ - {x: 0, y: 0.5}
+ - {x: -5, y: 0}
+ - {x: -10, y: 0}
+ - {x: -10, y: 0.5}
+ - {x: -5, y: 3.1352072}
+ - {x: 10, y: 0}
+ - {x: 5, y: 0}
+ - {x: 5, y: 3.1352072}
+ - {x: 10, y: 0.5}
+ - {x: 5, y: 0}
+ - {x: 0, y: 0}
+ - {x: 0, y: 0.5}
+ - {x: 5, y: 3.1352072}
+ - {x: 0, y: 0}
+ - {x: 10, y: 0}
+ - {x: 10, y: -5}
+ - {x: 0, y: -5}
+ - {x: 10, y: -5}
+ - {x: 10, y: -10}
+ - {x: 0, y: -10}
+ - {x: 0, y: -5}
+ - {x: 0, y: -10}
+ - {x: -10, y: -10}
+ - {x: -10, y: -5}
+ - {x: 0, y: -5}
+ - {x: -10, y: -5}
+ - {x: -10, y: 0}
+ - {x: 0, y: 0}
+ - {x: 0, y: -5}
+ m_Textures2: []
+ m_Textures3: []
+ m_Tangents:
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: 1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 0, y: 0, z: -1, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: 1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ - {x: -1, y: 0, z: 0, w: -1}
+ m_Colors: []
+ m_UnwrapParameters:
+ m_HardAngle: 88
+ m_PackMargin: 20
+ m_AngleError: 8
+ m_AreaError: 15
+ m_PreserveMeshAssetOnDestroy: 0
+ assetGuid:
+ m_Mesh: {fileID: 1868056856}
+ m_IsSelectable: 1
+ m_SelectedFaces:
+ m_SelectedEdges: []
+ m_SelectedVertices:
+--- !u!43 &1868056856
+Mesh:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: pb_Mesh-7432
+ serializedVersion: 10
+ m_SubMeshes:
+ - serializedVersion: 2
+ firstByte: 0
+ indexCount: 60
+ topology: 0
+ baseVertex: 0
+ firstVertex: 0
+ vertexCount: 34
+ localAABB:
+ m_Center: {x: 5, y: 1.5676036, z: -5}
+ m_Extent: {x: 5, y: 1.5676036, z: 5}
+ m_Shapes:
+ vertices: []
+ shapes: []
+ channels: []
+ fullWeights: []
+ m_BindPose: []
+ m_BoneNameHashes:
+ m_RootBoneNameHash: 0
+ m_BonesAABB: []
+ m_VariableBoneCountWeights:
+ m_Data:
+ m_MeshCompression: 0
+ m_IsReadable: 1
+ m_KeepVertices: 1
+ m_KeepIndices: 1
+ m_IndexFormat: 0
+ m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a000b0008000a0009000c000d000a0009000d000e000f0010000e0011000f0010001200130010000f001200140015001600170014001600180019001a001b0018001a001c001d001e001c001f001d0020001e00210020001c001e00
+ m_VertexData:
+ serializedVersion: 3
+ m_VertexCount: 34
+ m_Channels:
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 3
+ - stream: 0
+ offset: 12
+ format: 0
+ dimension: 3
+ - stream: 0
+ offset: 24
+ format: 0
+ dimension: 4
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 40
+ format: 0
+ dimension: 2
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ - stream: 0
+ offset: 0
+ format: 0
+ dimension: 0
+ m_DataSize: 1632
+ _typelessdata: 00000000000000000000000000000000000000000000803f000080bf0000000000000000000080bf000000000000000000002041000000000000000000000000000000000000803f000080bf0000000000000000000080bf000020c100000000000000000000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000000000000003f000020410000003f0000000000000000000000000000803f000080bf0000000000000000000080bf000020c10000003f0000204100000000000020c10000000000000000000080bf0000803f0000000000000000000080bf00002041000000000000000000000000000020c10000000000000000000080bf0000803f0000000000000000000080bf0000000000000000000020410000003f000020c10000000000000000000080bf0000803f0000000000000000000080bf000020410000003f000000000000003f000020c10000000000000000000080bf0000803f0000000000000000000080bf000000000000003f0000204100000000000000000000803f000000000000000000000000000000000000803f000080bf000000000000000000002041000000000000a0c00000803f000000000000000000000000000000000000803f000080bf0000a0c000000000000020413ca748400000a0c00000803f000000000000000000000000000000000000803f000080bf0000a0c03ca74840000020410000003f000000000000803f000000000000000000000000000000000000803f000080bf000000000000003f0000204100000000000020c10000803f000000000000000000000000000000000000803f000080bf000020c100000000000020410000003f000020c10000803f000000000000000000000000000000000000803f000080bf000020c10000003f000000000000003f000020c1000080bf00000000000000000000000000000000000080bf000080bf000020410000003f00000000000000000000a0c0000080bf00000000000000000000000000000000000080bf000080bf0000a04000000000000000003ca748400000a0c0000080bf00000000000000000000000000000000000080bf000080bf0000a0403ca748400000000000000000000020c1000080bf00000000000000000000000000000000000080bf000080bf0000204100000000000000000000000000000000000080bf00000000000000000000000000000000000080bf000080bf0000000000000000000000000000003f00000000000080bf00000000000000000000000000000000000080bf000080bf000000000000003f000020413ca748400000a0c000000000a778623f32b8ee3e0000803f0000000000000000000080bf000020410000a0c0000000003ca748400000a0c000000000a778623f32b8ee3e0000803f0000000000000000000080bf000000000000a0c0000000000000003f0000000000000000a778623f32b8ee3e0000803f0000000000000000000080bf0000000000000000000020410000003f0000000000000000a778623f32b8ee3e0000803f0000000000000000000080bf0000204100000000000020410000003f000020c100000000a778623f32b8eebe0000803f0000000000000000000080bf00002041000020c1000000000000003f000020c100000000a778623f32b8eebe0000803f0000000000000000000080bf00000000000020c1000000003ca748400000a0c000000000a778623f32b8eebe0000803f0000000000000000000080bf000000000000a0c0000020413ca748400000a0c000000000a778623f32b8eebe0000803f0000000000000000000080bf000020410000a0c000000000000000000000a0c000000000000080bf00000000000080bf0000000000000000000080bf000000000000a0c00000204100000000000020c100000000000080bf00000000000080bf0000000000000000000080bf000020c1000020c100002041000000000000a0c000000000000080bf00000000000080bf0000000000000000000080bf000020c10000a0c00000000000000000000020c100000000000080bf00000000000080bf0000000000000000000080bf00000000000020c100000000000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000000000000000000002041000000000000000000000000000080bf00000000000080bf0000000000000000000080bf000020c100000000
+ m_CompressedMesh:
+ m_Vertices:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_UV:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Normals:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Tangents:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_Weights:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_NormalSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_TangentSigns:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_FloatColors:
+ m_NumItems: 0
+ m_Range: 0
+ m_Start: 0
+ m_Data:
+ m_BitSize: 0
+ m_BoneIndices:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_Triangles:
+ m_NumItems: 0
+ m_Data:
+ m_BitSize: 0
+ m_UVInfo: 0
+ m_LocalAABB:
+ m_Center: {x: 5, y: 1.5676036, z: -5}
+ m_Extent: {x: 5, y: 1.5676036, z: 5}
+ m_MeshUsageFlags: 0
+ m_BakedConvexCollisionMesh:
+ m_BakedTriangleCollisionMesh:
+ m_MeshMetrics[0]: 1
+ m_MeshMetrics[1]: 1
+ m_MeshOptimizationFlags: 1
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
diff --git a/Assets/Scenes/SampleScene/Global Volume Profile.asset b/Assets/Scenes/SampleScene/Global Volume Profile.asset
new file mode 100644
index 0000000..ef300cb
--- /dev/null
+++ b/Assets/Scenes/SampleScene/Global Volume Profile.asset
@@ -0,0 +1,46 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4548742758310025751
+MonoBehaviour:
+ m_ObjectHideFlags: 3
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3}
+ m_Name: MotionBlur
+ m_EditorClassIdentifier:
+ active: 1
+ m_AdvancedMode: 0
+ mode:
+ m_OverrideState: 0
+ m_Value: 0
+ quality:
+ m_OverrideState: 1
+ m_Value: 2
+ intensity:
+ m_OverrideState: 1
+ m_Value: 1
+ min: 0
+ max: 1
+ clamp:
+ m_OverrideState: 1
+ m_Value: 0.106
+ min: 0
+ max: 0.2
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
+ m_Name: Global Volume Profile
+ m_EditorClassIdentifier:
+ components:
+ - {fileID: -4548742758310025751}
diff --git a/Assets/Scenes/SampleScene/Global Volume Profile.asset.meta b/Assets/Scenes/SampleScene/Global Volume Profile.asset.meta
new file mode 100644
index 0000000..b0c97e1
--- /dev/null
+++ b/Assets/Scenes/SampleScene/Global Volume Profile.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44e705d99eeb9b9b49d3934e22dd3c39
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/SampleScene/LightingData.asset b/Assets/Scenes/SampleScene/LightingData.asset
index 9ee6fe9..d11ce24 100644
--- a/Assets/Scenes/SampleScene/LightingData.asset
+++ b/Assets/Scenes/SampleScene/LightingData.asset
Binary files differ
diff --git a/Assets/Scripts/DiscordController.cs b/Assets/Scripts/DiscordController.cs
new file mode 100644
index 0000000..4812df3
--- /dev/null
+++ b/Assets/Scripts/DiscordController.cs
@@ -0,0 +1,52 @@
+using UnityEngine;
+
+public class DiscordController : MonoBehaviour
+{
+
+ public Discord.Discord Discord;
+ public long applicationID;
+ public string rpcStatus;
+ public string rpcDetails;
+ public string rpcLargeImage;
+ public string rpcLargeImageText;
+
+ // Use this for initialization
+ void Start () {
+ Discord = new Discord.Discord(applicationID, (System.UInt64)global::Discord.CreateFlags.NoRequireDiscord);
+ var activityManager = Discord.GetActivityManager();
+ var activity = new Discord.Activity
+ {
+ State = rpcStatus,
+ Details = rpcDetails,
+ Assets =
+ {
+ LargeImage = rpcLargeImage,
+ LargeText = rpcLargeImageText
+ }
+ };
+ activityManager.UpdateActivity(activity, (res) =>
+ {
+ if (res == global::Discord.Result.Ok)
+ {
+ Debug.LogWarning("Everything is fine!");
+ }
+ });
+
+ activityManager.ClearActivity((result) =>
+ {
+ if (result == global::Discord.Result.Ok)
+ {
+ Debug.Log("Success!");
+ }
+ else
+ {
+ Debug.LogError("Failed");
+ }
+ });
+ }
+
+ // Update is called once per frame
+ void Update () {
+ Discord.RunCallbacks();
+ }
+}
diff --git a/Assets/Scripts/DiscordController.cs.meta b/Assets/Scripts/DiscordController.cs.meta
new file mode 100644
index 0000000..18a2830
--- /dev/null
+++ b/Assets/Scripts/DiscordController.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 88183e77c2589e58e8752a5fe5452fb8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders.meta b/Assets/Shaders.meta
new file mode 100644
index 0000000..a1bfeab
--- /dev/null
+++ b/Assets/Shaders.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a58416d0d5d0b52148bb3920002cf733
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Shaders/ShaderVariants.shadervariants b/Assets/Shaders/ShaderVariants.shadervariants
new file mode 100644
index 0000000..9e5b491
--- /dev/null
+++ b/Assets/Shaders/ShaderVariants.shadervariants
@@ -0,0 +1,439 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!200 &20000000
+ShaderVariantCollection:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: ShaderVariants
+ m_Shaders:
+ - first: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords: BILLBOARD_FACE_CAMERA_POS SHADOWS_DEPTH SHADOWS_SPLIT_SPHERES SOFTPARTICLES_ON
+ UNITY_HDR_ON
+ passType: 0
+ - first: {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 66, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords: BILLBOARD_FACE_CAMERA_POS DIRECTIONAL LIGHTPROBE_SH UNITY_HDR_ON
+ passType: 4
+ - keywords: BILLBOARD_FACE_CAMERA_POS DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN
+ SHADOWS_SOFT SHADOWS_SPLIT_SPHERES SOFTPARTICLES_ON UNITY_HDR_ON
+ passType: 4
+ - keywords: BILLBOARD_FACE_CAMERA_POS DIRECTIONAL UNITY_HDR_ON
+ passType: 5
+ - keywords:
+ passType: 8
+ - keywords: SHADOWS_DEPTH
+ passType: 8
+ - keywords: SHADOWS_DEPTH SHADOWS_SOFT SHADOWS_SPLIT_SPHERES SOFTPARTICLES_ON
+ UNITY_HDR_ON
+ passType: 8
+ - keywords: BILLBOARD_FACE_CAMERA_POS SHADOWS_DEPTH SHADOWS_SPLIT_SPHERES SOFTPARTICLES_ON
+ passType: 8
+ - keywords: BILLBOARD_FACE_CAMERA_POS SHADOWS_DEPTH SHADOWS_SPLIT_SPHERES SOFTPARTICLES_ON
+ UNITY_HDR_ON
+ passType: 8
+ - first: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords: BILLBOARD_FACE_CAMERA_POS UNITY_HDR_ON
+ passType: 0
+ - keywords: _SUNDISK_SIMPLE
+ passType: 0
+ - keywords: BILLBOARD_FACE_CAMERA_POS UNITY_HDR_ON _SUNDISK_SIMPLE
+ passType: 0
+ - keywords: BILLBOARD_FACE_CAMERA_POS SOFTPARTICLES_ON UNITY_HDR_ON _SUNDISK_SIMPLE
+ passType: 0
+ - first: {fileID: 9000, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9001, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9002, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9003, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9004, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9007, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 9103, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords: BILLBOARD_FACE_CAMERA_POS UNITY_HDR_ON
+ passType: 0
+ - keywords: BILLBOARD_FACE_CAMERA_POS SOFTPARTICLES_ON UNITY_HDR_ON
+ passType: 0
+ - first: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, type: 3}
+ second:
+ variants:
+ - keywords: _MAIN_LIGHT_SHADOWS
+ passType: 0
+ - first: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords: _HDR_GRADING
+ passType: 0
+ - first: {fileID: 4800000, guid: 50b406436c6214c49aaaa6011b71dde8, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: a16365e8c873daa4c94919438490b905, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3}
+ second:
+ variants:
+ - keywords: _GENERIC
+ passType: 0
+ - first: {fileID: 4800000, guid: 02e071f10b6a15d4d87dac88ce529302, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 4386e57b23a56004c93e1d57d2bbcb4f, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3}
+ second:
+ variants:
+ - keywords: _SMAA_PRESET_LOW
+ passType: 0
+ - first: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 8
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - keywords: SHADOWS_SHADOWMASK _MAIN_LIGHT_SHADOWS
+ passType: 13
+ - keywords: _ADDITIONAL_LIGHTS
+ passType: 13
+ - keywords: SHADOWS_SHADOWMASK _MAIN_LIGHT_SHADOWS _SHADOWS_SOFT
+ passType: 13
+ - first: {fileID: 4800000, guid: d33b6d70b14697547ad0dc2d4debb009, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: e35a31e1679aeff489e202f5cc4853d5, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 8516d7a69675844a7a0b7095af7c46af, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 95e15a77195eb574ab82aaac18b1c796, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 77cfa04f893eb8745b6a454a3d51b43c, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: c7d04ca57e5449d49ad9cee1c604bc26, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: d79e1c784eaf80c4585c0be7391f757a, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords: _SOURCE_DEPTH
+ passType: 0
+ - keywords: _RECONSTRUCT_NORMAL_LOW _SOURCE_DEPTH
+ passType: 0
+ - first: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 69c1f799e772cb6438f56c23efccb782, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords:
+ passType: 8
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 99134b1f0c27d54469a840832a28fadf, type: 3}
+ second:
+ variants:
+ - keywords: LOD_FADE_PERCENTAGE _WINDQUALITY_NONE
+ passType: 8
+ - keywords: LOD_FADE_PERCENTAGE _WINDQUALITY_NONE
+ passType: 13
+ - first: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - keywords: _ADDITIONAL_LIGHTS _LIT _POINT
+ passType: 0
+ - keywords: _ADDITIONAL_LIGHTS _POINT _SIMPLELIT
+ passType: 0
+ - keywords: _ADDITIONAL_LIGHTS _DIRECTIONAL _LIT
+ passType: 0
+ - keywords: _ADDITIONAL_LIGHTS _DIRECTIONAL _SIMPLELIT
+ passType: 0
+ - keywords: FOG_LINEAR _FOG
+ passType: 0
+ - keywords: _CLEAR_STENCIL_PARTIAL
+ passType: 0
+ - first: {fileID: 4800000, guid: 0a7e590f3cf1d4ee8a8fab5b6eff09ef, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: da07703fcc09f8d4799221050659bd55, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 0ca6dca7396eb48e5849247ffd444914, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 5caf62d8bd7c44596ace77ef9eb8ea31, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 0d0f817524897904ba47a6a1d55e7668, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 2df96b66b5510f94b98df2ac6f926ef4, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 8
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 5ec81c81908db34429b4f6ddecadd3bd, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 8
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 7e60080c8cd24a2468cb08b4bfee5606, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: ee7e4c9a5f6364b688a332c67fc32cca, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 8
+ - keywords:
+ passType: 11
+ - keywords:
+ passType: 13
+ - first: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
+ second:
+ variants:
+ - keywords: GEOM_TYPE_BRANCH LOD_FADE_PERCENTAGE
+ passType: 8
+ - keywords: GEOM_TYPE_BRANCH
+ passType: 13
+ - keywords: GEOM_TYPE_BRANCH LOD_FADE_PERCENTAGE
+ passType: 13
+ - first: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
+ - first: {fileID: 4800000, guid: 8fbe92a9edfe6074e841d6dd1509bc59, type: 3}
+ second:
+ variants:
+ - keywords:
+ passType: 0
diff --git a/Assets/Shaders/ShaderVariants.shadervariants.meta b/Assets/Shaders/ShaderVariants.shadervariants.meta
new file mode 100644
index 0000000..175cb3b
--- /dev/null
+++ b/Assets/Shaders/ShaderVariants.shadervariants.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e44b6d159b9c862dc8dc711d225ff370
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 20000000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UniversalRenderPipelineAsset.asset b/Assets/Shaders/UniversalRenderPipelineAsset.asset
index 04bfa64..3ac0f2f 100644
--- a/Assets/UniversalRenderPipelineAsset.asset
+++ b/Assets/Shaders/UniversalRenderPipelineAsset.asset
@@ -24,11 +24,11 @@ MonoBehaviour:
m_OpaqueDownsampling: 1
m_SupportsTerrainHoles: 1
m_SupportsHDR: 1
- m_MSAA: 2
+ m_MSAA: 8
m_RenderScale: 1
m_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
- m_MainLightShadowmapResolution: 2048
+ m_MainLightShadowmapResolution: 4096
m_AdditionalLightsRenderingMode: 1
m_AdditionalLightsPerObjectLimit: 4
m_AdditionalLightShadowsSupported: 0
@@ -40,13 +40,13 @@ MonoBehaviour:
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
m_ShadowDepthBias: 1
m_ShadowNormalBias: 1
- m_SoftShadowsSupported: 0
+ m_SoftShadowsSupported: 1
m_UseSRPBatcher: 1
m_SupportsDynamicBatching: 0
m_MixedLightingSupported: 1
m_DebugLevel: 0
m_UseAdaptivePerformance: 1
- m_ColorGradingMode: 0
+ m_ColorGradingMode: 1
m_ColorGradingLutSize: 32
m_ShadowType: 1
m_LocalShadowsSupported: 0
diff --git a/Assets/UniversalRenderPipelineAsset.asset.meta b/Assets/Shaders/UniversalRenderPipelineAsset.asset.meta
index b282e0f..b282e0f 100644
--- a/Assets/UniversalRenderPipelineAsset.asset.meta
+++ b/Assets/Shaders/UniversalRenderPipelineAsset.asset.meta
diff --git a/Assets/UniversalRenderPipelineAsset_Renderer.asset b/Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset
index aeacd71..aeacd71 100644
--- a/Assets/UniversalRenderPipelineAsset_Renderer.asset
+++ b/Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset
diff --git a/Assets/UniversalRenderPipelineAsset_Renderer.asset.meta b/Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset.meta
index a1a125e..a1a125e 100644
--- a/Assets/UniversalRenderPipelineAsset_Renderer.asset.meta
+++ b/Assets/Shaders/UniversalRenderPipelineAsset_Renderer.asset.meta
diff --git a/Packages/manifest.json b/Packages/manifest.json
index 687ff37..974db2c 100644
--- a/Packages/manifest.json
+++ b/Packages/manifest.json
@@ -1,9 +1,12 @@
{
"dependencies": {
+ "com.unity.cinemachine": "2.6.4",
"com.unity.collab-proxy": "1.3.9",
"com.unity.ide.rider": "2.0.7",
"com.unity.ide.visualstudio": "2.0.7",
"com.unity.ide.vscode": "1.2.3",
+ "com.unity.probuilder": "4.5.0",
+ "com.unity.progrids": "3.0.3-preview.6",
"com.unity.render-pipelines.universal": "10.3.2",
"com.unity.test-framework": "1.1.22",
"com.unity.textmeshpro": "3.0.1",
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
index 48cc836..5af1cca 100644
--- a/Packages/packages-lock.json
+++ b/Packages/packages-lock.json
@@ -1,5 +1,12 @@
{
"dependencies": {
+ "com.unity.cinemachine": {
+ "version": "2.6.4",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.com"
+ },
"com.unity.collab-proxy": {
"version": "1.3.9",
"depth": 0,
@@ -46,6 +53,24 @@
"dependencies": {},
"url": "https://packages.unity.com"
},
+ "com.unity.probuilder": {
+ "version": "4.5.0",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.settings-manager": "1.0.3"
+ },
+ "url": "https://packages.unity.com"
+ },
+ "com.unity.progrids": {
+ "version": "3.0.3-preview.6",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {
+ "com.unity.settings-manager": "1.0.2"
+ },
+ "url": "https://packages.unity.com"
+ },
"com.unity.render-pipelines.core": {
"version": "10.3.2",
"depth": 1,
@@ -73,6 +98,13 @@
"dependencies": {},
"url": "https://packages.unity.com"
},
+ "com.unity.settings-manager": {
+ "version": "1.0.3",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://packages.unity.com"
+ },
"com.unity.shadergraph": {
"version": "10.3.2",
"depth": 1,
diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset
index be4a797..568fee6 100644
--- a/ProjectSettings/PackageManagerSettings.asset
+++ b/ProjectSettings/PackageManagerSettings.asset
@@ -12,11 +12,11 @@ MonoBehaviour:
m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
- m_EnablePreviewPackages: 0
+ m_EnablePreviewPackages: 1
m_EnablePackageDependencies: 0
m_AdvancedSettingsExpanded: 1
m_ScopedRegistriesSettingsExpanded: 1
- oneTimeWarningShown: 0
+ oneTimeWarningShown: 1
m_Registries:
- m_Id: main
m_Name:
diff --git a/ProjectSettings/Packages/com.unity.probuilder/Settings.json b/ProjectSettings/Packages/com.unity.probuilder/Settings.json
new file mode 100644
index 0000000..04f3a95
--- /dev/null
+++ b/ProjectSettings/Packages/com.unity.probuilder/Settings.json
@@ -0,0 +1,163 @@
+{
+ "m_Name": "Settings",
+ "m_Path": "ProjectSettings/Packages/com.unity.probuilder/Settings.json",
+ "m_Dictionary": {
+ "m_DictionaryValues": [
+ {
+ "type": "UnityEngine.ProBuilder.LogLevel, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "log.level",
+ "value": "{\"m_Value\":3}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.LogOutput, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "log.output",
+ "value": "{\"m_Value\":1}"
+ },
+ {
+ "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "log.path",
+ "value": "{\"m_Value\":\"ProBuilderLog.txt\"}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "about.identifier",
+ "value": "{\"m_Value\":{\"m_Major\":4,\"m_Minor\":5,\"m_Patch\":0,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "preferences.version",
+ "value": "{\"m_Value\":{\"m_Major\":4,\"m_Minor\":5,\"m_Patch\":0,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "lightmapping.autoUnwrapLightmapUV",
+ "value": "{\"m_Value\":true}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "UnityEngine.ProBuilder.ProBuilderEditor-isUtilityWindow",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.backFaceSelectEnabled",
+ "value": "{\"m_Value\":true}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.toolbarIconGUI",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.showSceneInfo",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "mesh.newShapesSnapToGrid",
+ "value": "{\"m_Value\":true}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.autoRecalculateCollisions",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "mesh.meshColliderIsConvex",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.showEditorNotifications",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.closeWindowAfterShapeCreation",
+ "value": "{\"m_Value\":false}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "FillHole.selectEntirePath",
+ "value": "{\"m_Value\":true}"
+ },
+ {
+ "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "editor.extrudeEdgesAsGroup",
+ "value": "{\"m_Value\":true}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.SelectionModifierBehavior, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "editor.rectSelectModifier",
+ "value": "{\"m_Value\":2}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.RectSelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "editor.dragSelectRectMode",
+ "value": "{\"m_Value\":0}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.SelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "editor.selectMode",
+ "value": "{\"m_Value\":1}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "mesh.newShapePivotLocation",
+ "value": "{\"m_Value\":1}"
+ },
+ {
+ "type": "UnityEngine.Rendering.ShadowCastingMode, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "mesh.shadowCastingMode",
+ "value": "{\"m_Value\":1}"
+ },
+ {
+ "type": "UnityEngine.Material, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "mesh.userMaterial",
+ "value": "{\"m_Value\":{\"instanceID\":0}}"
+ },
+ {
+ "type": "UnityEditor.StaticEditorFlags, UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "mesh.defaultStaticEditorFlags",
+ "value": "{\"m_Value\":0}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.ColliderType, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "mesh.newShapeColliderType",
+ "value": "{\"m_Value\":2}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.UnwrapParameters, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "lightmapping.defaultLightmapUnwrapParameters",
+ "value": "{\"m_Value\":{\"m_HardAngle\":88.0,\"m_PackMargin\":20.0,\"m_AngleError\":8.0,\"m_AreaError\":15.0}}"
+ },
+ {
+ "type": "UnityEngine.ProBuilder.ExtrudeMethod, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "editor.extrudeMethod",
+ "value": "{\"m_Value\":2}"
+ },
+ {
+ "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "ExtrudeFaces.distance",
+ "value": "{\"m_Value\":0.5}"
+ },
+ {
+ "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "ExtrudeEdges.distance",
+ "value": "{\"m_Value\":0.5}"
+ },
+ {
+ "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
+ "key": "WeldVertices.weldDistance",
+ "value": "{\"m_Value\":0.009999999776482582}"
+ },
+ {
+ "type": "UnityEditor.ProBuilder.Actions.DetachFaces+DetachSetting, Unity.ProBuilder.Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
+ "key": "DetachFaces.target",
+ "value": "{\"m_Value\":0}"
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/ProjectSettings/Packages/com.unity.progrids/Settings.json b/ProjectSettings/Packages/com.unity.progrids/Settings.json
new file mode 100644
index 0000000..43fcd7a
--- /dev/null
+++ b/ProjectSettings/Packages/com.unity.progrids/Settings.json
@@ -0,0 +1,7 @@
+{
+ "m_Name": "Settings",
+ "m_Path": "ProjectSettings/Packages/com.unity.progrids/Settings.json",
+ "m_Dictionary": {
+ "m_DictionaryValues": []
+ }
+} \ No newline at end of file
diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset
index fd03339..edcfc09 100644
--- a/ProjectSettings/QualitySettings.asset
+++ b/ProjectSettings/QualitySettings.asset
@@ -201,7 +201,7 @@ QualitySettings:
skinWeights: 4
textureQuality: 0
anisotropicTextures: 2
- antiAliasing: 2
+ antiAliasing: 8
softParticles: 1
softVegetation: 1
realtimeReflectionProbes: 1