diff --git a/.gitignore b/.gitignore
index 46bb4f5..c7fea2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
+/[Ll]ogs/
/Assets/AssetStoreTools*
# Visual Studio 2015 cache directory
diff --git a/Assets/ExternalDependencyManager.meta b/Assets/ExternalDependencyManager.meta
new file mode 100644
index 0000000..6e12d46
--- /dev/null
+++ b/Assets/ExternalDependencyManager.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d95373514d1cb3d479ab43a4695b462a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor.meta b/Assets/ExternalDependencyManager/Editor.meta
new file mode 100644
index 0000000..04d6eb8
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a757df4be66f2f0438411d0e6738915c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md
new file mode 100644
index 0000000..20b1613
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md
@@ -0,0 +1,1261 @@
+# Version 1.2.160 - Sep 30, 2020
+* Android Resolver - Fixed a regression that gradleResolver can be null until
+ Initialize() is called.
+* Android Resolver - Fixed a regression that Android Resolver failed in Unity
+ 2019.3+ due to `gradleTemplate.properties` not enabled when
+ `mainTemplate.gradle` is not enabled at all.
+
+# Version 1.2.159 - Sep 11, 2020
+* Android Resolver - Fixed #322 where the Unity editor will lose its target SDK
+ setting between Unity restarts if `>28` is selected in 2019. This is due to
+ Unity AndroidSdkVersions enum does not contain values above 28.
+* Android Resolver - Fixed #360 where building Android app with Untiy 2019.3+
+ may fail due to Jetifier and AndroidX not enabled properly in generated
+ Gradle project. This fix requires the user to enable
+ `Custom Gradle Properties Template` found under
+ `Player Settings > Settings for Android > Publishing Settings`.
+
+# Version 1.2.158 - Sep 3, 2020
+* Version Handler: Fixed editor freeze when `-executeMethod` is used in
+ non-batch mode.
+* Android Resolver: Normalized file paths when generating local Maven repo
+ since the path may contains a mix of forward and backward slash on Windows.
+* Export Unity Package: Fixed generation of .unitypackage with tarfile on
+ Windows.
+
+# Version 1.2.157 - Aug 6, 2020
+* Android Resolver: Delay initialization until active build target is Android
+ and the editor is not in play mode.
+* iOS Resolver: Delay initialization until active build target is iOS
+ and the editor is not in play mode.
+* Export Unity Package: Workaround directory creation racy if multiple export
+ operations are spawned at the same time.
+
+# Version 1.2.156 - June 10, 2020
+* All: Described EDM4U analytics data usage in readme.
+* Android Resolver: Fixed that the generated local repo assets contains
+ redundent labels which are causing Version Handler to failed while
+ uninstalling packages.
+* Android Resolver: Fixed that the repo url injected into mainTemplate.gradle
+ is incorrect when Unity is configured to export gradle project.
+* Android Resolver: Limited to only create local Maven repo when the source
+ repo contains ".srcaar" file.
+
+# Version 1.2.155 - May 14, 2020
+* All: Fixed compiler error when build with Unity 5.4 or below due to the
+ usage of Rect.zero.
+* All: Ignore cases when checking command line arguments.
+
+# Version 1.2.154 - May 14, 2020
+* All: Make each MultiSelectWindow for different purposes to have its own
+ unique window.
+* All: Replace all dialog with DialogWindow which is implemented from
+ EditorWindow.
+* Package Manager Resolver: Clarify how manifest.json will be changed in Package
+ Manager Resolver window.
+
+# Version 1.2.153 - Apr 24, 2020
+* Android Resolver: Fixed an exception when repainting the Android resolution
+ window in Unity 2019.3.x.
+
+# Version 1.2.152 - Apr 17, 2020
+* Version Handler: Fixed exception when waiting for enabled editor DLLs to
+ load.
+* Android Resolver: Fixed regression when using a Custom Gradle Template
+ on Windows.
+
+# Version 1.2.151 - Apr 16, 2020
+## Bug Fixes
+* Version Handler: When waiting for newly enabled editor DLLs to load, ignore
+ all DLLs that do not have a file-system location.
+* Android Resolver: Fixed resolution when using a Custom Gradle Template with
+ libraries stored in a local maven repository distributed with a plugin
+ installed with the Unity Package Manager.
+
+# Version 1.2.150 - Apr 9, 2020
+## Bug Fixes
+* All: The new packaging script when run on MacOS was generating a
+ .unitypackage archive that could not be read by Unity on Windows.
+ This release simply repackages the plugin with tar/gzip to fix the problem.
+
+# Version 1.2.149 - Apr 8, 2020
+## Bug Fixes
+* Package Manager Resolver: Fixed spurious error message when resuming
+ migration after installing a UPM package.
+
+# Version 1.2.148 - Apr 8, 2020
+## Bug Fixes
+* Package Manager Resolver: Fixed an exception when resuming migration
+ after installing a UPM package.
+
+# Version 1.2.147 - Apr 8, 2020
+## Bug Fixes
+* Version Handler: Fixed alias traversal bug which caused problems when
+ migrating from installed .unitypackage files to UPM packages.
+
+# Version 1.2.146 - Apr 8, 2020
+## Bug Fixes
+* Version Handler: Fixed exception in manifest parsing when a manifest is
+ detected with no aliases.
+
+# Version 1.2.145 - Apr 2, 2020
+## New Features
+* Package Manager Resolver: Added a method to migrate Version Handler
+ managed packages installed via `.unitypackage` to Unity Package Manager
+ packages. This is initially used to migrate the External Dependency Manager
+ to UPM.
+
+## Changes
+* All: Verbose logging is now no longer automatically enabled in batch mode
+ across all components. Instead logging can be configured using each
+ component's verbose logging setting or by using the `-gvh_log_debug` command
+ line flag when starting Unity.
+* Version Handler: Sped up version handler updates when the app domain isn't
+ reloaded.
+
+## Bug Fixes
+* Version Handler: Fixed the display of the obsolete files clean up dialog
+ when the asset database refreshes.
+* Version Handler: Improved reliability of callback from
+ the VersionHandler.UpdateCompleteMethods event when an asset database
+ refresh occurs.
+* Version Handler: Fixed duplicate exportPath labels when 'Assets/' is the
+ root of paths assigned to files.
+* Version Handler: Handle empty lines in manifest files.
+
+# Version 1.2.144 - Mar 23, 2020
+## Changed
+* iOS Resolver: Removed the ability to configure the Xcode target a Cocoapod
+ is added to.
+
+## Bug Fixes
+* iOS Resolver: Reverted support for adding Cocoapods to multiple targets as
+ it caused a regression (exception thrown during post-build step) in some
+ versions of Unity.
+
+# Version 1.2.143 - Mar 20, 2020
+## Bug Fixes
+* Android Resolver: Fixed caching of resolution state which was causing
+ the resolver to always run when no dependencies had changed.
+
+# Version 1.2.142 - Mar 19, 2020
+## Changes
+* Package Manager Resolver: Enabled auto-add by default.
+
+# Version 1.2.141 - Mar 19, 2020
+## Bug Fixes
+* Fixed a bug when retrieving project settings. If a plugin was configured
+ to fetch project settings, if a setting was fetched (e.g "foo") and this
+ setting existed in the system settings but not the project settings the
+ system value would override the default value leading to unexpected
+ behavior.
+* Fixed a warning when caching web request classes in Unity 5.6.
+
+# Version 1.2.140 - Mar 19, 2020
+## Bug Fixes
+* Fixed measurement reporting in Unity 5.x.
+* Version Handler: Fixed NullReferenceException when an asset doesn't have
+ an AssetImporter.
+
+# Version 1.2.139 - Mar 18, 2020
+## Changed
+* Added documentation to the built plugin.
+
+# Version 1.2.138 - Mar 17, 2020
+## New Features
+* Package Manager Resolver: Added the Package Manager Resolver
+ component that allows developers to easily boostrap Unity Package Manager
+ (UPM) registry addition using unitypackage plugins.
+* Version Handler: Added a window that allows plugins to managed by the
+ Version Handler to be uninstalled.
+* Version Handler: Added support for displaying installed plugins.
+* Version Handler: Added support for moving files in plugins to their install
+ locations (if the plugin has been configured to support this).
+* iOS Resolver: Added the ability to configure the Xcode target a Cocoapod is
+ added to.
+
+## Bug Fixes
+* Fixed upgrade from version 1.2.137 and below after the plugin rename to
+ EDM4U broke the upgrade process.
+* Android Resolver: Worked around PlayerSettings.Android.targetSdkVersion
+ returning empty names for some values in 2019.x.
+* Version Handler: Fixed the display of the obsolete files clean up window.
+* Version Handler: Fixed managed file check when assets are modified in the
+ project after plugin import.
+
+# Version 1.2.137 - Mar 6, 2020
+## Changed
+* Renamed package to External Package Manager for Unity (EDM4U).
+ We changed this to reflect what this plugin is doing today which is far more
+ than the original scope which just consisted of importing jar files from the
+ Android SDK maven repository.
+ Scripts that used to pull `play-services-resolver*.unitypackage` will now have
+ to request `external-dependency-manager*.unitypackage` instead.
+ We'll still be shipping a `play-services-resolver*_manifest.txt` file to
+ handle upgrading from older versions of the plugin.
+
+## New Features
+* All Components: Added reporting of usage so that we can remotely detect
+ errors and target improvements.
+* Android Resolver: Added support for *Dependencies.xml files in Unity Package
+ Manager packages.
+* iOS Resolver: Added support for *Dependencies.xml files in Unity Package
+ Manager packages.
+
+## Bug Fixes
+* Version Handler: Disabled attempts to disable asset metadata modification
+ when assets are in a Unity Package Manager managed package.
+
+# Version 1.2.136 - Feb 19, 2019
+## Bug Fixes
+* Android Resolver: Fixed OpenJDK path discovery in Unity 2019.3.1.
+
+# Version 1.2.135 - Dec 5, 2019
+## Bug Fixes
+* All Components: Fixed stack overflow when loading project settings.
+
+# Version 1.2.134 - Dec 4, 2019
+## Bug Fixes
+* All Components: Fixed an issue which caused project settings to be cleared
+ when running in batch mode.
+
+# Version 1.2.133 - Nov 18, 2019
+## Bug Fixes
+* All Components: Failure to save project settings will now report an error
+ to the log rather than throwing an exception.
+
+# Version 1.2.132 - Nov 11, 2019
+## Bug Fixes
+* Android Resolver: Worked around expansion of DIR_UNITYPROJECT on Windows
+ breaking Gradle builds when used as part of a file URI.
+* Android Resolver: mainTemplate.gradle is only written if it needs to be
+ modified.
+
+# Version 1.2.131 - Oct 29, 2019
+## Bug Fixes
+* Version Handler: Improved execution of events on the main thread in batch
+ mode.
+* Version Handler: Improved log level configuration at startup.
+* Version Handler: Improved performance of class lookup in deferred method
+ calls.
+* Version Handler: Fixed rename to enable / disable for editor assets.
+* iOS Resolver: Improved log level configuration at startup.
+* Android Resolver: Improved local maven repo path reference in
+ mainTemplate.gradle using DIR_UNITYPROJECT. DIR_UNITYPROJECT by Unity
+ to point to the local filesystem path of the Unity project when Unity
+ generates the Gradle project.
+
+# Version 1.2.130 - Oct 23, 2019
+## New Features
+* iOS Resolver: Added support for modifying the Podfile before `pod install`
+ is executed.
+
+## Bug Fixes
+* Version Handler: Fixed invalid classname error when calling
+ `VersionHandler.UpdateVersionedAssets()`.
+
+# Version 1.2.129 - Oct 2, 2019
+## Bug Fixes
+* iOS Resolver: Changed Cocoapod integration in Unity 2019.3+ to
+ only add Pods to the UnityFramework target.
+
+# Version 1.2.128 - Oct 1, 2019
+## Bug Fixes
+* iOS Resolver: Fixed Cocoapod project integration mode with Unity
+ 2019.3+.
+
+# Version 1.2.127 - Sep 30, 2019
+## Changes
+* Android Resolver: All Android Resolver settings File paths are now
+ serialized with POSIX directory separators.
+
+# Version 1.2.126 - Sep 27, 2019
+## Changes
+* Android Resolver: File paths are now serialized with POSIX directory
+ separators.
+## Bug Fixes
+* Android Resolver: Fixed resolution when the parent directory of a Unity
+ project contains a Gradle project (i.e `settings.gradle` file).
+
+# Version 1.2.125 - Sep 23, 2019
+## Bug Fixes
+* All components: Silenced a warning about not being able to set the console
+ encoding to UTF8.
+* Android Resolver: Worked around broken AndroidSDKTools class in some
+ versions of Unity.
+* iOS Resolver: Fixed iOS target SDK version check
+* Version Handler: Changed clean up obsolete files window so that it doesn't
+ exceed the screen size.
+
+# Version 1.2.124 - Jul 28, 2019
+## Bug Fixes
+* All components: Fixed regression with source control integration when using
+ Unity 2019.1+.
+
+# Version 1.2.123 - Jul 23, 2019
+## New Features
+* All components: Source control integration for project settings.
+## Changes
+* Android Resolver: Removed AAR cache as it now makes little difference to
+ incremental resolution performance.
+* Android Resolver: Improved embedded resource management so that embedded
+ resources should upgrade when the plugin is updated without restarting
+ the Unity editor.
+## Bug Fixes
+* Version Handler: Fixed InvokeMethod() and InvokeStaticMethod() when calling
+ methods that have interface typed arguments.
+
+# Version 1.2.122 - Jul 2, 2019
+## Bug Fixes
+* iOS Resolver: Worked around Unity not loading the iOS Resolver DLL as it
+ referenced the Xcode extension in a public interface. The iOS Resolver
+ DLL still references the Xcode extension internally and just handles
+ missing type exceptions dynamically.
+
+# Version 1.2.121 - Jun 27, 2019
+## Bug Fixes
+* Android Resolver: Fixed warning about missing Packages folder when loading
+ XML dependencies files in versions of Unity without the package manager.
+* Android Resolver: Fixed resolution window progress bar exceeding 100%.
+* Android Resolver: If AndroidX is detected in the set of resolved libraries,
+ the user will be prompted to enable the Jetifier.
+* Android Resolver: Improved text splitting in text area windows.
+* iOS Resolver: Added support for Unity's breaking changes to the Xcode API
+ in 2019.3.+. Cocoapods are now added to build targets, Unity-iPhone and
+ UnityFramework in Unity 2019.3+.
+
+# Version 1.2.120 - Jun 26, 2019
+## New Features
+* Android Resolver: Added support for loading *Dependencies.xml files from
+ Unity Package Manager packages.
+* Android Resolver: Resolution window is now closed if resolution runs as
+ a pre-build step.
+* iOS Resolver: Added support for loading *Dependencies.xml files from
+ Unity Package Manager packages.
+## Bug Fixes
+* Android Resolver: Fixed generation of relative repo paths when using
+ mainTemplate.gradle resolver.
+* Android Resolver: Fixed copy of .srcaar to .aar files in repos embedded in a
+ project when a project path has characters (e.g whitespace) that are escaped
+ during conversion to URIs.
+* Android Resolver: Fixed auto-resolution always running if the Android SDK
+ is managed by Unity Hub.
+
+# Version 1.2.119 - Jun 19, 2019
+## Bug Fixes
+* Android Resolver: Fixed error reported when using Jetifier integration
+ in Unity 2018+ if the target SDK is set to "highest installed".
+
+# Version 1.2.118 - Jun 18, 2019
+## New Features
+* Android Resolver: Added initial
+ [Jetifier](https://developer.android.com/studio/command-line/jetifier)
+ integration which simplifies
+ [migration](ttps://developer.android.com/jetpack/androidx/migrate)
+ to Jetpack ([AndroidX](https://developer.android.com/jetpack/androidx))
+ libraries in cases where all dependencies are managed by the Android
+ Resolver.
+ This can be enabled via the `Use Jetifier` option in the
+ `Assets > Play Services Resolver > Android Resolver > Settings` menu.
+ Caveats:
+ - If your project contains legacy Android Support Library .jar and .aar
+ files, these files will need to be removed and replaced with references to
+ artifacts on Maven via `*Dependencies.xml` files so that the Jetifier
+ can map them to Jetpack (AndroidX) libraries.
+ For example, remove the file `support-v4-27.0.2.jar` and replace it with
+ `` in a
+ `*Dependencies.xml` file.
+ - If your project contains .jar or .aar files that use the legacy Android
+ Support Libraries, these will need to be moved into a local Maven repo
+ [See this guide](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
+ and then these files should be removed from your Unity project and instead
+ referenced via `*Dependencies.xml` files so that the Jetifier can
+ patch them to reference the Jetpack lirbaries.
+
+## Bug Fixes
+* Android Resolver: Disabled version locking of com.android.support:multidex
+ does not use the same versioning scheme as other legacy Android support
+ libraries.
+* Version Handler: Made Google.VersionHandler.dll's asset GUID stable across
+ releases. This faciliates error-free import into projects where
+ Google.VersionHandler.dll is moved from the default install location.
+
+# Version 1.2.117 - Jun 12, 2019
+## Bug Fixes
+* Android Resolver: Fix copying of .srcaar to .aar files for
+ mainTemplate.gradle resolution. PluginImporter configuration was previously
+ not being applied to .aar files unless the Unity project was saved.
+
+# Version 1.2.116 - Jun 7, 2019
+## Bug Fixes
+* Android Resolver: Fixed resolution of Android dependencies without version
+ specifiers.
+* Android Resolver: Fixed Maven repo not found warning in Android Resolver.
+* Android Resolver: Fixed Android Player directory not found exception in
+ Unity 2019.x when the Android Player isn't installed.
+
+# Version 1.2.115 - May 28, 2019
+## Bug Fixes
+* Android Resolver: Fixed exception due to Unity 2019.3.0a4 removing
+ x86 from the set of supported ABIs.
+
+# Version 1.2.114 - May 27, 2019
+## New Features
+* Android Resolver: Added support for ABI stripping when using
+ mainTemplate.gradle. This only works with AARs stored in repos
+ on the local filesystem.
+
+# Version 1.2.113 - May 24, 2019
+## New Features
+* Android Resolver: If local repos are moved, the plugin will search the
+ project for matching directories in an attempt to correct the error.
+* Version Handler: Files can be now targeted to multiple build targets
+ using multiple "gvh_" asset labels.
+## Bug Fixes
+* Android Resolver: "implementation" or "compile" are now added correctly
+ to mainTemplate.gradle in Unity versions prior to 2019.
+
+# Version 1.2.112 - May 22, 2019
+## New Features
+* Android Resolver: Added option to disable addition of dependencies to
+ mainTemplate.gradle.
+ See `Assets > Play Services Resolver > Android Resolver > Settings`.
+* Android Resolver: Made paths to local maven repositories in
+ mainTemplate.gradle relative to the Unity project when a project is not
+ being exported.
+## Bug Fixes
+* Android Resolver: Fixed builds with mainTemplate.gradle integration in
+ Unity 2019.
+* Android Resolver: Changed dependency inclusion in mainTemplate.gradle to
+ use "implementation" or "compile" depending upon the version of Gradle
+ included with Unity.
+* Android Resolver: Gracefully handled exceptions if the console encoding
+ can't be modified.
+* Android Resolver: Now gracefully fails if the AndroidPlayer directory
+ can't be found.
+
+# Version 1.2.111 - May 9, 2019
+## Bug Fixes
+* Version Handler: Fixed invocation of methods with named arguments.
+* Version Handler: Fixed occasional hang when the editor is compiling
+ while activating plugins.
+
+# Version 1.2.110 - May 7, 2019
+## Bug Fixes
+* Android Resolver: Fixed inclusion of some srcaar artifacts in builds with
+ Gradle builds when using mainTemplate.gradle.
+
+# Version 1.2.109 - May 6, 2019
+## New Features:
+* Added links to documentation from menu.
+* Android Resolver: Added option to auto-resolve Android libraries on build.
+* Android Resolver: Added support for packaging specs of Android libraries.
+* Android Resolver: Pop up a window when displaying Android dependencies.
+
+## Bug Fixes
+* Android Resolver: Support for Unity 2019 Android SDK and JDK install locations
+* Android Resolver: e-enable AAR explosion if internal builds are enabled.
+* Android Resolver: Gracefully handle exceptions on file deletion.
+* Android Resolver: Fixed Android Resolver log spam on load.
+* Android Resolver: Fixed save of Android Resolver PromptBeforeAutoResolution
+ setting.
+* Android Resolver: Fixed AAR processing failure when an AAR without
+ classes.jar is found.
+* Android Resolver: Removed use of EditorUtility.DisplayProgressBar which
+ was occasionally left displayed when resolution had completed.
+* Version Handler: Fixed asset rename to disable when a disabled file exists.
+
+# Version 1.2.108 - May 3, 2019
+## Bug Fixes:
+* Version Handler: Fixed occasional hang on startup.
+
+# Version 1.2.107 - May 3, 2019
+## New Features:
+* Version Handler: Added support for enabling / disabling assets that do not
+ support the PluginImporter, based upon build target selection.
+* Android Resolver: Added support for the global specification of maven repos.
+* iOS Resolver: Added support for the global specification of Cocoapod sources.
+
+# Version 1.2.106 - May 1, 2019
+## New Features
+* iOS Resolver: Added support for development pods in Xcode project integration
+ mode.
+* iOS Resolver: Added support for source pods with resources in Xcode project
+ integration mode.
+
+# Version 1.2.105 - Apr 30, 2019
+## Bug fixes
+* Android Resolver: Fixed reference to Java tool path in logs.
+* Android and iOS Resolvers: Changed command line execution to emit a warning
+ rather than throwing an exception and failing, when it is not possible to
+ change the console input and output encoding to UTF-8.
+* Android Resolver: Added menu option and API to delete resolved libraries.
+* Android Resolver: Added menu option and API to log the repos and libraries
+ currently included in the project.
+* Android Resolver: If Plugins/Android/mainTemplate.gradle file is present and
+ Gradle is selected as the build type, resolution will simply patch the file
+ with Android dependencies specified by plugins in the project.
+
+# Version 1.2.104 - Apr 10, 2019
+## Bug Fixes
+* Android Resolver: Changed Android ABI selection method from using whitelisted
+ Unity versions to type availability. This fixes an exception on resolution
+ in some versions of Unity 2017.4.
+
+# Version 1.2.103 - Apr 2, 2019
+## Bug Fixes
+* Android Resolver: Whitelisted Unity 2017.4 and above with ARM64 support.
+* Android Resolver: Fixed Java version check to work with Java SE 12 and above.
+
+# Version 1.2.102 - Feb 13, 2019
+## Bug Fixes
+* Android Resolver: Fixed the text overflow on the Android Resolver
+ prompt before initial run to fit inside the buttons for
+ smaller screens.
+
+# Version 1.2.101 - Feb 12, 2019
+## New Features
+* Android Resolver: Prompt the user before the resolver runs for the
+ first time and allow the user to elect to disable from the prompt.
+* Android Resolver: Change popup warning when resolver is disabled
+ to be a console warning.
+
+# Version 1.2.100 - Jan 25, 2019
+## Bug Fixes
+* Android Resolver: Fixed AAR processing sometimes failing on Windows
+ due to file permissions.
+
+# Version 1.2.99 - Jan 23, 2019
+## Bug Fixes
+* Android Resolver: Improved performance of project property polling.
+* Version Handler: Fixed callback of VersionHandler.UpdateCompleteMethods
+ when the update process is complete.
+
+# Version 1.2.98 - Jan 9, 2019
+## New Features
+* iOS Resolver: Pod declaration properties can now be set via XML pod
+ references. For example, this can enable pods for a subset of build
+ configurations.
+## Bug Fixes
+* iOS Resolver: Fixed incremental builds after local pods support caused
+ regression in 1.2.96.
+
+# Version 1.2.97 - Dec 17, 2018
+## Bug Fixes
+* Android Resolver: Reduced memory allocation for logic that monitors build
+ settings when auto-resolution is enabled. If auto-resolution is disabled,
+ almost all build settings are no longer polled for changes.
+
+# Version 1.2.96 - Dec 17, 2018
+## Bug Fixes
+* Android Resolver: Fixed repacking of AARs to exclude .meta files.
+* Android Resolver: Only perform auto-resolution on the first scene while
+ building.
+* Android Resolver: Fixed parsing of version ranges that include whitespace.
+* iOS Resolver: Added support for local development pods.
+* Version Handler: Fixed Version Handler failing to rename some files.
+
+# Version 1.2.95 - Oct 23, 2018
+## Bug Fixes:
+* Android Resolver: Fixed auto-resolution running in a loop in some scenarios.
+
+# Version 1.2.94 - Oct 22, 2018
+## Bug Fixes
+* iOS Resolver: Added support for PODS_TARGET_SRCROOT in source Cocoapods.
+
+# Version 1.2.93 - Oct 22, 2018
+## Bug Fixes
+* Android Resolver: Fixed removal of Android libraries on auto-resolution when
+ `*Dependencies.xml` files are deleted.
+
+# Version 1.2.92 - Oct 2, 2018
+## Bug Fixes
+* Android Resolver: Worked around auto-resolution hang on Windows if
+ resolution starts before compilation is finished.
+
+# Version 1.2.91 - Sep 27, 2018
+## Bug Fixes
+* Android Resolver: Fixed Android Resolution when the selected build target
+ isn't Android.
+* Added C# assembly symbols the plugin to simplify debugging bug reports.
+
+# Version 1.2.90 - Sep 21, 2018
+## Bug Fixes
+* Android Resolver: Fixed transitive dependency selection of version locked
+ packages.
+
+# Version 1.2.89 - Aug 31, 2018
+## Bug Fixes
+* Fixed FileLoadException in ResolveUnityEditoriOSXcodeExtension an assembly
+ can't be loaded.
+
+# Version 1.2.88 - Aug 29, 2018
+## Changed
+* Improved reporting of resolution attempts and conflicts found in the Android
+ Resolver.
+## Bug Fixes
+* iOS Resolver now correctly handles sample code in CocoaPods. Previously it
+ would add all sample code to the project when using project level
+ integration.
+* Android Resolver now correctly handles Gradle conflict resolution when the
+ resolution results in a package that is compatible with all requested
+ dependencies.
+
+# Version 1.2.87 - Aug 23, 2018
+## Bug Fixes
+* Fixed Android Resolver "Processing AARs" dialog getting stuck in Unity 5.6.
+
+# Version 1.2.86 - Aug 22, 2018
+## Bug Fixes
+* Fixed Android Resolver exception in OnPostProcessScene() when the Android
+ platform isn't selected.
+
+# Version 1.2.85 - Aug 17, 2018
+## Changes
+* Added support for synchronous resolution in the Android Resolver.
+ PlayServicesResolver.ResolveSync() now performs resolution synchronously.
+* Auto-resolution in the Android Resolver now results in synchronous resolution
+ of Android dependencies before the Android application build starts via
+ UnityEditor.Callbacks.PostProcessSceneAttribute.
+
+# Version 1.2.84 - Aug 16, 2018
+## Bug Fixes
+* Fixed Android Resolver crash when the AndroidResolverDependencies.xml
+ file can't be written.
+* Reduced log spam when a conflicting Android library is pinned to a
+ specific version.
+
+# Version 1.2.83 - Aug 15, 2018
+## Bug Fixes
+* Fixed Android Resolver failures due to an in-accessible AAR / JAR explode
+ cache file. If the cache can't be read / written the resolver now continues
+ with reduced performance following recompilation / DLL reloads.
+* Fixed incorrect version number in plugin manifest on install.
+ This was a minor issue since the version handler rewrote the metadata
+ after installation.
+
+# Version 1.2.82 - Aug 14, 2018
+## Changed
+* Added support for alphanumeric versions in the Android Resolver.
+
+## Bug Fixes
+* Fixed Android Resolver selection of latest duplicated library.
+* Fixed Android Resolver conflict resolution when version locked and non-version
+ locked dependencies are specified.
+* Fixed Android Resolver conflict resolution when non-existent artifacts are
+ referenced.
+
+# Version 1.2.81 - Aug 9, 2018
+## Bug Fixes
+* Fixed editor error that would occur when when
+ `PlayerSettings.Android.targetArchitectures` was set to
+ `AndroidArchitecture.All`.
+
+# Version 1.2.80 - Jul 24, 2018
+## Bug Fixes
+* Fixed project level settings incorrectly falling back to system wide settings
+ when default property values were set.
+
+# Version 1.2.79 - Jul 23, 2018
+## Bug Fixes
+* Fixed AndroidManifest.xml patching on Android Resolver load in Unity 2018.x.
+
+# Version 1.2.78 - Jul 19, 2018
+## Changed
+* Added support for overriding conflicting dependencies.
+
+# Version 1.2.77 - Jul 19, 2018
+## Changed
+* Android Resolver now supports Unity's 2018 ABI filter (i.e arm64-v8a).
+* Reduced Android Resolver build option polling frequency.
+* Disabled Android Resolver auto-resolution in batch mode. Users now need
+ to explicitly kick off resolution through the API.
+* All Android Resolver and Version Handler dialogs are now disabled in batch
+ mode.
+* Verbose logging for all plugins is now enabled by default in batch mode.
+* Version Handler bootstrapper has been improved to no longer call
+ UpdateComplete multiple times. However, since Unity can still reload the
+ app domain after plugins have been enabled, users still need to store their
+ plugin state to persistent storage to handle reloads.
+
+## Bug Fixes
+* Android Resolver no longer incorrectly adds MANIFEST.MF files to AARs.
+* Android Resolver auto-resolution jobs are now unscheduled when an explicit
+ resolve job is started.
+
+# Version 1.2.76 - Jul 16, 2018
+## Bug Fixes
+* Fixed variable replacement in AndroidManifest.xml files in the Android
+ Resolver.
+ Version 1.2.75 introduced a regression which caused all variable replacement
+ to replace the *entire* property value rather than the component of the
+ property that referenced a variable. For example,
+ given "applicationId = com.my.app", "${applicationId}.foo" would be
+ incorrectly expanded as "com.my.app" rather than "com.my.app.foo". This
+ resulted in numerous issues for Android builds where content provider
+ initialization would fail and services may not start.
+
+## Changed
+* Gradle prebuild experimental feature has been removed from the Android
+ Resolver. The feature has been broken for some time and added around 8MB
+ to the plugin size.
+* Added better support for execution of plugin components in batch mode.
+ In batch mode UnityEditor.update is sometimes never called - like when a
+ single method is executed - so the new job scheduler will execute all jobs
+ synchronously from the main thread.
+
+# Version 1.2.75 - Jun 20, 2018
+## New Features
+* Android Resolver now monitors the Android SDK path when
+ auto-resolution is enabled and triggers resolution when the path is
+ modified.
+
+## Changed
+* Android auto-resolution is now delayed by 3 seconds when the following build
+ settings are changed:
+ - Target ABI.
+ - Gradle build vs. internal build.
+ - Project export.
+* Added a progress bar display when AARs are being processed during Android
+ resolution.
+
+## Bug Fixes
+* Fixed incorrect Android package version selection when a mix of
+ version-locked and non-version-locked packages are specified.
+* Fixed non-deterministic Android package version selection to select
+ the highest version of a specified package rather than the last
+ package specification passed to the Gradle resolution script.
+
+# Version 1.2.74 - Jun 19, 2018
+## New Features
+* Added workaround for broken AndroidManifest.xml variable replacement in
+ Unity 2018.x. By default ${applicationId} variables will be replaced by
+ the bundle ID in the Plugins/Android/AndroidManifest.xml file. The
+ behavior can be disabled via the Android Resolver settings menu.
+
+# Version 1.2.73 - May 30, 2018
+## Bug Fixes
+* Fixed spurious warning message about missing Android plugins directory on
+ Windows.
+
+# Version 1.2.72 - May 23, 2018
+## Bug Fixes
+* Fixed spurious warning message about missing Android plugins directory.
+
+# Version 1.2.71 - May 10, 2018
+## Bug Fixes
+* Fixed resolution of Android dependencies when the `Assets/Plugins/Android`
+ directory is named in a different case e.g `Assets/plugins/Android`.
+
+# Version 1.2.70 - May 7, 2018
+## Bug Fixes
+* Fixed bitcode flag being ignored for iOS pods.
+
+# Version 1.2.69 - May 7, 2018
+## Bug Fixes
+* Fixed escaping of local repository paths in Android Resolver.
+
+# Version 1.2.68 - May 3, 2018
+## Changes
+* Added support for granular builds of Google Play Services.
+
+# Version 1.2.67 - May 1, 2018
+## Changes
+* Improved support for iOS source-only pods in Unity 5.5 and below.
+
+# Version 1.2.66 - April 27, 2018
+## Bug Fixes
+* Fixed Version Handler renaming of Linux libraries with hyphens in filenames.
+ Previously, libraries named Foo-1.2.3.so were not being renamed to
+ libFoo-1.2.3.so on Linux which could break native library loading on some
+ versions of Unity.
+
+# Version 1.2.65 - April 26, 2018
+## Bug Fixes
+* Fix CocoaPods casing in logs and comments.
+
+# Version 1.2.64 - Mar 16, 2018
+## Bug Fixes
+* Fixed bug in download_artifacts.gradle (used by Android Resolver) which
+ reported a failure if required artifacts already exist.
+
+# Version 1.2.63 - Mar 15, 2018
+## Bug Fixes
+* Fixed iOS Resolver include search paths taking precedence over system headers
+ when using project level resolution.
+* Fixed iOS Resolver includes relative to library root, when using project level
+ resolution.
+
+# Version 1.2.62 - Mar 12, 2018
+## Changes
+* Improved error reporting when a file can't be moved to trash by the
+ Version Handler.
+## Bug Fixes
+* Fixed Android Resolver throwing NullReferenceException when the Android SDK
+ path isn't set.
+* Fixed Version Handler renaming files with underscores if the
+ "Rename to Canonical Filenames" setting is enabled.
+
+# Version 1.2.61 - Jan 22, 2018
+## Bug Fixes
+* Fixed Android Resolver reporting non-existent conflicting dependencies when
+ Gradle build system is enabled.
+
+# Version 1.2.60 - Jan 12, 2018
+## Changes
+* Added support for Maven / Ivy version specifications for Android packages.
+* Added support for Android SNAPSHOT packages.
+
+## Bug Fixes
+* Fixed Openjdk version check.
+* Fixed non-deterministic Android package resolution when two packages contain
+ an artifact with the same name.
+
+# Version 1.2.59 - Oct 19, 2017
+## Bug Fixes
+* Fixed execution of Android Gradle resolution script when it's located
+ in a path with whitespace.
+
+# Version 1.2.58 - Oct 19, 2017
+## Changes
+* Removed legacy resolution method from Android Resolver.
+ It is now only possible to use the Gradle or Gradle prebuild resolution
+ methods.
+
+# Version 1.2.57 - Oct 18, 2017
+## Bug Fixes
+* Updated Gradle wrapper to 4.2.1 to fix issues using Gradle with the
+ latest Openjdk.
+* Android Gradle resolution now also uses gradle.properties to pass
+ parameters to Gradle in an attempt to workaround problems with
+ command line argument parsing on Windows 10.
+
+# Version 1.2.56 - Oct 12, 2017
+## Bug Fixes
+* Fixed Gradle artifact download with non-version locked artifacts.
+* Changed iOS resolver to only load dependencies at build time.
+
+# Version 1.2.55 - Oct 4, 2017
+## Bug Fixes
+* Force Android Resolution when the "Install Android Packages" setting changes.
+
+# Version 1.2.54 - Oct 4, 2017
+## Bug Fixes
+* Fixed execution of command line tools on Windows when the path to the tool
+ contains a single quote (apostrophe). In this case we fallback to executing
+ the tool via the system shell.
+
+# Version 1.2.53 - Oct 2, 2017
+## New Features
+* Changed Android Resolver "resolution complete" dialog so that it now displays
+ failures.
+* Android Resolver now detects conflicting libraries that it does not manage
+ warning the user if they're newer than the managed libraries and prompting
+ the user to clean them up if they're older or at the same version.
+
+## Bug Fixes
+* Improved Android Resolver auto-resolution speed.
+* Fixed bug in the Gradle Android Resolver which would result in resolution
+ succeeding when some dependencies are not found.
+
+# Version 1.2.52 - Sep 25, 2017
+## New Features
+* Changed Android Resolver's Gradle resolution to resolve conflicting
+ dependencies across Google Play services and Android Support library packages.
+
+# Version 1.2.51 - Sep 20, 2017
+## Changes
+* Changed iOS Resolver to execute the CocoaPods "pod" command via the shell
+ by default. Some developers customize their shell environment to use
+ custom ssh certs to access internal git repositories that host pods so
+ executing "pod" via the shell will work for these scenarios.
+ The drawback of executing "pod" via the shell could potentially cause
+ users problems if they break their shell environment. Though users who
+ customize their shell environments will be able to resolve these issues.
+
+# Version 1.2.50 - Sep 18, 2017
+## New Features
+* Added option to disable the Gradle daemon in the Android Resolver.
+ This daemon is now disabled by default as some users are getting into a state
+ where multiple daemon instances are being spawned when changing dependencies
+ which eventually results in Android resolution failing until all daemon
+ processes are manually killed.
+
+## Bug Fixes
+* Android resolution is now always executed if the user declines the update
+ of their Android SDK. This ensure users can continue to use out of date
+ Android SDK packages if they desire.
+
+# Version 1.2.49 - Sep 18, 2017
+## Bug Fixes
+* Removed modulemap parsing in iOS Resolver.
+ The framework *.modulemap did not need to be parsed by the iOS Resolver
+ when injecting Cocoapods into a Xcode project. Simply adding a modular
+ framework to a Xcode project results in Xcode's Clang parsing the associated
+ modulemap and injecting any compile and link flags into the build process.
+
+# Version 1.2.48 - Sep 12, 2017
+## New Features
+* Changed settings to be per-project by default.
+
+## Bug Fixes
+* Added Google maven repository to fix GradlePrebuild resolution with Google
+ components.
+* Fixed Android Resolution failure with spaces in paths.
+
+# Version 1.2.47 - Aug 29, 2017
+## New Features
+* Android and iOS dependencies can now be specified using *Dependencies.xml
+ files. This is now the preferred method for registering dependencies,
+ we may remove the API for dependency addition in future.
+* Added "Reset to Defaults" button to each settings dialog to restore default
+ settings.
+* Android Resolver now validates the configured JDK is new enough to build
+ recently released Android libraries.
+## Bug Fixes
+* Fixed a bug that caused dependencies with the "LATEST" version specification
+ to be ignored when using the Gradle mode of the Android Resolver.
+* Fixed a race condition when running Android Resolution.
+* Fixed Android Resolver logging if a PlayServicesSupport instance is created
+ with no logging enabled before the Android Resolver is initialized.
+* Fixed iOS resolver dialog in Unity 4.
+* Fixed iOS Cocoapod Xcode project integration in Unity 4.
+
+# Version 1.2.46 - Aug 22, 2017
+## Bug Fixes
+* GradlePrebuild Android resolver on Windows now correctly locates dependent
+ data files.
+
+# Version 1.2.45 - Aug 22, 2017
+## Bug Fixes
+* Improved Android package auto-resolution and fixed clean up of stale
+ dependencies when using Gradle dependency resolution.
+
+# Version 1.2.44 - Aug 21, 2017
+## Bug Fixes
+* Enabled autoresolution for Gradle Prebuild.
+* Made the command line dialog windows have selectable text.
+* Fixed incorrect "Android Settings" dialog disabled groups.
+* Updated PlayServicesResolver android platform detection to use the package
+ manager instead of the 'android' tool.
+* UnityCompat reflection methods 'GetAndroidPlatform' and
+ 'GetAndroidBuildToolsVersion' are now Obsolete due to dependence on the
+ obsolete 'android' build tool.
+
+# Version 1.2.43 - Aug 18, 2017
+## Bug Fixes
+* Fixed Gradle resolution in the Android Resolver when running
+ PlayServicesResolver.Resolve() in parallel or spawning multiple
+ resolutions before the previous resolve completed.
+
+# Version 1.2.42 - Aug 17, 2017
+## Bug Fixes
+* Fixed Xcode project level settings not being applied by IOS Resolver when
+ Xcode project pod integration is enabled.
+
+# Version 1.2.41 - Aug 15, 2017
+## Bug Fixes
+* IOS Resolver's Xcode workspace pod integration is now disabled when Unity
+ Cloud Build is detected. Unity Cloud Build does not follow the same build
+ process as the Unity editor and fails to open the generated xcworkspace at
+ this time.
+
+# Version 1.2.40 - Aug 15, 2017
+## Bug Fixes
+* Moved Android Resolver Gradle Prebuild scripts into Google.JarResolver.dll.
+ They are now extracted from the DLL when required.
+* AARs / JARs are now cleaned up when switching the Android resolution
+ strategy.
+
+# Version 1.2.39 - Aug 10, 2017
+## New Features
+* Android Resolver now supports resolution with Gradle. This enables support
+ for non-local artifacts.
+## Bug Fixes
+* Android Resolver's Gradle Prebuild now uses Android build tools to determine
+ the Android platform tools version rather than relying upon internal Unity
+ APIs.
+* Android Resolver's Gradle Prebuild now correctly strips binaries that are
+ not required for the target ABI.
+
+# Version 1.2.38 - Aug 7, 2017
+## Bug Fixes
+* Fixed an issue in VersionHandler where disabled targets are ignored if
+ the "Any Platform" flag is set on a plugin DLL.
+
+# Version 1.2.37 - Aug 3, 2017
+## New Features
+* Exposed GooglePlayServices.PlayServicesResolver.Resolve() so that it's
+ possible for a script to be notified when AAR / Jar resolution is complete.
+ This makes it easier to setup a project to build from the command line.
+
+# Version 1.2.36 - Aug 3, 2017
+## New Features
+* VersionHandler.UpdateCompleteMethods allows a user to provide a list of
+ methods to be called when VersionHandlerImpl has completed an update.
+ This makes it easier to import a plugin and wait for VersionHandler to
+ execute prior executing a build.
+
+# Version 1.2.35 - Jul 28, 2017
+## New Features
+* VersionHandler will now rename Linux libraries so they can target Unity
+ versions that require different file naming. Libraries need to be labelled
+ gvh_linuxlibname-${basename} in order to be considered for renaming.
+ e.g gvh\_linuxlibname-MyLib will be named MyLib.so in Unity 5.5 and below and
+ libMyLib.so in Unity 5.6 and above.
+
+# Version 1.2.34 - Jul 28, 2017
+## Bug Fixes
+* Made VersionHandler bootstrap module more robust when calling static
+ methods before the implementation DLL is loaded.
+
+# Version 1.2.33 - Jul 27, 2017
+## New Features
+* Added a bootstrap module for VersionHandler so the implementation
+ of the VersionHandler module can be versioned without resulting in
+ a compile error when imported at different versions across multiple
+ plugins.
+
+# Version 1.2.32 - Jul 20, 2017
+## New Features
+* Added support for build target selection based upon .NET framework
+ version in the VersionHandler.
+ When applying either gvh\_dotnet-3.5 or gvh\_dotnet-4.5 labels to
+ assets, the VersionHandler will only enable the asset for the
+ specified set of build targets when the matching .NET framework version
+ is selected in Unity 2017's project settings. This allows assets
+ to be provided in a plugin that need to differ based upon .NET version.
+
+# Version 1.2.31 - Jul 5, 2017
+## Bug Fixes
+* Force expansion of AARs with native components when using Unity 2017
+ with the internal build system. In contrast to Unity 5.x, Unity 2017's
+ internal build system does not include native libraries included in AARs.
+ Forcing expansion of AARs with native components generates an
+ Ant / Eclipse project for each AAR which is correctly included by Unity
+ 2017's internal build system.
+
+# Version 1.2.30 - Jul 5, 2017
+## Bug Fixes
+* Fixed Cocoapods being installed when the build target isn't iOS.
+* Added support for malformed AARs with missing classes.jar.
+
+# Version 1.2.29 - Jun 16, 2017
+## New Features
+* Added support for the Android sdkmanager tool.
+
+# Version 1.2.28 - Jun 8, 2017
+## Bug Fixes
+* Fixed non-shell command line execution (regression from
+ Cocoapod installation patch).
+
+# Version 1.2.27 - Jun 7, 2017
+## Bug Fixes
+* Added support for stdout / stderr redirection when executing
+ commands in shell mode.
+ This fixes CocoaPod tool installation when shell mode is
+ enabled.
+* Fixed incremental builds when additional sources are specified
+ in the Podfile.
+
+# Version 1.2.26 - Jun 7, 2017
+## Bug Fixes
+* Fixed a crash when importing Version Handler into Unity 4.7.x.
+
+# Version 1.2.25 - Jun 7, 2017
+## Bug Fixes
+* Fixed an issue in the Jar Resolver which incorrectly notified
+ event handlers of bundle ID changes when the currently selected
+ (not active) build target changed in Unity 5.6 and above.
+
+# Version 1.2.24 - Jun 6, 2017
+## New Features
+* Added option to control file renaming in Version Handler settings.
+ Disabling file renaming (default option) significantly increases
+ the speed of file version management operations with the downside
+ that any files that are referenced directly by canonical filename
+ rather than asset ID will no longer be valid.
+* Improved logging in the Version Handler.
+## Bug Fixes
+* Fixed an issue in the Version Handler which caused it to not
+ re-enable plugins when re-importing a custom package with disabled
+ version managed files.
+
+# Version 1.2.23 - May 26, 2017
+## Bug Fixes
+* Fixed a bug with gradle prebuild resolver on windows.
+
+# Version 1.2.22 - May 19, 2017
+## Bug Fixes
+* Fixed a bug in the iOS resolver with incremental builds.
+* Fixed misdetection of Cocoapods support with Unity beta 5.6.
+
+# Version 1.2.21 - May 8, 2017
+## Bug Fixes
+* Fix for https://github.com/googlesamples/unity-jar-resolver/issues/48
+ Android dependency version number parsing when "-alpha" (etc.) are
+ included in dependency (AAR / JAR) versions.
+
+# Version 1.2.20 - May 8, 2017
+## Bug Fixes
+* Attempted to fix
+ https://github.com/googlesamples/unity-jar-resolver/issues/48
+ where a NullReferenceException could occur if a target file does not
+ have a valid version string.
+
+# Version 1.2.19 - May 4, 2017
+## Bug Fixes
+* Fixed Jar Resolver exploding and deleting AAR files it isn't managing.
+
+# Version 1.2.18 - May 4, 2017
+## New Features
+* Added support for preserving Unity pods such as when GVR is enabled.
+
+# Version 1.2.17 - Apr 20, 2017
+## Bug Fixes
+* Fixed auto-resolution when an Android application ID is modified.
+
+# Version 1.2.16 - Apr 17, 2017
+## Bug Fixes
+* Fixed Unity version number parsing on machines with a locale that uses
+ "," for decimal points.
+* Fixed null reference exception if JDK path isn't set.
+
+# Version 1.2.15 - Mar 17, 2017
+## New Features
+* Added warning when the Jar Resolver's background resolution is disabled.
+## Bug Fixes
+* Fixed support of AARs with native libraries when using Gradle.
+* Fixed extra repository paths when resolving dependencies.
+
+# Version 1.2.14 - Mar 7, 2017
+## New Features
+* Added experimental Android resolution using Gradle.
+ This alternative resolver supports proguard stripping with Unity's
+ internal build system.
+* Added Android support for single ABI builds when using AARs include
+ native libraries.
+* Disabled Android resolution on changes to all .cs and .js files.
+ File patterns that are monitored for auto-resolution can be added
+ using PlayServicesResolver.AddAutoResolutionFilePatterns().
+* Added tracking of resolved AARs and JARs so they can be cleaned up
+ if they're no longer referenced by a project.
+* Added persistence of AAR / JAR version replacement for each Unity
+ session.
+* Added settings dialog to the iOS resolver.
+* Integrated Cocoapod tool installation in the iOS resolver.
+* Added option to run pod tool via the shell.
+## Bug Fixes
+* Fixed build of some source Cocoapods (e.g Protobuf).
+* VersionHandler no longer prompts to delete obsolete manifests.
+* iOS resolver handles Cocoapod installation when using Ruby < 2.2.2.
+* Added workaround for package version selection when including
+ Google Play Services on Android.
+* Fixed support for pods that reference static libraries.
+* Fixed support for resource-only pods.
+
+# Version 1.2.12 - Feb 14, 2017
+## Bug Fixes
+* Fixed re-explosion of AARs when the bundle ID is modified.
+
+# Version 1.2.11 - Jan 30, 2017
+## New Features
+* Added support for Android Studio builds.
+* Added support for native (C/C++) shared libraries in AARs.
+
+# Version 1.2.10 - Jan 11, 2017
+## Bug Fixes
+* Fixed SDK manager path retrieval.
+* Also, report stderr when it's not possible to run the "pod" tool.
+* Handle exceptions thrown by Unity.Cecil on asset rename
+* Fixed IOSResolver to handle PlayerSettings.iOS.targetOSVersionString
+
+# Version 1.2.9 - Dec 7, 2016
+## Bug Fixes
+* Improved error reporting when "pod repo update" fails.
+* Added detection of xml format xcode projects generated by old Cocoapods
+ installations.
+
+# Version 1.2.8 - Dec 6, 2016
+## Bug Fixes
+* Increased speed of JarResolver resolution.
+* Fixed JarResolver caches getting out of sync with requested dependencies
+ by removing the caches.
+* Fixed JarResolver explode cache always being rewritten even when no
+ dependencies change.
+
+# Version 1.2.7 - Dec 2, 2016
+## Bug Fixes
+* Fixed VersionHandler build errors with Unity 5.5, due to the constantly
+ changing BuildTarget enum.
+* Added support for Unity configured JDK Path rather than requiring
+ JAVA_HOME to be set in the Jar Resolver.
+
+# Version 1.2.6 - Nov 15, 2016
+## Bug Fixes
+* Fixed IOSResolver errors when iOS support is not installed.
+* Added fallback to "pod" executable search which queries the Ruby Gems
+ package manager for the binary install location.
+
+# Version 1.2.5 - Nov 3, 2016
+## Bug Fixes
+* Added crude support for source only Cocoapods to the IOSResolver.
+
+# Version 1.2.4 - Oct 27, 2016
+## Bug Fixes
+* Automated resolution of out of date pod repositories.
+
+# Version 1.2.3 - Oct 25, 2016
+## Bug Fixes
+* Fixed exception when reporting conflicting dependencies.
+
+# Version 1.2.2 - Oct 17, 2016
+## Bug Fixes
+* Fixed issue working with Unity 5.5
+* Fixed issue with PlayServicesResolver corrupting other iOS dependencies.
+* Updated build script to use Unity distributed tools for building.
+
+# Version 1.2.1 - Jul 25, 2016
+## Bug Fixes
+* Removed 1.2 Resolver and hardcoded whitelist of AARs to expand.
+* Improved error reporting when the "jar" executable can't be found.
+* Removed the need to set JAVA_HOME if "jar" is in the user's path.
+* Fixed spurious copying of partially matching AARs.
+* Changed resolver to only copy / expand when source AARs change.
+* Auto-resolution of dependencies is now performed when the Android
+ build target is selected.
+
+## New Features
+* Expand AARs that contain manifests with variable expansion like
+ ${applicationId}.
+* Added optional logging in the JarResolverLib module.
+* Integration with the Android SDK manager for dependencies that
+ declare required Android SDK packages.
+
+# Version 1.2.0 - May 11 2016
+## Bug Fixes
+* Handles resolving dependencies when the artifacts are split across 2 repos.
+* #4 Misdetecting version for versions like 1.2-alpha. These are now string
+ compared if alphanumeric
+* Removed resolver creation via reflection since it did not work all the time.
+ Now a resolver needs to be loaded externally (which is existing behavior).
+
+## New Features
+* Expose PlayServicesResolver properties to allow for script access.
+* Explodes firebase-common and firebase-measurement aar files to support
+ ${applicationId} substitution.
+
+# Version 1.1.1 - 25 Feb 2016
+## Bug Fixes
+* #1 Spaces in project path not handled when exploding Aar file.
+* #2 Script compilation error: TypeLoadException.
+
+# Version 1.1.0 - 5 Feb 2016
+## New Features
+* Adds friendly alert when JAVA_HOME is not set on Windows platforms.
+* Adds flag for disabling background resolution.
+* Expands play-services-measurement and replaces ${applicationId} with the
+ bundle Id.
+
+ ## Bug Fixes
+* Fixes infinite loop of resolution triggered by resolution.
diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta
new file mode 100644
index 0000000..f8bf237
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d67e36cf70144eeeb62948707545ecfd
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md
+timeCreated: 1584567712
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll
new file mode 100644
index 0000000..26bbbe1
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb
new file mode 100644
index 0000000..f643e76
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb.meta b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb.meta
new file mode 100644
index 0000000..1ece882
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 769e94325b7344cd8ebf3932bb73920c
+labels:
+- gvh
+- gvh_rename_to_disable
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb
+- gvhp_targets-editor
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.meta
new file mode 100644
index 0000000..e0faeb0
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: 3b8ce84b1ecd4e48aca0e96a0ec22e4d
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll
new file mode 100644
index 0000000..7536885
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb
new file mode 100644
index 0000000..da3fffb
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb.meta b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb.meta
new file mode 100644
index 0000000..1344139
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 1bfefa46d68749ef9a4a152b4d1c4059
+labels:
+- gvh
+- gvh_rename_to_disable
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb
+- gvhp_targets-editor
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.meta
new file mode 100644
index 0000000..223d743
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: 8867846e2a834bcfac92ec83f60e6fc9
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll
new file mode 100644
index 0000000..bdcb2b6
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb
new file mode 100644
index 0000000..6206f07
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb.meta b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb.meta
new file mode 100644
index 0000000..dc87641
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: e2be4bcb74a14d1f985e804cae3cc56f
+labels:
+- gvh
+- gvh_rename_to_disable
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb
+- gvhp_targets-editor
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.meta
new file mode 100644
index 0000000..8a1b75f
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: 8a496a95a58f4bd7a0389aade198ecdd
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
new file mode 100644
index 0000000..532642d
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
new file mode 100644
index 0000000..8eb1057
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta
new file mode 100644
index 0000000..11fbc19
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3aa17cd5f43042a1a7381759dc1258a7
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
+timeCreated: 1538009133
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta
new file mode 100644
index 0000000..241eaf3
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta
@@ -0,0 +1,36 @@
+fileFormatVersion: 2
+guid: bb6999c8a5ce4ba99688ec579babe5b7
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll
+- gvhp_targets-editor
+timeCreated: 1480838400
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll
new file mode 100644
index 0000000..87f8c16
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb
new file mode 100644
index 0000000..ec3f422
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb.meta
new file mode 100644
index 0000000..c3463a0
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: c9468fb6ca73426aa50edeafff06e546
+labels:
+- gvh
+- gvh_rename_to_disable
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb
+- gvhp_targets-editor
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.meta
new file mode 100644
index 0000000..3a69ecb
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: e83c077c778146b29211c8dc53323f97
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml b/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml
new file mode 100644
index 0000000..efd69e2
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ com.google
+
+
+
diff --git a/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta b/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta
new file mode 100644
index 0000000..d4f612d
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 81e43a9734ee4e3d8d85776f1b564bd3
+labels:
+- gumpr_registries
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/GoogleRegistries.xml
+timeCreated: 1583806049
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/LICENSE b/Assets/ExternalDependencyManager/Editor/LICENSE
new file mode 100644
index 0000000..6258cc4
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/LICENSE
@@ -0,0 +1,245 @@
+Copyright (C) 2014 Google Inc.
+
+ 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.
+
+ 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.
+
+====================================================================================================
+This package uses MiniJSON
+
+Copyright (c) 2013 Calvin Rien
+
+Based on the JSON parser by Patrick van Bergen
+http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
+
+Simplified it so that it doesn't throw exceptions
+and can be used in Unity iPhone with maximum code stripping.
+
+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/ExternalDependencyManager/Editor/LICENSE.meta b/Assets/ExternalDependencyManager/Editor/LICENSE.meta
new file mode 100644
index 0000000..5868f9a
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/LICENSE.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 35a6726adf03479eb04b8c082346d551
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE
+timeCreated: 1584567712
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/README.md b/Assets/ExternalDependencyManager/Editor/README.md
new file mode 100644
index 0000000..37b64e4
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/README.md
@@ -0,0 +1,768 @@
+External Dependency Manager for Unity
+========
+
+# Overview
+
+The External Dependency Manager for Unity (EDM4U)
+(formerly Play Services Resolver / Jar Resolver) is intended to be used by any
+Unity plugin that requires:
+
+ * Android specific libraries (e.g
+ [AARs](https://developer.android.com/studio/projects/android-library.html)).
+ * iOS [CocoaPods](https://cocoapods.org/).
+ * Version management of transitive dependencies.
+ * Management of Package Manager (PM) Registries.
+
+Updated releases are available on
+[GitHub](https://github.com/googlesamples/unity-jar-resolver)
+
+# Background
+
+Many Unity plugins have dependencies upon Android specific libraries, iOS
+CocoaPods, and sometimes have transitive dependencies upon other Unity plugins.
+This causes the following problems:
+
+ * Integrating platform specific (e.g Android and iOS) libraries within a
+ Unity project can be complex and a burden on a Unity plugin maintainer.
+ * The process of resolving conflicting dependencies on platform specific
+ libraries is pushed to the developer attempting to use a Unity plugin.
+ The developer trying to use you plugin is very likely to give up when
+ faced with Android or iOS specific build errors.
+ * The process of resolving conflicting Unity plugins (due to shared Unity
+ plugin components) is pushed to the developer attempting to use your Unity
+ plugin. In an effort to resolve conflicts, the developer will very likely
+ attempt to resolve problems by deleting random files in your plugin,
+ report bugs when that doesn't work and finally give up.
+
+EDM provides solutions for each of these problems.
+
+## Android Dependency Management
+
+The *Android Resolver* component of this plugin will download and integrate
+Android library dependencies and handle any conflicts between plugins that share
+the same dependencies.
+
+Without the Android Resolver, typically Unity plugins bundle their AAR and
+JAR dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google
+Play Games Android library would redistribute the library and its transitive
+dependencies in the folder `SomePlugin/Android/`. When a user imports
+`SomeOtherPlugin` that includes the same libraries (potentially at different
+versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and
+`SomeOtherPlugin` will see an error when building for Android that can be hard
+to interpret.
+
+Using the Android Resolver to manage Android library dependencies:
+
+ * Solves Android library conflicts between plugins.
+ * Handles all of the various processing steps required to use Android
+ libraries (AARs, JARs) in Unity 4.x and above projects. Almost all
+ versions of Unity have - at best - partial support for AARs.
+ * (Experimental) Supports minification of included Java components without
+ exporting a project.
+
+## iOS Dependency Management
+
+The *iOS Resolver* component of this plugin integrates with
+[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries
+and frameworks into the Xcode project Unity generates when building for iOS.
+Using CocoaPods allows multiple plugins to utilize shared components without
+forcing developers to fix either duplicate or incompatible versions of
+libraries included through multiple Unity plugins in their project.
+
+## Package Manager Registry Setup
+
+The [Package Manager](https://docs.unity3d.com/Manual/Packages.html)
+(PM) makes use of [NPM](https://www.npmjs.com/) registry servers for package
+hosting and provides ways to discover, install, upgrade and uninstall packages.
+This makes it easier for developers to manage plugins within their projects.
+
+However, installing additional package registries requires a few manual steps
+that can potentially be error prone. The *Package Manager Resolver*
+component of this plugin integrates with
+[PM](https://docs.unity3d.com/Manual/Packages.html) to provide a way to
+auto-install PM package registries when a `.unitypackage` is installed which
+allows plugin maintainers to ship a `.unitypackage` that can provide access
+to their own PM registry server to make it easier for developers to
+manage their plugins.
+
+## Unity Plugin Version Management
+
+Finally, the *Version Handler* component of this plugin simplifies the process
+of managing transitive dependencies of Unity plugins and each plugin's upgrade
+process.
+
+For example, without the Version Handler plugin, if:
+
+ * Unity plugin `SomePlugin` includes `EDM4U` plugin at
+ version 1.1.
+ * Unity plugin `SomeOtherPlugin` includes `EDM4U`
+ plugin at version 1.2.
+
+The version of `EDM4U` included in the developer's project depends upon the
+order the developer imports `SomePlugin` or `SomeOtherPlugin`.
+
+This results in:
+
+ * `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin`
+ is imported.
+ * `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then
+ `SomePlugin` is imported.
+
+The Version Handler solves the problem of managing transitive dependencies by:
+
+ * Specifying a set of packaging requirements that enable a plugin at
+ different versions to be imported into a Unity project.
+ * Providing activation logic that selects the latest version of a plugin
+ within a project.
+
+When using the Version Handler to manage `EDM4U` included in `SomePlugin` and
+`SomeOtherPlugin`, from the prior example, version 1.2 will always be the
+version activated in a developer's Unity project.
+
+Plugin creators are encouraged to adopt this library to ease integration for
+their customers. For more information about integrating EDM4U
+into your own plugin, see the [Plugin Redistribution](#plugin-redistribution)
+section of this document.
+
+# Analytics
+
+The External Dependency Manager for Unity plugin by default logs usage to Google
+Analytics. The purpose of the logging is to quantitatively measure the usage of
+functionality, to gather reports on integration failures and to inform future
+improvements to the developer experience of the External Dependency Manager
+plugin. Note that the analytics collected are limited to the scope of the EDM4U
+plugin’s usage.
+
+For details of what is logged, please refer to the usage of
+`EditorMeasurement.Report()` in the source code.
+
+# Requirements
+
+The *Android Resolver* and *iOS Resolver* components of the plugin only work
+with Unity version 4.6.8 or higher.
+
+The *Version Handler* component only works with Unity 5.x or higher as it
+depends upon the `PluginImporter` UnityEditor API.
+
+The *Package Manager Resolver* component only works with
+Unity 2018.4 or above, when
+[scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html)
+support was added to the Package Manager.
+
+# Getting Started
+
+Before you import EDM4U into your plugin project, you first
+need to consider whether you intend to *redistribute* `EDM4U`
+along with your own plugin.
+
+## Plugin Redistribution
+
+If you're a plugin maintainer, redistributing `EDM4U` inside your own plugin
+will ease the integration process for your users, by resolving dependency
+conflicts between your plugin and other plugins in a user's project.
+
+If you wish to redistribute `EDM4U` inside your plugin,
+you **must** follow these steps when importing the
+`external-dependency-manager-*.unitypackage`, and when exporting your own plugin
+package:
+
+ 1. Import the `external-dependency-manager-*.unitypackage` into your plugin
+ project by
+ [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
+ you add the `-gvh_disable` option.
+ 1. Export your plugin by [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
+ you:
+ - Include the contents of the `Assets/PlayServicesResolver` and
+ `Assets/ExternalDependencyManager` directory.
+ - Add the `-gvh_disable` option.
+
+You **must** specify the `-gvh_disable` option in order for the Version
+Handler to work correctly!
+
+For example, the following command will import the
+`external-dependency-manager-1.2.46.0.unitypackage` into the project
+`MyPluginProject` and export the entire Assets folder to
+`MyPlugin.unitypackage`:
+
+```
+Unity -gvh_disable \
+ -batchmode \
+ -importPackage external-dependency-manager-1.2.46.0.unitypackage \
+ -projectPath MyPluginProject \
+ -exportPackage Assets MyPlugin.unitypackage \
+ -quit
+```
+
+### Background
+
+The *Version Handler* component relies upon deferring the load of editor DLLs
+so that it can run first and determine the latest version of a plugin component
+to activate. The build of `EDM4U` plugin has Unity asset metadata that is
+configured so that the editor components are not initially enabled when it's
+imported into a Unity project. To maintain this configuration when importing
+the `external-dependency-manager.unitypackage` into a Unity plugin project, you
+*must* specify the command line option `-gvh_disable` which will prevent the
+Version Handler component from running and changing the Unity asset metadata.
+
+# Android Resolver Usage
+
+The Android Resolver copies specified dependencies from local or remote Maven
+repositories into the Unity project when a user selects Android as the build
+target in the Unity editor.
+
+ 1. Add the `external-dependency-manager-*.unitypackage` to your plugin
+ project (assuming you are developing a plugin). If you are redistributing
+ EDM4U with your plugin, you **must** follow the
+ import steps in the [Getting Started](#getting-started) section!
+
+ 2. Copy and rename the
+ [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
+ file into your plugin and add the dependencies your plugin requires.
+
+ The XML file just needs to be under an `Editor` directory and match the
+ name `*Dependencies.xml`. For example,
+ `MyPlugin/Editor/MyPluginDependencies.xml`.
+
+ 3. Follow the steps in the [Getting Started](#getting-started)
+ section when you are exporting your plugin package.
+
+For example, to add the Google Play Games library
+(`com.google.android.gms:play-services-games` package) at version `9.8.0` to
+the set of a plugin's Android dependencies:
+
+```
+
+
+
+
+ extra-google-m2repository
+
+
+
+
+```
+
+The version specification (last component) supports:
+
+ * Specific versions e.g `9.8.0`
+ * Partial matches e.g `9.8.+` would match 9.8.0, 9.8.1 etc. choosing the most
+ recent version.
+ * Latest version using `LATEST` or `+`. We do *not* recommend using this
+ unless you're 100% sure the library you depend upon will not break your
+ Unity plugin in future.
+
+The above example specifies the dependency as a component of the Android SDK
+manager such that the Android SDK manager will be executed to install the
+package if it's not found. If your Android dependency is located on Maven
+central it's possible to specify the package simply using the `androidPackage`
+element:
+
+```
+
+
+
+
+
+```
+
+## Auto-resolution
+
+By default the Android Resolver automatically monitors the dependencies you have
+specified and the `Plugins/Android` folder of your Unity project. The
+resolution process runs when the specified dependencies are not present in your
+project.
+
+The *auto-resolution* process can be disabled via the
+`Assets > External Dependency Manager > Android Resolver > Settings` menu.
+
+Manual resolution can be performed using the following menu options:
+
+ * `Assets > External Dependency Manager > Android Resolver > Resolve`
+ * `Assets > External Dependency Manager > Android Resolver > Force Resolve`
+
+## Deleting libraries
+
+Resolved packages are tracked via asset labels by the Android Resolver.
+They can easily be deleted using the
+`Assets > External Dependency Manager > Android Resolver > Delete Resolved Libraries`
+menu item.
+
+## Android Manifest Variable Processing
+
+Some AAR files (for example play-services-measurement) contain variables that
+are processed by the Android Gradle plugin. Unfortunately, Unity does not
+perform the same processing when using Unity's Internal Build System, so the
+Android Resolver plugin handles known cases of this variable substitution
+by exploding the AAR into a folder and replacing `${applicationId}` with the
+`bundleID`.
+
+Disabling AAR explosion and therefore Android manifest processing can be done
+via the `Assets > External Dependency Manager > Android Resolver > Settings`
+menu. You may want to disable explosion of AARs if you're exporting a project
+to be built with Gradle / Android Studio.
+
+## ABI Stripping
+
+Some AAR files contain native libraries (.so files) for each ABI supported
+by Android. Unfortunately, when targeting a single ABI (e.g x86), Unity does
+not strip native libraries for unused ABIs. To strip unused ABIs, the Android
+Resolver plugin explodes an AAR into a folder and removes unused ABIs to
+reduce the built APK size. Furthermore, if native libraries are not stripped
+from an APK (e.g you have a mix of Unity's x86 library and some armeabi-v7a
+libraries) Android may attempt to load the wrong library for the current
+runtime ABI completely breaking your plugin when targeting some architectures.
+
+AAR explosion and therefore ABI stripping can be disabled via the
+`Assets > External Dependency Manager > Android Resolver > Settings` menu.
+You may want to disable explosion of AARs if you're exporting a project to be
+built with Gradle / Android Studio.
+
+## Resolution Strategies
+
+By default the Android Resolver will use Gradle to download dependencies prior
+to integrating them into a Unity project. This works with Unity's internal
+build system and Gradle / Android Studio project export.
+
+It's possible to change the resolution strategy via the
+`Assets > External Dependency Manager > Android Resolver > Settings` menu.
+
+### Download Artifacts with Gradle
+
+Using the default resolution strategy, the Android resolver executes the
+following operations:
+
+ - Remove the result of previous Android resolutions.
+ e.g Delete all files and directories labeled with "gpsr" under
+ `Plugins/Android` from the project.
+ - Collect the set of Android dependencies (libraries) specified by a
+ project's `*Dependencies.xml` files.
+ - Run `download_artifacts.gradle` with Gradle to resolve conflicts and,
+ if successful, download the set of resolved Android libraries (AARs, JARs).
+ - Process each AAR / JAR so that it can be used with the currently selected
+ Unity build system (e.g Internal vs. Gradle, Export vs. No Export).
+ This involves patching each reference to `applicationId` in the
+ AndroidManifest.xml with the project's bundle ID. This means resolution
+ must be run if the bundle ID is changed again.
+ - Move the processed AARs to `Plugins/Android` so they will be included when
+ Unity invokes the Android build.
+
+### Integrate into mainTemplate.gradle
+
+Unity 5.6 introduced support for customizing the `build.gradle` used to build
+Unity projects with Gradle. When the *Patch mainTemplate.gradle* setting is
+enabled, rather than downloading artifacts before the build, Android resolution
+results in the execution of the following operations:
+
+ - Remove the result of previous Android resolutions.
+ e.g Delete all files and directories labeled with "gpsr" under
+ `Plugins/Android` from the project and remove sections delimited with
+ `// Android Resolver * Start` and `// Android Resolver * End` lines.
+ - Collect the set of Android dependencies (libraries) specified by a
+ project's `*Dependencies.xml` files.
+ - Rename any `.srcaar` files in the build to `.aar` and exclude them from
+ being included directly by Unity in the Android build as
+ `mainTemplate.gradle` will be patched to include them instead from their
+ local maven repositories.
+ - Inject the required Gradle repositories into `mainTemplate.gradle` at the
+ line matching the pattern
+ `.*apply plugin: 'com\.android\.(application|library)'.*` or the section
+ starting at the line `// Android Resolver Repos Start`.
+ If you want to control the injection point in the file, the section
+ delimited by the lines `// Android Resolver Repos Start` and
+ `// Android Resolver Repos End` should be placed in the global scope
+ before the `dependencies` section.
+ - Inject the required Android dependencies (libraries) into
+ `mainTemplate.gradle` at the line matching the pattern `***DEPS***` or
+ the section starting at the line `// Android Resolver Dependencies Start`.
+ If you want to control the injection point in the file, the section
+ delimited by the lines `// Android Resolver Dependencies Start` and
+ `// Android Resolver Dependencies End` should be placed in the
+ `dependencies` section.
+ - Inject the packaging options logic, which excludes architecture specific
+ libraries based upon the selected build target, into `mainTemplate.gradle`
+ at the line matching the pattern `android +{` or the section starting at
+ the line `// Android Resolver Exclusions Start`.
+ If you want to control the injection point in the file, the section
+ delimited by the lines `// Android Resolver Exclusions Start` and
+ `// Android Resolver Exclusions End` should be placed in the global
+ scope before the `android` section.
+
+## Dependency Tracking
+
+The Android Resolver creates the
+`ProjectSettings/AndroidResolverDependencies.xml` to quickly determine the set
+of resolved dependencies in a project. This is used by the auto-resolution
+process to only run the expensive resolution process when necessary.
+
+## Displaying Dependencies
+
+It's possible to display the set of dependencies the Android Resolver
+would download and process in your project via the
+`Assets > External Dependency Manager > Android Resolver > Display Libraries`
+menu item.
+
+# iOS Resolver Usage
+
+The iOS resolver component of this plugin manages
+[CocoaPods](https://cocoapods.org/). A CocoaPods `Podfile` is generated and
+the `pod` tool is executed as a post build process step to add dependencies
+to the Xcode project exported by Unity.
+
+Dependencies for iOS are added by referring to CocoaPods.
+
+ 1. Add the `external-dependency-manager-*.unitypackage` to your plugin
+ project (assuming you are developing a plugin). If you are redistributing
+ EDM4U with your plugin, you **must** follow the
+ import steps in the [Getting Started](#getting-started) section!
+
+ 2. Copy and rename the
+ [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
+ file into your plugin and add the dependencies your plugin requires.
+
+ The XML file just needs to be under an `Editor` directory and match the
+ name `*Dependencies.xml`. For example,
+ `MyPlugin/Editor/MyPluginDependencies.xml`.
+
+ 3. Follow the steps in the [Getting Started](#getting-started)
+ section when you are exporting your plugin package.
+
+For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled:
+
+```
+
+
+
+
+
+```
+
+## Integration Strategies
+
+The `CocoaPods` are either:
+ * Downloaded and injected into the Xcode project file directly, rather than
+ creating a separate xcworkspace. We call this `Xcode project` integration.
+ * If the Unity version supports opening a xcworkspace file, the `pod` tool
+ is used as intended to generate a xcworkspace which references the
+ CocoaPods. We call this `Xcode workspace` integration.
+
+The resolution strategy can be changed via the
+`Assets > External Dependency Manager > iOS Resolver > Settings` menu.
+
+### Appending text to generated Podfile
+In order to modify the generated Podfile you can create a script like this:
+```
+using System.IO;
+public class PostProcessIOS : MonoBehaviour {
+[PostProcessBuildAttribute(45)]//must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and that it's added before "pod install" (50)
+private static void PostProcessBuild_iOS(BuildTarget target, string buildPath)
+{
+ if (target == BuildTarget.iOS)
+ {
+
+ using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
+ {
+ //in this example I'm adding an app extension
+ sw.WriteLine("\ntarget 'NSExtension' do\n pod 'Firebase/Messaging', '6.6.0'\nend");
+ }
+ }
+}
+```
+
+# Package Manager Resolver Usage
+
+Adding registries to the
+[Package Manager](https://docs.unity3d.com/Manual/Packages.html)
+(PM) is a manual process. The Package Manager Resolver (PMR) component
+of this plugin makes it easy for plugin maintainers to distribute new PM
+registry servers and easy for plugin users to manage PM registry servers.
+
+## Adding Registries
+
+ 1. Add the `external-dependency-manager-*.unitypackage` to your plugin
+ project (assuming you are developing a plugin). If you are redistributing
+ EDM4U with your plugin, you **must** follow the
+ import steps in the [Getting Started](#getting-started) section!
+
+ 2. Copy and rename the
+ [SampleRegistries.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/sample/Assets/ExternalDependencyManager/Editor/SampleRegistries.xml)
+ file into your plugin and add the registries your plugin requires.
+
+ The XML file just needs to be under an `Editor` directory and match the
+ name `*Registries.xml` or labeled with `gumpr_registries`. For example,
+ `MyPlugin/Editor/MyPluginRegistries.xml`.
+
+ 3. Follow the steps in the [Getting Started](#getting-started)
+ section when you are exporting your plugin package.
+
+For example, to add a registry for plugins in the scope `com.coolstuff`:
+
+```
+
+
+
+ com.coolstuff
+
+
+
+```
+
+When PMR is loaded it will prompt the developer to add the registry to their
+project if it isn't already present in the `Packages/manifest.json` file.
+
+For more information, see Unity's documentation on
+[scoped package registries](https://docs.unity3d.com/Manual/upm-scoped.html).
+
+## Managing Registries
+
+It's possible to add and remove registries that are specified via PMR
+XML configuration files via the following menu options:
+
+* `Assets > External Dependency Manager > Package Manager Resolver >
+ Add Registries` will prompt the user with a window which allows them to
+ add registries discovered in the project to the Package Manager.
+* `Assets > External Dependency Manager > Package Manager Resolver >
+ Remove Registries` will prompt the user with a window which allows them to
+ remove registries discovered in the project from the Package Manager.
+* `Assets > External Dependency Manager > Package Manager Resolver >
+ Modify Registries` will prompt the user with a window which allows them to
+ add or remove registries discovered in the project.
+
+## Migration
+
+PMR can migrate Version Handler packages installed in the `Assets` folder
+to PM packages. This requires the plugins to implement the following:
+
+* `.unitypackage` must include a Version Handler manifests that describes
+ the components of the plugin. If the plugin has no dependencies
+ the manifest would just include the files in the plugin.
+* The PM package JSON provided by the registry must include a keyword
+ (in the `versions.VERSION.keyword` list) that maps the PM package
+ to a Version Handler package using the format
+ `vh-name:VERSION_HANDLER_MANIFEST_NAME` where `VERSION_HANDLER_MANIFEST_NAME`
+ is the name of the manifest defined in the `.unitypackage`. For
+ more information see the description of the `gvhp_manifestname` asset label
+ in the *Version Handler Usage* section.
+
+When using the `Assets > External Dependency Manager >
+Package Manager Resolver > Migrate Packages` menu option, PMR then
+will:
+
+* List all Version Handler manager packages in the project.
+* Search all available packages in the PM registries and fetch keywords
+ associated with each package parsing the Version Handler manifest names
+ for each package.
+* Map each installed Version Handler package to a PM package.
+* Prompt the user to migrate the discovered packages.
+* Perform package migration for all selected packages if the user clicks
+ the `Apply` button.
+
+## Configuration
+
+PMR can be configured via the `Assets > External Dependency Manager >
+Package Manager Resolver > Settings` menu option:
+
+* `Add package registries` when enabled, when the plugin loads or registry
+ configuration files change, this will prompt the user to add registries
+ that are not present in the Package Manager.
+* `Prompt to add package registries` will cause a developer to be prompted
+ with a window that will ask for confirmation before adding registries.
+ When this is disabled registries are added silently to the project.
+* `Prompt to migrate packages` will cause a developer to be prompted
+ with a window that will ask for confirmation before migrating packages
+ installed in the `Assets` directory to PM packages.
+* `Enable Analytics Reporting` when enabled, reports the use of the plugin
+ to the developers so they can make imrpovements.
+* `Verbose logging` when enabled prints debug information to the console
+ which can be useful when filing bug reports.
+
+# Version Handler Usage
+
+The Version Handler component of this plugin manages:
+
+* Shared Unity plugin dependencies.
+* Upgrading Unity plugins by cleaning up old files from previous versions.
+* Uninstallation of plugins that are distributed with manifest files.
+* Restoration of plugin assets to their original install locations if assets
+ are tagged with the `exportpath` label.
+
+Since the Version Handler needs to modify Unity asset metadata (`.meta` files),
+to enable / disable components, rename and delete asset files it does not
+work with Package Manager installed packages. It's still possible to
+include EDM4U in Package Manager packages, the Version Handler component
+simply won't do anything to PM plugins in this case.
+
+## Using Version Handler Managed Plugins
+
+If a plugin is imported at multiple different versions into a project, if
+the Version Handler is enabled, it will automatically check all managed
+assets to determine the set of assets that are out of date and assets that
+should be removed. To disable automatic checking managed assets disable
+the `Enable version management` option in the
+`Assets > External Dependency Manager > Version Handler > Settings` menu.
+
+If version management is disabled, it's possible to check managed assets
+manually using the
+`Assets > External Dependency Manager > Version Handler > Update` menu option.
+
+### Listing Managed Plugins
+
+Plugins managed by the Version Handler, those that ship with manifest files,
+can displayed using the `Assets > External Dependency Manager >
+Version Handler > Display Managed Packages` menu option. The list of plugins
+are written to the console window along with the set of files used by each
+plugin.
+
+### Uninstalling Managed Plugins
+
+Plugins managed by the Version Handler, those that ship with manifest files,
+can be removed using the `Assets > External Dependency Manager >
+Version Handler > Uninstall Managed Packages` menu option. This operation
+will display a window that allows a developer to select a set of plugins to
+remove which will remove all files owned by each plugin excluding those that
+are in use by other installed plugins.
+
+Files managed by the Version Handler, those labeled with the `gvh` asset label,
+can be checked to see whether anything needs to be upgraded, disabled or
+removed using the `Assets > External Dependency Manager >
+Version Handler > Update` menu option.
+
+### Restore Install Paths
+
+Some developers move assets around in their project which can make it
+harder for plugin maintainers to debug issues if this breaks Unity's
+[special folders](https://docs.unity3d.com/Manual/SpecialFolders.html) rules.
+If assets are labeled with their original install / export path
+(see `gvhp_exportpath` below), Version Handler can restore assets to their
+original locations when using the `Assets > External Dependency Manager >
+Version Handler > Move Files To Install Locations` menu option.
+
+### Settings
+
+Some behavior of the Version Handler can be configured via the
+`Assets > External Dependency Manager > Version Handler > Settings` menu
+option.
+
+* `Enable version management` controls whether the plugin should automatically
+ check asset versions and apply changes. If this is disabled the process
+ should be run manually when installing or upgrading managed plugins using
+ `Assets > External Dependency Manager > Version Handler > Update`.
+* `Rename to canonical filenames` is a legacy option that will rename files to
+ remove version numbers and other labels from filenames.
+* `Prompt for obsolete file deletion` enables the display of a window when
+ obsolete files are deleted allowing the developer to select which files to
+ delete and those to keep.
+* `Allow disabling files via renaming` controls whether obsolete or disabled
+ files should be disabled by renaming them to `myfilename_DISABLED`.
+ Renaming to disable files is required in some scenarios where Unity doesn't
+ support removing files from the build via the PluginImporter.
+* `Enable Analytics Reporting` enables / disables usage reporting to plugin
+ developers to improve the product.
+* `Verbose logging` enables _very_ noisy log output that is useful for
+ debugging while filing a bug report or building a new managed plugin.
+* `Use project settings` saves settings for the plugin in the project rather
+ than system-wide.
+
+## Redistributing a Managed Plugin
+
+The Version Handler employs a couple of methods for managing version
+selection, upgrade and removal of plugins.
+
+* Each plugin can ship with a manifest file that lists the files it includes.
+ This makes it possible for Version Handler to calculate the difference
+ in assets between the most recent release of a plugin and the previous
+ release installed in a project. If a files are removed the Version Handler
+ will prompt the user to clean up obsolete files.
+* Plugins can ship using assets with unique names, unique GUIDs and version
+ number labels. Version numbers can be attached to assets using labels or
+ added to the filename (e.g `myfile.txt` would be `myfile_version-x.y.z.txt).
+ This allows the Version Handler to determine which set of files are the
+ same file at different versions, select the most recent version and prompt
+ the developer to clean up old versions.
+
+Unity plugins can be managed by the Version Handler using the following steps:
+
+ 1. Add the `gvh` asset label to each asset (file) you want Version Handler
+ to manage.
+ 1. Add the `gvh_version-VERSION` label to each asset where `VERSION` is the
+ version of the plugin you're releasing (e.g 1.2.3).
+ 1. Add the `gvhp_exportpath-PATH` label to each asset where `PATH` is the
+ export path of the file when the `.unitypackage` is created. This is
+ used to track files if they're moved around in a project by developers.
+ 1. Optional: Add `gvh_targets-editor` label to each editor DLL in your
+ plugin and disable `editor` as a target platform for the DLL.
+ The Version Handler will enable the most recent version of this DLL when
+ the plugin is imported.
+ 1. Optional: If your plugin is included in other Unity plugins, you should
+ add the version number to each filename and change the GUID of each asset.
+ This allows multiple versions of your plugin to be imported into a Unity
+ project, with the Version Handler component activating only the most
+ recent version.
+ 1. Create a manifest text file named `MY_UNIQUE_PLUGIN_NAME_VERSION.txt`
+ that lists all the files in your plugin relative to the project root.
+ Then add the `gvh_manifest` label to the asset to indicate this file is
+ a plugin manifest.
+ 1. Optional: Add a `gvhp_manifestname-NAME` label to your manifest file
+ to provide a human readable name for your package. If this isn't provided
+ the name of the manifest file will be used as the package name.
+ NAME can match the pattern `[0-9]+[a-zA-Z -]' where a leading integer
+ will set the priority of the name where `0` is the highest priority
+ and preferably used as the display name. The lowest value (i.e highest
+ priority name) will be used as the display name and all other specified
+ names will be aliases of the display name. Aliases can refer to previous
+ names of the package allowing renaming across published versions.
+ 1. Redistribute EDM4U Unity plugin with your plugin.
+ See the [Plugin Redistribution](#plugin-redistribution) for the details.
+
+If you follow these steps:
+
+ * When users import a newer version of your plugin, files referenced by the
+ older version's manifest are cleaned up.
+ * The latest version of the plugin will be selected when users import
+ multiple packages that include your plugin, assuming the steps in
+ [Plugin Redistribution](#plugin-redistribution) are followed.
+
+# Building from Source
+
+To build this plugin from source you need the following tools installed:
+ * Unity (with iOS and Android modules installed)
+
+You can build the plugin by running the following from your shell
+(Linux / OSX):
+
+```
+./gradlew build
+```
+
+or Windows:
+
+```
+./gradlew.bat build
+```
+
+# Releasing
+
+Each time a new build of this plugin is checked into the source tree you
+need to do the following:
+
+ * Bump the plugin version variable `pluginVersion` in `build.gradle`
+ * Update `CHANGELOG.md` with the new version number and changes included in
+ the release.
+ * Build the release using `./gradlew release` which performs the following:
+ * Updates `external-dependency-manager-*.unitypackage`
+ * Copies the unpacked plugin to the `exploded` directory.
+ * Updates template metadata files in the `plugin` directory.
+ The GUIDs of all asset metadata is modified due to the version number
+ change. Each file within the plugin is versioned to allow multiple
+ versions of the plugin to be imported into a Unity project which allows
+ the most recent version to be activated by the Version Handler
+ component.
+ * Create release commit using `./gradlew gitCreateReleaseCommit` which
+ performs `git commit -a -m "description from CHANGELOG.md"`
+ * Once the release commit is merge, tag the release using
+ `./gradlew gitTagRelease` which performs the following:
+ * `git tag -a pluginVersion -m "version RELEASE"` to tag the release.
+ * Update tags on remote branch using `git push --tag REMOTE HEAD:master`
diff --git a/Assets/ExternalDependencyManager/Editor/README.md.meta b/Assets/ExternalDependencyManager/Editor/README.md.meta
new file mode 100644
index 0000000..ea11318
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/README.md.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 11eb52f780284fd69194951ac46cb538
+labels:
+- gvh
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/README.md
+timeCreated: 1584567712
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt
new file mode 100644
index 0000000..a2a5411
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt
@@ -0,0 +1,14 @@
+Assets/ExternalDependencyManager/Editor/CHANGELOG.md
+Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll
+Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.160.dll.mdb
+Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll
+Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.160.dll.mdb
+Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll
+Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.160.dll.mdb
+Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
+Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
+Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll
+Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.160.dll.mdb
+Assets/ExternalDependencyManager/Editor/GoogleRegistries.xml
+Assets/ExternalDependencyManager/Editor/LICENSE
+Assets/ExternalDependencyManager/Editor/README.md
diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt.meta b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt.meta
new file mode 100644
index 0000000..8c99086
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: f9844d3ea247439692f721d4fc3ee480
+labels:
+- gvh
+- gvh_manifest
+- gvh_version-1.2.160
+- gvhp_exportpath-ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.160_manifest.txt
+- gvhp_manifestname-0External Dependency Manager
+- gvhp_manifestname-play-services-resolver
+timeCreated: 1474401009
+licenseType: Pro
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift.meta b/Assets/Helpshift.meta
new file mode 100644
index 0000000..eb1158f
--- /dev/null
+++ b/Assets/Helpshift.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6fbf682c57be548c6a708b97f2d8b426
+folderAsset: yes
+timeCreated: 1621857880
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Editor.meta b/Assets/Helpshift/Editor.meta
new file mode 100644
index 0000000..c24c4a7
--- /dev/null
+++ b/Assets/Helpshift/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 594315fd1d6f14d81bdb2af4fb373b0f
+folderAsset: yes
+timeCreated: 1621857880
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Editor/HelpshiftDependencies.xml b/Assets/Helpshift/Editor/HelpshiftDependencies.xml
new file mode 100644
index 0000000..bd27cc7
--- /dev/null
+++ b/Assets/Helpshift/Editor/HelpshiftDependencies.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/Helpshift/Editor/HelpshiftDependencies.xml.meta b/Assets/Helpshift/Editor/HelpshiftDependencies.xml.meta
new file mode 100644
index 0000000..8b9b942
--- /dev/null
+++ b/Assets/Helpshift/Editor/HelpshiftDependencies.xml.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fb5f9142f8c1e499a9c2b80b8a8870da
+timeCreated: 1621935842
+licenseType: Free
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Editor/HelpshiftPostProcess.cs b/Assets/Helpshift/Editor/HelpshiftPostProcess.cs
new file mode 100644
index 0000000..ff4b01e
--- /dev/null
+++ b/Assets/Helpshift/Editor/HelpshiftPostProcess.cs
@@ -0,0 +1,98 @@
+#if UNITY_IOS
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.Callbacks;
+using System.IO;
+using HsUnityEditor.iOS.Xcode;
+using HsUnityEditor.iOS.Xcode.Extensions;
+public class HelpshiftPostProcess : MonoBehaviour
+{
+ // Set PostProcess priority to a high number to ensure that the this is started last.
+ [PostProcessBuild(900)]
+ public static void OnPostprocessBuild(BuildTarget target, string path)
+ {
+ // Don't do anything if build target is not iOS
+ if (target != BuildTarget.iOS)
+ {
+ return;
+ }
+
+ // Create a PBXProject object for the generated Xcode project
+ PBXProject project = new PBXProject();
+ string pbxProjectPath = PBXProject.GetPBXProjectPath(path);
+ project.ReadFromFile(pbxProjectPath);
+
+ // GUID of main app target. This is the target whose build settings we will be modifying.
+ string unityAppTargetGuid = project.TargetGuidByName("Unity-iPhone");
+ // GUID of UnityFramework target. This target is only present in Unity 2019.3 and above.
+ // We need to add our app controller mm file to this target, if present. Else we add
+ // it to app target.
+ string unityFrameworkTargetGuid = project.TargetGuidByName("UnityFramework");
+
+ // Add HelpshiftX-Unity.h header file to project, if not already added.
+ string unityHeaderProjectPath = "Libraries/Helpshift/Plugins/iOS/HelpshiftX-Unity.h";
+ string unityHeaderGuid = project.FindFileGuidByProjectPath(unityHeaderProjectPath);
+ if (unityHeaderGuid == null)
+ {
+ string unityHeaderDiskPath = Application.dataPath + "/Helpshift/Plugins/iOS/HelpshiftX-Unity.h";
+ project.AddFile(unityHeaderDiskPath, unityHeaderProjectPath, PBXSourceTree.Absolute);
+ }
+
+ // Add HsUnityAppController.mm file to project, if not already added.
+ string unityAppControllerProjectPath = "Libraries/Helpshift/Plugins/iOS/HsUnityAppController.mm";
+ string unityAppControllerGuid = project.FindFileGuidByProjectPath(unityHeaderProjectPath);
+ if (unityAppControllerGuid == null)
+ {
+ string unityAppControllerDiskPath = Application.dataPath + "/Helpshift/Plugins/iOS/HsUnityAppController.mm";
+ unityAppControllerGuid = project.AddFile(unityAppControllerDiskPath, unityAppControllerProjectPath, PBXSourceTree.Absolute);
+ project.AddFileToBuild(unityFrameworkTargetGuid ?? unityAppTargetGuid, unityAppControllerGuid);
+ }
+
+ // Add HelpshiftX.framework to project, if not already added.
+ string frameworkProjectPath = "Frameworks/Helpshift/Plugins/iOS/HelpshiftX.framework";
+ string frameworkGuid = project.FindFileGuidByProjectPath(frameworkProjectPath);
+ if (frameworkGuid == null)
+ {
+ string frameworkDiskPath = Application.dataPath + "/Helpshift/Plugins/iOS/HelpshiftX.framework";
+ frameworkGuid = project.AddFile(frameworkDiskPath, frameworkProjectPath, PBXSourceTree.Absolute);
+ project.AddFileToBuild(unityFrameworkTargetGuid ?? unityAppTargetGuid, frameworkGuid);
+ // If framework is added to project via this script, we also need to set the Framework Search Path to path of framework on disk.
+ project.AddBuildProperty(unityFrameworkTargetGuid ?? unityAppTargetGuid, "FRAMEWORK_SEARCH_PATHS", frameworkDiskPath.Replace("/HelpshiftX.framework", ""));
+ }
+
+ // Embed HelpshiftX.framework into main app target
+ PBXProjectExtensions.AddFileToEmbedFrameworks(project, unityAppTargetGuid, frameworkGuid);
+
+ // Add script phase to strip simulator slices from HelpshiftX.framework in app target, if not already added
+ if (!project.isShellScriptAdded(unityAppTargetGuid, "HS Strip Simulator Slices"))
+ {
+ project.AddShellScriptBuildPhase(unityAppTargetGuid,
+ "HS Strip Simulator Slices",
+ "/bin/sh",
+ "bash \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/HelpshiftX.framework/strip_frameworks.sh\"");
+ }
+
+ // Add @executable_path/Frameworks to Runpath Search Paths for app target, if not already added
+ if (!project.IsBuildPropertyAdded(unityAppTargetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"))
+ {
+ project.AddBuildProperty(unityAppTargetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");
+ }
+
+ // Set Validate Workspace to YES. If you are setting this to NO elsewhere in your build pipeline,
+ // comment this line out.
+ project.SetBuildProperty(unityAppTargetGuid, "VALIDATE_WORKSPACE", "YES");
+
+ // Add UserNotifications.framework system framework
+ project.AddFrameworkToProject(unityFrameworkTargetGuid ?? unityAppTargetGuid, "UserNotifications.framework", false);
+
+ // Save modified Xcode project
+ project.WriteToFile(pbxProjectPath);
+
+ // Enable remote notifications
+ string preprocessorPath = path + "/Classes/Preprocessor.h";
+ string text = File.ReadAllText(preprocessorPath);
+ text = text.Replace("UNITY_USES_REMOTE_NOTIFICATIONS 0", "UNITY_USES_REMOTE_NOTIFICATIONS 1");
+ File.WriteAllText(preprocessorPath, text);
+ }
+}
+#endif
diff --git a/Assets/Helpshift/Editor/HelpshiftPostProcess.cs.meta b/Assets/Helpshift/Editor/HelpshiftPostProcess.cs.meta
new file mode 100644
index 0000000..19641ed
--- /dev/null
+++ b/Assets/Helpshift/Editor/HelpshiftPostProcess.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 9b3cd08777704440fa02b5ef629decd3
+timeCreated: 1621935750
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll b/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll
new file mode 100644
index 0000000..ae5b4cc
Binary files /dev/null and b/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll differ
diff --git a/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll.meta b/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll.meta
new file mode 100644
index 0000000..c2b1939
--- /dev/null
+++ b/Assets/Helpshift/Editor/HsUnityEditor.iOS.Xcode.dll.meta
@@ -0,0 +1,25 @@
+fileFormatVersion: 2
+guid: 27f97bec042734e1d886c71641b48673
+timeCreated: 1621935749
+licenseType: Free
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example.meta b/Assets/Helpshift/Example.meta
new file mode 100644
index 0000000..3acc417
--- /dev/null
+++ b/Assets/Helpshift/Example.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 66db1497db93e4c048ecdfab562d2767
+folderAsset: yes
+timeCreated: 1622524193
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/HSEventsListener.cs b/Assets/Helpshift/Example/HSEventsListener.cs
new file mode 100644
index 0000000..0d8fa99
--- /dev/null
+++ b/Assets/Helpshift/Example/HSEventsListener.cs
@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+using Helpshift;
+using UnityEngine;
+
+namespace HelpshiftExample
+{
+ public class HSEventsListener: IHelpshiftEventsListener
+ {
+
+ public void AuthenticationFailedForUser(HelpshiftAuthenticationFailureReason reason)
+ {
+ Debug.Log("Helpshift - Authentication Failed for reason " + reason.ToString());
+ }
+
+ public void HandleHelpshiftEvent(string eventName, Dictionary eventData)
+ {
+ string eventDataString = "";
+ if (eventData != null)
+ {
+ foreach (KeyValuePair kvp in eventData)
+ {
+ eventDataString += kvp.Key + ":" + kvp.Value.ToString();
+ }
+ }
+ Debug.Log("Helpshift - event_" + eventName + " " + eventDataString);
+ }
+ }
+}
diff --git a/Assets/Helpshift/Example/HSEventsListener.cs.meta b/Assets/Helpshift/Example/HSEventsListener.cs.meta
new file mode 100644
index 0000000..ffca2b4
--- /dev/null
+++ b/Assets/Helpshift/Example/HSEventsListener.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 50979a1615b254ec693a5ec7f0991626
+timeCreated: 1621935750
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/HelpshiftExample.unity b/Assets/Helpshift/Example/HelpshiftExample.unity
new file mode 100644
index 0000000..9dab2ef
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExample.unity
@@ -0,0 +1,2813 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 1
+ m_BakeResolution: 50
+ m_AtlasSize: 1024
+ m_AO: 1
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 0
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 0
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 4890085278179872738, guid: 7d6d5dae01ebcdd4f8afbab575ab0070,
+ type: 2}
+--- !u!196 &5
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666666
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &236467508
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 236467509}
+ - component: {fileID: 236467512}
+ - component: {fileID: 236467511}
+ - component: {fileID: 236467510}
+ m_Layer: 5
+ m_Name: showSingleFAQ
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &236467509
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 236467508}
+ 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: 1324562181}
+ - {fileID: 1125773462}
+ m_Father: {fileID: 1596309543}
+ m_RootOrder: 2
+ 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: -150, y: 180}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &236467510
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 236467508}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 236467511}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: ShowSingleFAQ
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &236467511
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 236467508}
+ 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.21788493, g: 0.46727726, b: 0.9558824, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &236467512
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 236467508}
+ m_CullTransparentMesh: 0
+--- !u!1 &282237584
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 282237585}
+ - component: {fileID: 282237587}
+ - component: {fileID: 282237586}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &282237585
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 282237584}
+ 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: 604588012}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &282237586
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 282237584}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Logout
+--- !u!222 &282237587
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 282237584}
+ m_CullTransparentMesh: 0
+--- !u!1 &335952723
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 335952724}
+ - component: {fileID: 335952727}
+ - component: {fileID: 335952726}
+ - component: {fileID: 335952725}
+ m_Layer: 5
+ m_Name: request unread count
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &335952724
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 335952723}
+ 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: 1488823073}
+ m_Father: {fileID: 1596309543}
+ 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: -150, y: -50}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &335952725
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 335952723}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 335952726}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: RequestUnreadCount
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &335952726
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 335952723}
+ 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.9558824, g: 0.21788493, b: 0.41638094, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &335952727
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 335952723}
+ m_CullTransparentMesh: 0
+--- !u!1 &400624367
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 400624368}
+ - component: {fileID: 400624371}
+ - component: {fileID: 400624370}
+ - component: {fileID: 400624369}
+ m_Layer: 5
+ m_Name: login
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &400624368
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 400624367}
+ 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: 1079559926}
+ m_Father: {fileID: 1596309543}
+ 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: -150, y: -170}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &400624369
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 400624367}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 400624370}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: Login
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &400624370
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 400624367}
+ 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.21788493, g: 0.9558824, b: 0.89480686, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &400624371
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 400624367}
+ m_CullTransparentMesh: 0
+--- !u!1 &464179977
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 464179978}
+ - component: {fileID: 464179980}
+ - component: {fileID: 464179979}
+ m_Layer: 5
+ m_Name: Placeholder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &464179978
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 464179977}
+ 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: 1125773462}
+ 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.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &464179979
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 464179977}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 2
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: FAQ id
+--- !u!222 &464179980
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 464179977}
+ m_CullTransparentMesh: 0
+--- !u!1 &562788409
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 562788413}
+ - component: {fileID: 562788412}
+ - component: {fileID: 562788411}
+ - component: {fileID: 562788410}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &562788410
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 562788409}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2d49b7c1bcd2e07499844da127be038d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ForceModuleActive: 0
+--- !u!114 &562788411
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 562788409}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &562788412
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 562788409}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &562788413
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 562788409}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &572909642
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 572909643}
+ - component: {fileID: 572909646}
+ - component: {fileID: 572909645}
+ - component: {fileID: 572909644}
+ m_Layer: 5
+ m_Name: showFAQSection
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &572909643
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572909642}
+ 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: 1790335907}
+ - {fileID: 741585075}
+ m_Father: {fileID: 1596309543}
+ 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: -150, y: 70}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &572909644
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572909642}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 572909645}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: ShowFAQSection
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &572909645
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572909642}
+ 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.94570315, g: 0.21788493, b: 0.9558824, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &572909646
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572909642}
+ m_CullTransparentMesh: 0
+--- !u!1 &575344167
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 575344168}
+ - component: {fileID: 575344170}
+ - component: {fileID: 575344169}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &575344168
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575344167}
+ 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: 873159018}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &575344169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575344167}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Custom API
+--- !u!222 &575344170
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575344167}
+ m_CullTransparentMesh: 0
+--- !u!1 &604588011
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 604588012}
+ - component: {fileID: 604588015}
+ - component: {fileID: 604588014}
+ - component: {fileID: 604588013}
+ m_Layer: 5
+ m_Name: logout
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &604588012
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 604588011}
+ 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: 282237585}
+ m_Father: {fileID: 1596309543}
+ 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: -150, y: -290}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &604588013
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 604588011}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 604588014}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: Logout
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &604588014
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 604588011}
+ 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.18771628, g: 0.8518434, b: 0.9117647, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &604588015
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 604588011}
+ m_CullTransparentMesh: 0
+--- !u!1 &605853697
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 605853702}
+ - component: {fileID: 605853701}
+ - component: {fileID: 605853700}
+ - component: {fileID: 605853698}
+ m_Layer: 0
+ m_Name: Camera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &605853698
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 605853697}
+ m_Enabled: 1
+--- !u!124 &605853700
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 605853697}
+ m_Enabled: 1
+--- !u!20 &605853701
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 605853697}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &605853702
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 605853697}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &661817994
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 661817995}
+ - component: {fileID: 661817997}
+ - component: {fileID: 661817996}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &661817995
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661817994}
+ 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: 1758952915}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &661817996
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661817994}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Contact Us
+--- !u!222 &661817997
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661817994}
+ m_CullTransparentMesh: 0
+--- !u!1 &716001486
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 716001487}
+ - component: {fileID: 716001489}
+ - component: {fileID: 716001488}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &716001487
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 716001486}
+ 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: 1125773462}
+ 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.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &716001488
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 716001486}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 1
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &716001489
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 716001486}
+ m_CullTransparentMesh: 0
+--- !u!1 &741585074
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 741585075}
+ - component: {fileID: 741585078}
+ - component: {fileID: 741585077}
+ - component: {fileID: 741585076}
+ m_Layer: 5
+ m_Name: sectionid
+ m_TagString: sectionid
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &741585075
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 741585074}
+ 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: 854019309}
+ - {fileID: 1102134620}
+ m_Father: {fileID: 572909643}
+ m_RootOrder: 1
+ 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: 300, y: 0}
+ m_SizeDelta: {x: 160, y: 90}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &741585076
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 741585074}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 741585077}
+ m_TextComponent: {fileID: 1102134621}
+ m_Placeholder: {fileID: 854019310}
+ m_ContentType: 0
+ m_InputType: 0
+ m_AsteriskChar: 42
+ m_KeyboardType: 0
+ m_LineType: 0
+ m_HideMobileInput: 0
+ m_CharacterValidation: 0
+ m_CharacterLimit: 0
+ m_OnEndEdit:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnValueChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_CustomCaretColor: 0
+ m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+ m_Text:
+ m_CaretBlinkRate: 0.85
+ m_CaretWidth: 1
+ m_ReadOnly: 0
+ m_ShouldActivateOnSelect: 1
+--- !u!114 &741585077
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 741585074}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &741585078
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 741585074}
+ m_CullTransparentMesh: 0
+--- !u!1 &854019308
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 854019309}
+ - component: {fileID: 854019311}
+ - component: {fileID: 854019310}
+ m_Layer: 5
+ m_Name: Placeholder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &854019309
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 854019308}
+ 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: 741585075}
+ 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.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &854019310
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 854019308}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 2
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Section id
+--- !u!222 &854019311
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 854019308}
+ m_CullTransparentMesh: 0
+--- !u!1 &873159017
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 873159018}
+ - component: {fileID: 873159021}
+ - component: {fileID: 873159020}
+ - component: {fileID: 873159019}
+ m_Layer: 5
+ m_Name: customize
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &873159018
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 873159017}
+ 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: 575344168}
+ m_Father: {fileID: 1596309543}
+ 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: -150, y: -400}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &873159019
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 873159017}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 873159020}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: CustomizedApi
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &873159020
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 873159017}
+ 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.9117647, g: 0.4723423, b: 0.18771634, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &873159021
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 873159017}
+ m_CullTransparentMesh: 0
+--- !u!1 &1079559925
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1079559926}
+ - component: {fileID: 1079559928}
+ - component: {fileID: 1079559927}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1079559926
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1079559925}
+ 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: 400624368}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1079559927
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1079559925}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Login
+--- !u!222 &1079559928
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1079559925}
+ m_CullTransparentMesh: 0
+--- !u!1 &1102134619
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1102134620}
+ - component: {fileID: 1102134622}
+ - component: {fileID: 1102134621}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1102134620
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1102134619}
+ 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: 741585075}
+ 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.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1102134621
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1102134619}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 1
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &1102134622
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1102134619}
+ m_CullTransparentMesh: 0
+--- !u!1 &1125773461
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1125773462}
+ - component: {fileID: 1125773465}
+ - component: {fileID: 1125773464}
+ - component: {fileID: 1125773463}
+ - component: {fileID: 1125773466}
+ m_Layer: 5
+ m_Name: faqid
+ m_TagString: faqidd
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1125773462
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1125773461}
+ 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: 464179978}
+ - {fileID: 716001487}
+ m_Father: {fileID: 236467509}
+ m_RootOrder: 1
+ 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: 300, y: 0}
+ m_SizeDelta: {x: 160, y: 90}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1125773463
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1125773461}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1125773464}
+ m_TextComponent: {fileID: 716001488}
+ m_Placeholder: {fileID: 464179979}
+ m_ContentType: 0
+ m_InputType: 0
+ m_AsteriskChar: 42
+ m_KeyboardType: 0
+ m_LineType: 0
+ m_HideMobileInput: 0
+ m_CharacterValidation: 0
+ m_CharacterLimit: 0
+ m_OnEndEdit:
+ m_PersistentCalls:
+ m_Calls: []
+ m_OnValueChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_CustomCaretColor: 0
+ m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+ m_Text:
+ m_CaretBlinkRate: 0.85
+ m_CaretWidth: 1
+ m_ReadOnly: 0
+ m_ShouldActivateOnSelect: 1
+--- !u!114 &1125773464
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1125773461}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1125773465
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1125773461}
+ m_CullTransparentMesh: 0
+--- !u!114 &1125773466
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1125773461}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 81784de33e4ea4e1bbe453ffdd17e3b4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &1130859877
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1130859878}
+ - component: {fileID: 1130859880}
+ - component: {fileID: 1130859879}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1130859878
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1130859877}
+ 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: 1341542597}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1130859879
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1130859877}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: show FAQs
+--- !u!222 &1130859880
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1130859877}
+ m_CullTransparentMesh: 0
+--- !u!1 &1324562180
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1324562181}
+ - component: {fileID: 1324562183}
+ - component: {fileID: 1324562182}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1324562181
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1324562180}
+ 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: 236467509}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1324562182
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1324562180}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'show single FAQ '
+--- !u!222 &1324562183
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1324562180}
+ m_CullTransparentMesh: 0
+--- !u!1 &1341542596
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1341542597}
+ - component: {fileID: 1341542600}
+ - component: {fileID: 1341542599}
+ - component: {fileID: 1341542598}
+ m_Layer: 5
+ m_Name: showFAQs
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1341542597
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1341542596}
+ 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: 1130859878}
+ m_Father: {fileID: 1596309543}
+ m_RootOrder: 1
+ 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: -150, y: 290}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1341542598
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1341542596}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1341542599}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: ShowFAQs
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &1341542599
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1341542596}
+ 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.9558824, g: 0.9355238, b: 0.21788493, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1341542600
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1341542596}
+ m_CullTransparentMesh: 0
+--- !u!1 &1488823072
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1488823073}
+ - component: {fileID: 1488823075}
+ - component: {fileID: 1488823074}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1488823073
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488823072}
+ 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: 335952724}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1488823074
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488823072}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Request unread count
+--- !u!222 &1488823075
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488823072}
+ m_CullTransparentMesh: 0
+--- !u!1 &1596309542
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1596309543}
+ - component: {fileID: 1596309546}
+ - component: {fileID: 1596309545}
+ - component: {fileID: 1596309544}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1596309543
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1596309542}
+ 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: 1758952915}
+ - {fileID: 1341542597}
+ - {fileID: 236467509}
+ - {fileID: 572909643}
+ - {fileID: 335952724}
+ - {fileID: 400624368}
+ - {fileID: 604588012}
+ - {fileID: 873159018}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!114 &1596309544
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1596309542}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1596309545
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1596309542}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &1596309546
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1596309542}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!1 &1639867753
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1639867755}
+ - component: {fileID: 1639867754}
+ - component: {fileID: 1639867756}
+ m_Layer: 0
+ m_Name: background_image
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!212 &1639867754
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1639867753}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, 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: 0
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 941b1a85b4a964b62b9393bfcbce8e47, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 1, y: 1}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 0
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!4 &1639867755
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1639867753}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 10}
+ m_LocalScale: {x: 0.4, y: 0.8, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1639867756
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1639867753}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 81784de33e4ea4e1bbe453ffdd17e3b4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &1758952914
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1758952915}
+ - component: {fileID: 1758952918}
+ - component: {fileID: 1758952917}
+ - component: {fileID: 1758952916}
+ m_Layer: 5
+ m_Name: contact_us
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1758952915
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1758952914}
+ 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: 661817995}
+ m_Father: {fileID: 1596309543}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -150, y: 400}
+ m_SizeDelta: {x: 400, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1758952916
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1758952914}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1758952917}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1639867756}
+ m_TargetAssemblyTypeName:
+ m_MethodName: ShowConversation
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+--- !u!114 &1758952917
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1758952914}
+ 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.2616782, g: 0.8897059, b: 0.2660094, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1758952918
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1758952914}
+ m_CullTransparentMesh: 0
+--- !u!1 &1790335906
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1790335907}
+ - component: {fileID: 1790335909}
+ - component: {fileID: 1790335908}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1790335907
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1790335906}
+ 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: 572909643}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1790335908
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1790335906}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: show FAQ section
+--- !u!222 &1790335909
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1790335906}
+ m_CullTransparentMesh: 0
diff --git a/Assets/Helpshift/Example/HelpshiftExample.unity.meta b/Assets/Helpshift/Example/HelpshiftExample.unity.meta
new file mode 100644
index 0000000..aafee26
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExample.unity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b0dc9f99bd0944cd39015e6a745f5641
+timeCreated: 1621935744
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/HelpshiftExampleScript.cs b/Assets/Helpshift/Example/HelpshiftExampleScript.cs
new file mode 100644
index 0000000..d06b2f0
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExampleScript.cs
@@ -0,0 +1,186 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System;
+using System.Collections.Generic;
+#if UNITY_IOS || UNITY_ANDROID
+using Helpshift;
+#endif
+
+namespace HelpshiftExample
+{
+ public class HelpshiftExampleScript : MonoBehaviour
+ {
+#if UNITY_IOS || UNITY_ANDROID
+
+ private HelpshiftSdk _helpshiftX;
+
+ void Awake()
+ {
+ _helpshiftX = HelpshiftSdk.GetInstance();
+ string domainName = ".helpshift.com";
+ string platformId;
+#if UNITY_ANDROID
+ platformId = "";
+#elif UNITY_IOS
+ platformId = "";
+#endif
+ _helpshiftX.Install(platformId, domainName, GetInstallConfig());
+ Debug.Log("Unity - Awake called");
+ _helpshiftX.SetHelpshiftEventsListener(new HSEventsListener());
+ }
+
+ public void ShowConversation()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ _helpshiftX.ShowConversation(GetConversationConfig());
+ Debug.Log("Helpshift - ShowConversation called");
+#endif
+ }
+
+ public void ShowFAQs()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ _helpshiftX.ShowFAQs(GetConversationConfig());
+ Debug.Log("Helpshift - ShowFAQs called");
+#endif
+ }
+
+ public void ShowFAQSection()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ GameObject inputFieldGo = GameObject.FindGameObjectWithTag("sectionid");
+ InputField inputFieldCo = inputFieldGo.GetComponent();
+ try
+ {
+ Convert.ToInt16(inputFieldCo.text);
+ _helpshiftX.ShowFAQSection(inputFieldCo.text, GetConversationConfig());
+ Debug.Log("Helpshift - ShowFAQSection called");
+ }
+ catch (FormatException e)
+ {
+ Debug.Log("Input string is not a sequence of digits : " + e);
+ }
+#endif
+ }
+
+ public void ShowSingleFAQ()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ GameObject inputFieldGo = GameObject.FindGameObjectWithTag("faqidd");
+ InputField inputFieldCo = inputFieldGo.GetComponent();
+ try
+ {
+ Convert.ToInt16(inputFieldCo.text);
+ _helpshiftX.ShowSingleFAQ(inputFieldCo.text, GetConversationConfig());
+ Debug.Log("Helpshift - ShowSingleFAQ called");
+ }
+ catch (FormatException e)
+ {
+ Debug.Log("Input string is not a sequence of digits : " + e);
+ }
+#endif
+ }
+
+
+ public void RequestUnreadCount()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ _helpshiftX.RequestUnreadMessageCount(true);
+ Debug.Log("Helpshift - RequestUnreadCount called");
+#endif
+ }
+
+
+ public void Login()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ _helpshiftX.Login(GetUserDetails());
+ Debug.Log("Helpshift - Login called");
+#endif
+
+ }
+
+ public void Logout()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ _helpshiftX.Logout();
+ Debug.Log("Helpshift - Logout called");
+#endif
+ }
+
+ public void CustomizedApi()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ // Call any custom api you want from here.
+ //_helpshiftX.ClearAnonymousUserOnLogin();
+ //_helpshiftX.SetSDKLanguage("Fr");
+ Debug.Log("Helpshift - CustomizedApi called");
+#endif
+ }
+
+ private Dictionary GetUserDetails()
+ {
+ Dictionary userDetails = new Dictionary
+ {
+ { "userId", "" },
+ { "userEmail", "" },
+ { "userName", "" }
+ };
+ // uncomment and pass the valid token here to check the user authentication feature
+ // userDetails.Add("userAuthToken", "");
+ return userDetails;
+ }
+
+ private Dictionary GetConversationConfig()
+ {
+ Dictionary config = new Dictionary
+ {
+ { "tags", new String[] { "foo", "bar" } },
+ { "customIssueFields", GetCifs() }
+ };
+ return config;
+ }
+
+
+ public static Dictionary GetCifs()
+ {
+ Dictionary joiningDate = new Dictionary();
+ joiningDate.Add("type", "dt");
+ joiningDate.Add("value", "1505927361535");
+
+ Dictionary stockLevel = new Dictionary();
+ stockLevel.Add("type", "n");
+ stockLevel.Add("value", "1505");
+
+ Dictionary employeeName = new Dictionary();
+ employeeName.Add("type", "sl");
+ employeeName.Add("value", "Bugs helpshift");
+
+ Dictionary isPro = new Dictionary();
+ isPro.Add("type", "b");
+ isPro.Add("value", "true");
+
+ Dictionary cifDictionary = new Dictionary();
+ cifDictionary.Add("joining_date", joiningDate);
+ cifDictionary.Add("stock_level", stockLevel);
+ cifDictionary.Add("employee_name", employeeName);
+ cifDictionary.Add("is_pro", isPro);
+ return cifDictionary;
+ }
+
+ private Dictionary GetInstallConfig()
+ {
+
+ Dictionary installDictionary = new Dictionary();
+ installDictionary.Add(HelpshiftSdk.ENABLE_LOGGING, true);
+#if UNITY_ANDROID
+ //installDictionary.Add(HelpshiftSdk.NOTIFICATION_SOUND_ID, R.raw.custom_notification);
+ //installDictionary.Add(HelpshiftSdk.NOTIFICATION_ICON, R.drawable.hs__conversation_image);
+ //installDictionary.Add(HelpshiftSdk.NOTIFICATION_CHANNEL_ID, SampleAppConstants.CHANNEL_ID);
+ //installDictionary.Add(HelpshiftSdk.NOTIFICATION_LARGE_ICON, R.drawable.airplane);
+#endif
+ return installDictionary;
+ }
+#endif
+ }
+}
\ No newline at end of file
diff --git a/Assets/Helpshift/Example/HelpshiftExampleScript.cs.meta b/Assets/Helpshift/Example/HelpshiftExampleScript.cs.meta
new file mode 100644
index 0000000..95d17d9
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExampleScript.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8ea6d33e29ffe46b785d61fa2e5fc5d7
+timeCreated: 1621935750
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting b/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting
new file mode 100644
index 0000000..ae75211
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting
@@ -0,0 +1,63 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!850595691 &4890085278179872738
+LightingSettings:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: HelpshiftExampleSettings
+ 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: 0
+ m_BakeBackend: 0
+ m_LightmapMaxSize: 1024
+ m_BakeResolution: 50
+ m_Padding: 2
+ m_TextureCompression: 0
+ m_AO: 1
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAO: 0
+ m_MixedBakeMode: 1
+ m_LightmapsBakeMode: 1
+ m_FilterMode: 1
+ m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_RealtimeResolution: 1
+ 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: 500
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_LightProbeSampleCountMultiplier: 4
+ m_PVRBounces: 2
+ m_PVRMinBounces: 2
+ m_PVREnvironmentMIS: 0
+ m_PVRFilteringMode: 0
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ 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
diff --git a/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting.meta b/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting.meta
new file mode 100644
index 0000000..ce7ac26
--- /dev/null
+++ b/Assets/Helpshift/Example/HelpshiftExampleSettings.lighting.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7d6d5dae01ebcdd4f8afbab575ab0070
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 4890085278179872738
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/Textures.meta b/Assets/Helpshift/Example/Textures.meta
new file mode 100644
index 0000000..9e72755
--- /dev/null
+++ b/Assets/Helpshift/Example/Textures.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 8781a05e8d23c42fd9252c6fb9069a06
+folderAsset: yes
+timeCreated: 1621931314
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Example/Textures/background.png b/Assets/Helpshift/Example/Textures/background.png
new file mode 100644
index 0000000..1f64ba3
Binary files /dev/null and b/Assets/Helpshift/Example/Textures/background.png differ
diff --git a/Assets/Helpshift/Example/Textures/background.png.meta b/Assets/Helpshift/Example/Textures/background.png.meta
new file mode 100644
index 0000000..c7ae7fe
--- /dev/null
+++ b/Assets/Helpshift/Example/Textures/background.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: d3b69cb5e0d714bfe97d5aadab8ac566
+timeCreated: 1621935752
+licenseType: Free
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/NOTICE_IOS.txt b/Assets/Helpshift/NOTICE_IOS.txt
new file mode 100644
index 0000000..1211636
--- /dev/null
+++ b/Assets/Helpshift/NOTICE_IOS.txt
@@ -0,0 +1,51 @@
+
+Reachability:
+Copyright (c) 2011-2013, Tony Million.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+CWStatusBarNotification:
+Copyright (c) 2015 Cezary Wojcik .
+All rights reserved.
+
+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.
\ No newline at end of file
diff --git a/Assets/Helpshift/NOTICE_IOS.txt.meta b/Assets/Helpshift/NOTICE_IOS.txt.meta
new file mode 100644
index 0000000..57dcb74
--- /dev/null
+++ b/Assets/Helpshift/NOTICE_IOS.txt.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4316bfdbbef6a4b2e8b25618c03501f3
+timeCreated: 1621857891
+licenseType: Free
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Plugins.meta b/Assets/Helpshift/Plugins.meta
new file mode 100644
index 0000000..bdacd5d
--- /dev/null
+++ b/Assets/Helpshift/Plugins.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c4d910ea1aa4c4c5bb7a871e74e427a6
+folderAsset: yes
+timeCreated: 1621857880
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Plugins/Android.meta b/Assets/Helpshift/Plugins/Android.meta
new file mode 100644
index 0000000..970a245
--- /dev/null
+++ b/Assets/Helpshift/Plugins/Android.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b444904a8fed1456e9b5cd1d1ee5df49
+folderAsset: yes
+timeCreated: 1621857880
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs b/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs
new file mode 100644
index 0000000..abb6b84
--- /dev/null
+++ b/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs
@@ -0,0 +1,49 @@
+#if UNITY_ANDROID
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using HSMiniJSON;
+
+namespace Helpshift
+{
+ ///
+ /// Internal event listener to delegate the events
+ ///
+ public class HelpshiftAndroidEventsListener : AndroidJavaProxy
+ {
+ private IHelpshiftEventsListener externalHelpshiftEventsListener;
+
+ public HelpshiftAndroidEventsListener(IHelpshiftEventsListener externalEventsListener) :
+ base("com.helpshift.unityproxy.HelpshiftEventDelegate")
+ {
+ this.externalHelpshiftEventsListener = externalEventsListener;
+ }
+
+ void onEventOccurred(string eventName, string eventDataJson)
+ {
+ Dictionary eventData = new Dictionary();
+ if (!String.IsNullOrEmpty(eventDataJson))
+ {
+ eventData = (Dictionary)Json.Deserialize(eventDataJson);
+ }
+ externalHelpshiftEventsListener.HandleHelpshiftEvent(eventName, eventData);
+ }
+
+ void onUserAuthenticationFailure(int reason)
+ {
+ HelpshiftAuthenticationFailureReason reasonValue = HelpshiftAuthenticationFailureReason.UNKNOWN;
+
+ if (reason == 0)
+ {
+ reasonValue = HelpshiftAuthenticationFailureReason.AUTH_TOKEN_NOT_PROVIDED;
+ }
+ else if (reason == 1)
+ {
+ reasonValue = HelpshiftAuthenticationFailureReason.INVALID_AUTH_TOKEN;
+ }
+
+ externalHelpshiftEventsListener.AuthenticationFailedForUser(reasonValue);
+ }
+ }
+}
+#endif
diff --git a/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs.meta b/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs.meta
new file mode 100644
index 0000000..7eca7d9
--- /dev/null
+++ b/Assets/Helpshift/Plugins/Android/HelpshiftAndroidEventsListener.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 05af362ad0e34430a8a654954ef72f8d
+timeCreated: 1621935750
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs b/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs
new file mode 100644
index 0000000..a31e186
--- /dev/null
+++ b/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs
@@ -0,0 +1,133 @@
+/*
+* Copyright 2020, Helpshift, Inc.
+* All rights reserved
+*/
+
+#if UNITY_ANDROID
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using HSMiniJSON;
+
+namespace Helpshift
+{
+ public class HelpshiftXAndroid
+ {
+
+ private AndroidJavaClass jc;
+ private AndroidJavaObject currentActivity, application;
+ private AndroidJavaClass hsUnityApiClass;
+
+ public HelpshiftXAndroid()
+ {
+ this.jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ this.currentActivity = jc.GetStatic("currentActivity");
+ this.application = currentActivity.Call("getApplication");
+ this.hsUnityApiClass = new AndroidJavaClass("com.helpshift.unityproxy.HelpshiftUnityAPI");
+ }
+
+ public void Install(string platformId, string domain, Dictionary configMap)
+ {
+ string jsonSerializedConfig = SerializeMap(configMap);
+ hsUnityApiClass.CallStatic("install", new object[] { this.application, platformId, domain, jsonSerializedConfig });
+
+ HelpshiftInternalLogger.d("Install called : Domain : " + domain + "Platform ID : " + platformId + ", Config : " + jsonSerializedConfig);
+ }
+
+ public void RegisterPushToken(string deviceToken)
+ {
+ HelpshiftInternalLogger.d("Register device token :" + deviceToken);
+ hsUnityApiClass.CallStatic("registerPushToken", new object[] { deviceToken });
+ }
+
+ public void Login(Dictionary userData)
+ {
+
+ if (userData == null)
+ {
+ userData = new Dictionary();
+ }
+ HelpshiftInternalLogger.d("Login called : " + userData.ToString());
+ hsUnityApiClass.CallStatic("login", new object[] { Json.Serialize(userData) });
+ }
+
+ public void ClearAnonymousUserOnLogin()
+ {
+ HelpshiftInternalLogger.d("ClearAnonymouseUserOnLogin api called");
+ hsUnityApiClass.CallStatic("clearAnonymousUserOnLogin");
+ }
+
+ public void Logout()
+ {
+ HelpshiftInternalLogger.d("logout api called");
+ hsUnityApiClass.CallStatic("logout");
+ }
+
+ private string SerializeMap(Dictionary configMap)
+ {
+ if (configMap != null)
+ {
+ return Json.Serialize(configMap);
+ }
+ return "";
+ }
+
+ public void ShowConversation(Dictionary configMap)
+ {
+ string config = SerializeMap(configMap);
+ HelpshiftInternalLogger.d("show conversation api called with config" + config);
+ hsUnityApiClass.CallStatic("showConversationUnity", new object[] { this.currentActivity, config });
+ }
+
+ public void ShowFAQs(Dictionary configMap)
+ {
+ string config = SerializeMap(configMap);
+ HelpshiftInternalLogger.d("show FAQs api called with config" + configMap);
+ hsUnityApiClass.CallStatic("showFAQsUnity", new object[] { this.currentActivity, config });
+ }
+
+ public void ShowSingleFAQ(string faqId, Dictionary configMap)
+ {
+ string config = SerializeMap(configMap);
+ HelpshiftInternalLogger.d("show single FAQ api called with config" + config);
+ hsUnityApiClass.CallStatic("showSingleFAQUnity", new object[] { this.currentActivity, faqId, config });
+ }
+
+ public void ShowFAQSection(string sectionId, Dictionary configMap)
+ {
+ string config = SerializeMap(configMap);
+ HelpshiftInternalLogger.d("show section api called with config" + config);
+ hsUnityApiClass.CallStatic("showFAQSectionUnity", new object[] { this.currentActivity, sectionId, config });
+ }
+
+ public void RequestUnreadMessageCount(Boolean shouldFetchFromServer)
+ {
+ HelpshiftInternalLogger.d("request unread message count api called : shouldFetchFromServer" + shouldFetchFromServer);
+ hsUnityApiClass.CallStatic("requestUnreadMessageCountUnity", new object[] { shouldFetchFromServer });
+ }
+
+ public void HandlePushNotification(Dictionary pushNotificationData)
+ {
+ string pushData = SerializeMap(pushNotificationData);
+ HelpshiftInternalLogger.d("Handle push notification : data :" + pushData);
+ hsUnityApiClass.CallStatic("handlePush", new object[] { pushData });
+ }
+
+
+ public void SetHelpshiftEventsListener(IHelpshiftEventsListener eventsListener)
+ {
+ HelpshiftInternalLogger.d("Event listener is set");
+ HelpshiftAndroidEventsListener internalEventListener = new HelpshiftAndroidEventsListener(eventsListener);
+ hsUnityApiClass.CallStatic("setHelpshiftEventsListener", new object[] { internalEventListener });
+ }
+
+
+ public void SetSDKLanguage(string locale)
+ {
+ HelpshiftInternalLogger.d("setLanguage api called for language " + locale);
+ hsUnityApiClass.CallStatic("setLanguage", new object[] { locale });
+ }
+ }
+
+}
+#endif
diff --git a/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs.meta b/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs.meta
new file mode 100644
index 0000000..180e54d
--- /dev/null
+++ b/Assets/Helpshift/Plugins/Android/Helpshiftandroid.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 14a9cca4be81948ad8f1fe413aaf3554
+timeCreated: 1621935750
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Helpshift/Plugins/HSMiniJSON.cs b/Assets/Helpshift/Plugins/HSMiniJSON.cs
new file mode 100644
index 0000000..a4ff3da
--- /dev/null
+++ b/Assets/Helpshift/Plugins/HSMiniJSON.cs
@@ -0,0 +1,633 @@
+/*
+ * Copyright (c) 2013 Calvin Rien
+ *
+ * Based on the JSON parser by Patrick van Bergen
+ * http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
+ *
+ * Simplified it so that it doesn't throw exceptions
+ * and can be used in Unity iPhone with maximum code stripping.
+ *
+ * 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.
+ */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace HSMiniJSON
+{
+ // Example usage:
+ //
+ // using UnityEngine;
+ // using System.Collections;
+ // using System.Collections.Generic;
+ // using MiniJSON;
+ //
+ // public class MiniJSONTest : MonoBehaviour {
+ // void Start () {
+ // var jsonString = "{ \"array\": [1.44,2,3], " +
+ // "\"object\": {\"key1\":\"value1\", \"key2\":256}, " +
+ // "\"string\": \"The quick brown fox \\\"jumps\\\" over the lazy dog \", " +
+ // "\"unicode\": \"\\u3041 Men\u00fa sesi\u00f3n\", " +
+ // "\"int\": 65536, " +
+ // "\"float\": 3.1415926, " +
+ // "\"bool\": true, " +
+ // "\"null\": null }";
+ //
+ // var dict = Json.Deserialize(jsonString) as Dictionary;
+ //
+ // Debug.Log("deserialized: " + dict.GetType());
+ // Debug.Log("dict['array'][0]: " + ((List