├── com.google.play.review ├── Editor.meta ├── Editor │ ├── Dependencies.xml.meta │ └── Dependencies.xml ├── Runtime │ ├── Scripts │ │ ├── Internal.meta │ │ ├── PlayReviewInfo.cs.meta │ │ ├── ReviewErrorCode.cs.meta │ │ ├── ReviewManager.cs.meta │ │ ├── Internal │ │ │ ├── ReviewAsyncOperation.cs.meta │ │ │ ├── ReviewPlayServiceTaskManager.cs.meta │ │ │ ├── ReviewAsyncOperation.cs │ │ │ └── ReviewPlayServiceTaskManager.cs │ │ ├── PlayReviewInfo.cs │ │ ├── ReviewErrorCode.cs │ │ └── ReviewManager.cs │ ├── Plugins │ │ ├── com.google.play.review.metadata.jar │ │ └── com.google.play.review.metadata.jar.meta │ ├── Plugins.meta │ ├── Google.Play.Review.asmdef.meta │ ├── Scripts.meta │ └── Google.Play.Review.asmdef ├── README.md.meta ├── CHANGELOG.md.meta ├── LICENSE.md.meta ├── Proguard │ ├── review.txt.meta │ └── review.txt ├── Proguard.meta ├── package.json.meta ├── Runtime.meta ├── package.json └── CHANGELOG.md ├── Samples ├── ReviewDemo │ ├── Scenes │ │ ├── ReviewDemo.unity.meta │ │ └── ReviewDemo.unity │ ├── Scenes.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── ReviewDemo.cs.meta │ │ └── ReviewDemo.cs └── ReviewDemo.meta ├── CONTRIBUTING.md ├── README.md └── LICENSE.md /com.google.play.review/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5770e333455d4f73a76451eb5ee2d2d8 3 | timeCreated: 1652822811 -------------------------------------------------------------------------------- /com.google.play.review/Editor/Dependencies.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7f494f7a7e44b148f2bb77cb1d03644 3 | timeCreated: 1652822811 -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/Internal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3f59f9b904c45cfb8768cb3b650731a 3 | timeCreated: 1572618155 -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/PlayReviewInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 232034196a65477b95767555ac5dd868 3 | timeCreated: 1572628333 -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/ReviewErrorCode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4833bd36ea8437fa71bcc9432e429c7 3 | timeCreated: 1572619911 -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/ReviewManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3cbddf63f14498585150b20288f05c5 3 | timeCreated: 1572620482 -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/Internal/ReviewAsyncOperation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 712102038e5b4421a04765467c4ef720 3 | timeCreated: 1572619751 -------------------------------------------------------------------------------- /com.google.play.review/Editor/Dependencies.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Plugins/com.google.play.review.metadata.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google/play-in-app-reviews-unity/HEAD/com.google.play.review/Runtime/Plugins/com.google.play.review.metadata.jar -------------------------------------------------------------------------------- /com.google.play.review/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b906ace36b36540da9120de67c820967 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /com.google.play.review/CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f95fff94975a749f7bef28d93327588e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /com.google.play.review/LICENSE.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 786780f9d79a44ee4854a7fba57775c2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /com.google.play.review/Proguard/review.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b73574917d64429cb6723f1205fad60 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /com.google.play.review/Proguard.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da1cefb4c2643469286d533c9d5cd27b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab509ede17a84484cb25a23a8574875b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scenes/ReviewDemo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2cb30b3c04e2407d802a430fd3de1d5 3 | timeCreated: 1573777066 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /com.google.play.review/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f42d35432f9d47beab1f7343808b294 3 | timeCreated: 1576696792 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Google.Play.Review.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4139e191aa32f459e9eb2e331225ad7e 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples/ReviewDemo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f017d611dffe4f7a8ece3c0ba4e96d2 3 | folderAsset: yes 4 | timeCreated: 1572224679 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d69f8b1b285f0450e942600404ad7c1b 3 | folderAsset: yes 4 | timeCreated: 1572224718 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11f3ed464338e44fc8ddf3a5608acf06 3 | folderAsset: yes 4 | timeCreated: 1572224706 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 093ba2959faf04c3d80a9db75ef2e77f 3 | folderAsset: yes 4 | timeCreated: 1576618908 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6db3ce4a93bc64e22a8a293d5641fff3 3 | folderAsset: yes 4 | timeCreated: 1580756426 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Google.Play.Review.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Google.Play.Review", 3 | "references": [ 4 | "Google.Play.Common", 5 | "Google.Play.Core" 6 | ], 7 | "includePlatforms": [ 8 | "Android", 9 | "Editor" 10 | ] 11 | } -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scripts/ReviewDemo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9675b28c5a72144148a7c86cdd40cba0 3 | timeCreated: 1573777559 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/Internal/ReviewPlayServiceTaskManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fb3a11b55c864d88a7cd5c388adc025 3 | timeCreated: 1572224730 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /com.google.play.review/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.google.play.review", 3 | "displayName": "Google Play In-app Review", 4 | "description": "The Google Play In-App Review package lets you prompt users to submit Play Store ratings and reviews without the inconvenience of leaving your game.", 5 | "version": "1.8.4", 6 | "unity": "2018.4", 7 | "author": { 8 | "name": "Google LLC" 9 | }, 10 | "dependencies": { 11 | "com.google.play.common": "1.9.2", 12 | "com.google.play.core": "1.8.6" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Plugins/com.google.play.review.metadata.jar.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0874a819d0c54456eac65d83c88336c2 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Android: Android 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Any: 18 | second: 19 | enabled: 0 20 | settings: {} 21 | - first: 22 | Editor: Editor 23 | second: 24 | enabled: 0 25 | settings: 26 | DefaultValueInitialized: true 27 | userData: 28 | assetBundleName: 29 | assetBundleVariant: 30 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution; 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows 28 | [Google's Open Source Community Guidelines](https://opensource.google/conduct/). 29 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/Internal/ReviewAsyncOperation.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | using Google.Play.Common.Internal; 16 | 17 | namespace Google.Play.Review.Internal 18 | { 19 | /// 20 | /// Represents an asynchronous operation that produces a result upon completion. 21 | /// 22 | /// The type of the result of the operation. 23 | internal class ReviewAsyncOperation : PlayAsyncOperationImpl 24 | { 25 | public override bool IsSuccessful 26 | { 27 | get { return IsDone && Error == ReviewErrorCode.NoError; } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/PlayReviewInfo.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | using UnityEngine; 16 | 17 | namespace Google.Play.Review 18 | { 19 | /// 20 | /// A wrapper around the Java ReviewInfo class. This class contains internal state needed to 21 | /// launch a review flow, but has no publicly visible information. 22 | /// 23 | public class PlayReviewInfo 24 | { 25 | private readonly AndroidJavaObject _reviewInfo; 26 | 27 | /// 28 | /// Contains the ReviewInfo required for requesting the in-app review dialog. 29 | /// 30 | internal PlayReviewInfo(AndroidJavaObject reviewInfo) 31 | { 32 | _reviewInfo = reviewInfo; 33 | } 34 | 35 | internal AndroidJavaObject GetReviewInfo() 36 | { 37 | return _reviewInfo; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/ReviewErrorCode.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | namespace Google.Play.Review 16 | { 17 | /// 18 | /// Errors that can be encountered while requesting the in-app review dialog. 19 | /// 20 | public enum ReviewErrorCode 21 | { 22 | /// 23 | /// No error has occurred. 24 | /// 25 | NoError = 0, 26 | 27 | /// 28 | /// Error indicating that an unknown error occurred while requesting in-app review flow. 29 | /// 30 | ErrorRequestingFlow = 1, 31 | 32 | /// 33 | /// Error indicating that an unknown error occurred while launching in-app review flow. 34 | /// 35 | ErrorLaunchingFlow = 2, 36 | 37 | /// 38 | /// Error indicating that the Play Store app is either not installed or not the official 39 | /// version. 40 | /// 41 | PlayStoreNotFound = 3, 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /com.google.play.review/Proguard/review.txt: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # The Google Play Core Library is licensed to you under the Play Core Software 4 | # Development Kit Terms of Service 5 | # (https://developer.android.com/guide/playcore/license.html). 6 | # By using the Google Play Core Library, you agree to the Play Core Software 7 | # Development Kit Terms of Service. 8 | 9 | # Play Core Proguard Rules: Play In-app Review 10 | 11 | -keep class com.google.android.play.core.review.ReviewManager { 12 | public com.google.android.gms.tasks.Task requestReviewFlow(); 13 | public com.google.android.gms.tasks.Task launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo); 14 | } 15 | 16 | -keepnames class com.google.android.play.core.review.ReviewInfo 17 | 18 | -keep class com.google.android.play.core.review.ReviewManagerFactory { 19 | (); 20 | 21 | public static com.google.android.play.core.review.ReviewManager create(android.content.Context); 22 | } 23 | 24 | -keep class com.google.android.play.core.review.testing.FakeReviewManager { 25 | public (android.content.Context); 26 | public com.google.android.gms.tasks.Task requestReviewFlow(); 27 | public com.google.android.gms.tasks.Task launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo); 28 | } 29 | 30 | -keep class com.google.android.play.core.review.model.ReviewErrorCode { 31 | public static int NO_ERROR; 32 | public static int PLAY_STORE_NOT_FOUND; 33 | public static int INVALID_REQUEST; 34 | public static int INTERNAL_ERROR; 35 | } 36 | 37 | -keep class com.google.android.play.core.review.ReviewException { 38 | public int getErrorCode(); 39 | } 40 | -------------------------------------------------------------------------------- /com.google.play.review/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog for com.google.play.review 2 | 3 | ## [1.8.4] - 2025-02-05 4 | - Updated Play Core dependency to 1.8.6. 5 | 6 | ## [1.8.3] - 2024-09-18 7 | - Updated Play Common dependency to 1.9.2. 8 | - Updated Play Core dependency to 1.8.5. 9 | 10 | ## [1.8.2] - 2024-07-05 11 | - Added new versioning metadata. 12 | - Updated Play Common dependency to 1.9.1. 13 | - Updated Play Core dependency to 1.8.4. 14 | - Bumped minimum supported Unity version to 2018.4 15 | 16 | ## [1.8.1] - 2022-09-08 17 | - Updated plugin's data collection procedure. For more information and the opt-out 18 | process, please refer to the [data collection](https://github.com/google/play-unity-plugins#data-collection) 19 | section in README. 20 | 21 | ## [1.8.0] - 2022-07-06 22 | ### New Features 23 | - Migrated to [Play In-App Reviews 2.0.0](https://developer.android.com/reference/com/google/android/play/core/release-notes-in_app_reviews#2-0-0). 24 | 25 | ## [1.7.0] - 2022-02-15 26 | ### New Features 27 | - Incremented version number to match other packages 28 | 29 | ## [1.6.1] - 2022-01-24 30 | ### New Features 31 | - Incremented version number to match other packages 32 | 33 | ## [1.6.0] - 2021-11-15 34 | ### New Features 35 | - Incremented version number to match other packages 36 | 37 | ## [1.5.0] - 2021-06-14 38 | ### Other 39 | - Removed ability to compile plugin with Unity 5.6, 2017.1, 2017.2, 2017.3, 2018.1, and 2018.2 40 | 41 | ## [1.4.0] - 2021-03-08 42 | ### New Features 43 | - Added an error code to indicate that the Play Store app is either not installed or not the official version 44 | 45 | ## [1.3.0] - 2020-09-30 46 | ### New Features 47 | - Updated Play Core library license to https://developer.android.com/guide/playcore/license 48 | 49 | ## [1.2.0] - 2020-07-27 50 | ### New Features 51 | - Initial release 52 | 53 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/Internal/ReviewPlayServiceTaskManager.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | using System; 16 | using Google.Play.Common; 17 | using Google.Play.Core.Internal; 18 | using UnityEngine; 19 | 20 | namespace Google.Play.Review.Internal 21 | { 22 | /// 23 | /// Provides two methods in order to request the launch of 24 | /// the in-app review dialog. 25 | /// 26 | internal class ReviewPlayServicesTaskManager : IDisposable 27 | { 28 | private readonly AndroidJavaObject _javaReviewManager; 29 | 30 | internal ReviewPlayServicesTaskManager() 31 | { 32 | const string factoryClassName = 33 | PlayCoreConstants.PlayCorePackagePrefix + "review.ReviewManagerFactory"; 34 | 35 | using (var activity = UnityPlayerHelper.GetCurrentActivity()) 36 | using (var managerFactory = new AndroidJavaClass(factoryClassName)) 37 | { 38 | _javaReviewManager = managerFactory.CallStatic("create", activity); 39 | } 40 | 41 | PlayCoreEventHandler.CreateInScene(); 42 | } 43 | 44 | /// 45 | /// Returns a which returns a ReviewInfo 46 | /// AndroidJavaObject on the registered on success callback. 47 | /// 48 | public PlayServicesTask RequestReviewFlow() 49 | { 50 | var javaTask = _javaReviewManager.Call("requestReviewFlow"); 51 | return new PlayServicesTask(javaTask); 52 | } 53 | 54 | /// 55 | /// Returns a when the user completes the review or 56 | /// the dialog is dismissed. 57 | /// 58 | /// The on success result of . 59 | public PlayServicesTask LaunchReviewFlow(AndroidJavaObject reviewInfo) 60 | { 61 | var javaTask = 62 | _javaReviewManager.Call("launchReviewFlow", 63 | UnityPlayerHelper.GetCurrentActivity(), reviewInfo); 64 | return new PlayServicesTask(javaTask); 65 | } 66 | 67 | public void Dispose() 68 | { 69 | _javaReviewManager.Dispose(); 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google Play In-App Reviews Plugin for Unity 2 | 3 | ## Overview 4 | 5 | Google Play Plugins for Unity provide C# APIs for accessing Play in-game features from within the Unity Engine. These plugins also provide Unity Editor features for building a game before publishing it on Google Play. 6 | 7 | Play In-App Reviews lets you prompt users to submit Play Store ratings and reviews without leaving your game. 8 | 9 | Refer to the [documentation](https://developer.android.com/guide/playcore/in-app-review/unity) and [Runtime API reference](https://developer.android.com/reference/unity/namespace/Google/Play/Review) for more information. 10 | 11 | ## Pre-requisites 12 | 13 | ### Required Unity Version 14 | 15 | To use the Google Play In-App Reviews plugin, you must use a supported Unity version: 16 | 17 | - All versions of Unity 2019.x, 2020.x, and newer are supported. 18 | - If you use Unity 2018.x, version 2018.4 or newer are supported. 19 | - If you use Unity 2017.x, only Unity 2017.4.40 is supported. All other versions aren't supported. 20 | 21 | ### Required Android Version 22 | To use Google Play In-App Reviews plugin, you must target a minimum Android SDK version of: 23 | 24 | - Android Lollipop (API level 21) 25 | 26 | ### Required Play Plugins 27 | 28 | The following Google Play plugins will be installed automatically when you install the Google Play In-App Reviews plugin using OpenUPM or when importing the package from GitHub: 29 | 30 | - [External Dependency Manager plugin for Unity (EDM4U)](https://github.com/googlesamples/unity-jar-resolver). This plugin resolves AAR dependencies such as the Play Core library. 31 | - [Play Core plugin for Unity](https://github.com/google/play-core-unity). The Play Core plugin provides the Play Core Library required by some other Play plugins, such as Play Asset Delivery, Play Integrity, Play In-app Reviews, and Play In-app Updates. 32 | - [Play Common plugin for Unity](https://github.com/google/play-common-unity). The Play Common plugin provides common files required by some other Play plugins, such as Play Asset Delivery, Play Integrity, Play In-app Reviews, and Play In-app Updates. 33 | 34 | ## Install the Plugin 35 | 36 | To install the Google Play In-App Reviews plugin using Open UPM, follow the instructions to [install via package manager](https://openupm.com/packages/com.google.play.review/#modal-manualinstallation) or [install via command-line](https://openupm.com/packages/com.google.play.review/#modal-commandlinetool). 37 | 38 | Alternatively, you can download the latest `.unitypackage` from the Google Play In-App Reviews plugin [GitHub releases page](https://github.com/google/play-in-app-reviews-unity/releases) and import it [using these instructions](https://developers.google.com/unity/instructions#install-unitypackage) on the Google APIs for Unity site. 39 | 40 | ## Sample app 41 | You can find a sample app for Google Play In-App Reviews plugin in the [Samples folder](https://github.com/google/play-in-app-reviews-unity/tree/main/Samples) on Github. This sample app shows you a working example of the feature in a Unity game. 42 | 43 | ## Support 44 | 45 | To request features or report issues with the plugin, please use the [GitHub issue tracker](https://github.com/google/play-in-app-reviews-unity/issues). 46 | 47 | You can find more resources and support options in the official documentation for [Google Play In-App Reviews](https://developer.android.com/guide/playcore/in-app-review). 48 | 49 | ## Data Collection 50 | 51 | When you upload a game using this plugin to Google Play, Google collects the following data to help improve our products and services: 52 | 53 | - Package name 54 | - Version number 55 | - Google Play Plugin version number 56 | 57 | To opt-out of this data collection, remove the `packagename.metadata.jar` file found under each plugin's `Runtime/Plugins` folder. 58 | 59 | **Note:** This data collection is independent of Google’s collection of library dependencies declared in Gradle when you upload your game to Google Play. 60 | 61 | ## Related Plugins 62 | 63 | Browse other [Google Play plugins for Unity](https://developers.google.com/unity/packages#google_play). 64 | -------------------------------------------------------------------------------- /com.google.play.review/Runtime/Scripts/ReviewManager.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | using Google.Play.Common; 16 | using Google.Play.Review.Internal; 17 | 18 | namespace Google.Play.Review 19 | { 20 | /// 21 | /// Manages operations for requesting and launching the In-App Review flow. 22 | /// 23 | public class ReviewManager 24 | { 25 | /// 26 | /// Translation of Java ReviewErrorCode from: 27 | /// 29 | /// 30 | private const int JavaReviewErrorCodePlayNotFound = -1; 31 | 32 | #if !UNITY_EDITOR 33 | private readonly ReviewPlayServicesTaskManager _reviewPlayServicesTaskManager; 34 | #endif 35 | 36 | public ReviewManager() 37 | { 38 | #if !UNITY_EDITOR 39 | _reviewPlayServicesTaskManager = new ReviewPlayServicesTaskManager(); 40 | #endif 41 | } 42 | 43 | /// 44 | /// Retrieves all the needed information to launch the in-app review flow. 45 | /// Needs to be called before to obtain 46 | /// a which is required to launch the 47 | /// in-app review flow. 48 | /// 49 | public PlayAsyncOperation RequestReviewFlow() 50 | { 51 | #if UNITY_EDITOR 52 | var operation = new ReviewAsyncOperation(); 53 | operation.SetResult(new PlayReviewInfo(null)); 54 | return operation; 55 | #else 56 | return RequestReviewFlowInternal(); 57 | #endif 58 | } 59 | 60 | /// 61 | /// Launches and displays the in-app review flow to the user. 62 | /// Returns a that will be marked IsDone when 63 | /// the in-app review dialog is closed. 64 | /// 65 | public PlayAsyncOperation LaunchReviewFlow( 66 | PlayReviewInfo reviewInfo) 67 | { 68 | #if UNITY_EDITOR 69 | var operation = new ReviewAsyncOperation(); 70 | operation.SetResult(new VoidResult()); 71 | return operation; 72 | #else 73 | return LaunchReviewFlowInternal(reviewInfo); 74 | #endif 75 | } 76 | 77 | #if !UNITY_EDITOR 78 | private PlayAsyncOperation RequestReviewFlowInternal() 79 | { 80 | var operation = new ReviewAsyncOperation(); 81 | var requestFlowTask = _reviewPlayServicesTaskManager.RequestReviewFlow(); 82 | requestFlowTask.RegisterOnSuccessCallback(reviewInfo => 83 | { 84 | operation.SetResult(new PlayReviewInfo(reviewInfo)); 85 | requestFlowTask.Dispose(); 86 | }); 87 | requestFlowTask.RegisterOnFailureCallback((reason, errorCode) => 88 | { 89 | if (errorCode == JavaReviewErrorCodePlayNotFound) { 90 | operation.SetError(ReviewErrorCode.PlayStoreNotFound); 91 | } else { 92 | operation.SetError(ReviewErrorCode.ErrorRequestingFlow); 93 | } 94 | requestFlowTask.Dispose(); 95 | }); 96 | return operation; 97 | } 98 | 99 | private PlayAsyncOperation LaunchReviewFlowInternal(PlayReviewInfo reviewInfo) 100 | { 101 | var operation = new ReviewAsyncOperation(); 102 | var requestFlowTask = 103 | _reviewPlayServicesTaskManager.LaunchReviewFlow(reviewInfo.GetReviewInfo()); 104 | requestFlowTask.RegisterOnSuccessCallback(result => 105 | { 106 | operation.SetResult(new VoidResult()); 107 | requestFlowTask.Dispose(); 108 | }); 109 | requestFlowTask.RegisterOnFailureCallback((reason, errorCode) => 110 | { 111 | operation.SetError(ReviewErrorCode.ErrorLaunchingFlow); 112 | requestFlowTask.Dispose(); 113 | }); 114 | return operation; 115 | } 116 | #endif 117 | } 118 | } -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scripts/ReviewDemo.cs: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | using System; 16 | using System.Collections; 17 | using System.Collections.Generic; 18 | using System.Diagnostics; 19 | using UnityEngine; 20 | using UnityEngine.UI; 21 | using Debug = UnityEngine.Debug; 22 | 23 | namespace Google.Play.Review.Samples.ReviewDemo 24 | { 25 | public class ReviewDemo : MonoBehaviour 26 | { 27 | private static PlayReviewInfo _playReviewInfo; 28 | private ReviewManager _reviewManager; 29 | private Dictionary _keyMappings; 30 | public Text statusText; 31 | public Button requestFlowButton; 32 | public Button launchFlowButton; 33 | public Button allInOneButton; 34 | 35 | private void Start() 36 | { 37 | _reviewManager = new ReviewManager(); 38 | requestFlowButton.onClick.AddListener(RequestFlowClick); 39 | launchFlowButton.onClick.AddListener(LaunchFlowClick); 40 | allInOneButton.onClick.AddListener(AllInOneFlowClick); 41 | requestFlowButton.interactable = true; 42 | launchFlowButton.interactable = false; 43 | allInOneButton.interactable = true; 44 | 45 | // Provides an interface to test via key press. 46 | _keyMappings = new Dictionary() 47 | { 48 | {KeyCode.A, AllInOneFlowClick} 49 | }; 50 | Debug.Log("Initialized key mapping"); 51 | } 52 | 53 | private void Update() 54 | { 55 | if (!Input.anyKeyDown) 56 | { 57 | return; 58 | } 59 | 60 | foreach (var keyMapping in _keyMappings) 61 | { 62 | if (Input.GetKeyDown(keyMapping.Key)) 63 | { 64 | keyMapping.Value.Invoke(); 65 | } 66 | } 67 | } 68 | 69 | private void RequestFlowClick() 70 | { 71 | StartCoroutine(RequestFlowCoroutine(true)); 72 | } 73 | 74 | private void LaunchFlowClick() 75 | { 76 | StartCoroutine(LaunchFlowCoroutine()); 77 | } 78 | 79 | private void AllInOneFlowClick() 80 | { 81 | StartCoroutine(AllInOneFlowCoroutine()); 82 | } 83 | 84 | private IEnumerator RequestFlowCoroutine(bool isStepRequest) 85 | { 86 | Debug.Log("Initializing in-app review request flow"); 87 | allInOneButton.interactable = false; 88 | requestFlowButton.interactable = false; 89 | statusText.text = "Requesting info..."; 90 | var stopWatch = new Stopwatch(); 91 | stopWatch.Start(); 92 | var requestFlowOperation = _reviewManager.RequestReviewFlow(); 93 | yield return requestFlowOperation; 94 | stopWatch.Stop(); 95 | if (requestFlowOperation.Error != ReviewErrorCode.NoError) 96 | { 97 | ResetDisplay(requestFlowOperation.Error.ToString()); 98 | yield break; 99 | } 100 | 101 | _playReviewInfo = requestFlowOperation.GetResult(); 102 | statusText.text += "\nObtained info! (" + stopWatch.ElapsedMilliseconds + "ms)"; 103 | if (isStepRequest) 104 | { 105 | launchFlowButton.interactable = true; 106 | } 107 | } 108 | 109 | private IEnumerator LaunchFlowCoroutine() 110 | { 111 | launchFlowButton.interactable = false; 112 | // Gives enough time to the UI to progress to full dimmed (not interactable) LaunchFlowButton 113 | // before the in-app review dialog is shown. 114 | yield return new WaitForSeconds(.1f); 115 | if (_playReviewInfo == null) 116 | { 117 | ResetDisplay("PlayReviewInfo is null."); 118 | yield break; 119 | } 120 | 121 | yield return statusText.text += "\nLaunching..."; 122 | var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo); 123 | yield return launchFlowOperation; 124 | _playReviewInfo = null; 125 | if (launchFlowOperation.Error != ReviewErrorCode.NoError) 126 | { 127 | ResetDisplay(launchFlowOperation.Error.ToString()); 128 | yield break; 129 | } 130 | 131 | Debug.Log("In-app review launch is done!"); 132 | statusText.text += "\nDone!"; 133 | ResetDisplay(string.Empty); 134 | } 135 | 136 | private IEnumerator AllInOneFlowCoroutine() 137 | { 138 | yield return StartCoroutine(RequestFlowCoroutine(false)); 139 | yield return StartCoroutine(LaunchFlowCoroutine()); 140 | } 141 | 142 | private void ResetDisplay(string errorText) 143 | { 144 | if (!string.IsNullOrEmpty(errorText)) 145 | { 146 | Debug.LogError(errorText); 147 | statusText.text += "\nError: " + errorText; 148 | } 149 | 150 | requestFlowButton.interactable = true; 151 | allInOneButton.interactable = true; 152 | } 153 | } 154 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | =============================================================================== 2 | 3 | The following file: 4 | 5 | - Proguard/review.txt 6 | 7 | is licensed under the 8 | [Play Core Software Development Kit Terms of Service](https://developer.android.com/guide/playcore/license). 9 | By using this file, you agree to the Play Core Software Development Kit Terms of 10 | Service. 11 | 12 | =============================================================================== 13 | 14 | Except as indicated previously in this LICENSE file, files in this package are 15 | licensed as follows: 16 | 17 | Apache License 18 | Version 2.0, January 2004 19 | https://www.apache.org/licenses/ 20 | 21 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 22 | 23 | 1. Definitions. 24 | 25 | "License" shall mean the terms and conditions for use, reproduction, 26 | and distribution as defined by Sections 1 through 9 of this document. 27 | 28 | "Licensor" shall mean the copyright owner or entity authorized by 29 | the copyright owner that is granting the License. 30 | 31 | "Legal Entity" shall mean the union of the acting entity and all 32 | other entities that control, are controlled by, or are under common 33 | control with that entity. For the purposes of this definition, 34 | "control" means (i) the power, direct or indirect, to cause the 35 | direction or management of such entity, whether by contract or 36 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 37 | outstanding shares, or (iii) beneficial ownership of such entity. 38 | 39 | "You" (or "Your") shall mean an individual or Legal Entity 40 | exercising permissions granted by this License. 41 | 42 | "Source" form shall mean the preferred form for making modifications, 43 | including but not limited to software source code, documentation 44 | source, and configuration files. 45 | 46 | "Object" form shall mean any form resulting from mechanical 47 | transformation or translation of a Source form, including but 48 | not limited to compiled object code, generated documentation, 49 | and conversions to other media types. 50 | 51 | "Work" shall mean the work of authorship, whether in Source or 52 | Object form, made available under the License, as indicated by a 53 | copyright notice that is included in or attached to the work 54 | (an example is provided in the Appendix below). 55 | 56 | "Derivative Works" shall mean any work, whether in Source or Object 57 | form, that is based on (or derived from) the Work and for which the 58 | editorial revisions, annotations, elaborations, or other modifications 59 | represent, as a whole, an original work of authorship. For the purposes 60 | of this License, Derivative Works shall not include works that remain 61 | separable from, or merely link (or bind by name) to the interfaces of, 62 | the Work and Derivative Works thereof. 63 | 64 | "Contribution" shall mean any work of authorship, including 65 | the original version of the Work and any modifications or additions 66 | to that Work or Derivative Works thereof, that is intentionally 67 | submitted to Licensor for inclusion in the Work by the copyright owner 68 | or by an individual or Legal Entity authorized to submit on behalf of 69 | the copyright owner. For the purposes of this definition, "submitted" 70 | means any form of electronic, verbal, or written communication sent 71 | to the Licensor or its representatives, including but not limited to 72 | communication on electronic mailing lists, source code control systems, 73 | and issue tracking systems that are managed by, or on behalf of, the 74 | Licensor for the purpose of discussing and improving the Work, but 75 | excluding communication that is conspicuously marked or otherwise 76 | designated in writing by the copyright owner as "Not a Contribution." 77 | 78 | "Contributor" shall mean Licensor and any individual or Legal Entity 79 | on behalf of whom a Contribution has been received by Licensor and 80 | subsequently incorporated within the Work. 81 | 82 | 2. Grant of Copyright License. Subject to the terms and conditions of 83 | this License, each Contributor hereby grants to You a perpetual, 84 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 85 | copyright license to reproduce, prepare Derivative Works of, 86 | publicly display, publicly perform, sublicense, and distribute the 87 | Work and such Derivative Works in Source or Object form. 88 | 89 | 3. Grant of Patent License. Subject to the terms and conditions of 90 | this License, each Contributor hereby grants to You a perpetual, 91 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 92 | (except as stated in this section) patent license to make, have made, 93 | use, offer to sell, sell, import, and otherwise transfer the Work, 94 | where such license applies only to those patent claims licensable 95 | by such Contributor that are necessarily infringed by their 96 | Contribution(s) alone or by combination of their Contribution(s) 97 | with the Work to which such Contribution(s) was submitted. If You 98 | institute patent litigation against any entity (including a 99 | cross-claim or counterclaim in a lawsuit) alleging that the Work 100 | or a Contribution incorporated within the Work constitutes direct 101 | or contributory patent infringement, then any patent licenses 102 | granted to You under this License for that Work shall terminate 103 | as of the date such litigation is filed. 104 | 105 | 4. Redistribution. You may reproduce and distribute copies of the 106 | Work or Derivative Works thereof in any medium, with or without 107 | modifications, and in Source or Object form, provided that You 108 | meet the following conditions: 109 | 110 | (a) You must give any other recipients of the Work or 111 | Derivative Works a copy of this License; and 112 | 113 | (b) You must cause any modified files to carry prominent notices 114 | stating that You changed the files; and 115 | 116 | (c) You must retain, in the Source form of any Derivative Works 117 | that You distribute, all copyright, patent, trademark, and 118 | attribution notices from the Source form of the Work, 119 | excluding those notices that do not pertain to any part of 120 | the Derivative Works; and 121 | 122 | (d) If the Work includes a "NOTICE" text file as part of its 123 | distribution, then any Derivative Works that You distribute must 124 | include a readable copy of the attribution notices contained 125 | within such NOTICE file, excluding those notices that do not 126 | pertain to any part of the Derivative Works, in at least one 127 | of the following places: within a NOTICE text file distributed 128 | as part of the Derivative Works; within the Source form or 129 | documentation, if provided along with the Derivative Works; or, 130 | within a display generated by the Derivative Works, if and 131 | wherever such third-party notices normally appear. The contents 132 | of the NOTICE file are for informational purposes only and 133 | do not modify the License. You may add Your own attribution 134 | notices within Derivative Works that You distribute, alongside 135 | or as an addendum to the NOTICE text from the Work, provided 136 | that such additional attribution notices cannot be construed 137 | as modifying the License. 138 | 139 | You may add Your own copyright statement to Your modifications and 140 | may provide additional or different license terms and conditions 141 | for use, reproduction, or distribution of Your modifications, or 142 | for any such Derivative Works as a whole, provided Your use, 143 | reproduction, and distribution of the Work otherwise complies with 144 | the conditions stated in this License. 145 | 146 | 5. Submission of Contributions. Unless You explicitly state otherwise, 147 | any Contribution intentionally submitted for inclusion in the Work 148 | by You to the Licensor shall be under the terms and conditions of 149 | this License, without any additional terms or conditions. 150 | Notwithstanding the above, nothing herein shall supersede or modify 151 | the terms of any separate license agreement you may have executed 152 | with Licensor regarding such Contributions. 153 | 154 | 6. Trademarks. This License does not grant permission to use the trade 155 | names, trademarks, service marks, or product names of the Licensor, 156 | except as required for reasonable and customary use in describing the 157 | origin of the Work and reproducing the content of the NOTICE file. 158 | 159 | 7. Disclaimer of Warranty. Unless required by applicable law or 160 | agreed to in writing, Licensor provides the Work (and each 161 | Contributor provides its Contributions) on an "AS IS" BASIS, 162 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 163 | implied, including, without limitation, any warranties or conditions 164 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 165 | PARTICULAR PURPOSE. You are solely responsible for determining the 166 | appropriateness of using or redistributing the Work and assume any 167 | risks associated with Your exercise of permissions under this License. 168 | 169 | 8. Limitation of Liability. In no event and under no legal theory, 170 | whether in tort (including negligence), contract, or otherwise, 171 | unless required by applicable law (such as deliberate and grossly 172 | negligent acts) or agreed to in writing, shall any Contributor be 173 | liable to You for damages, including any direct, indirect, special, 174 | incidental, or consequential damages of any character arising as a 175 | result of this License or out of the use or inability to use the 176 | Work (including but not limited to damages for loss of goodwill, 177 | work stoppage, computer failure or malfunction, or any and all 178 | other commercial damages or losses), even if such Contributor 179 | has been advised of the possibility of such damages. 180 | 181 | 9. Accepting Warranty or Additional Liability. While redistributing 182 | the Work or Derivative Works thereof, You may choose to offer, 183 | and charge a fee for, acceptance of support, warranty, indemnity, 184 | or other liability obligations and/or rights consistent with this 185 | License. However, in accepting such obligations, You may act only 186 | on Your own behalf and on Your sole responsibility, not on behalf 187 | of any other Contributor, and only if You agree to indemnify, 188 | defend, and hold each Contributor harmless for any liability 189 | incurred by, or claims asserted against, such Contributor by reason 190 | of your accepting any such warranty or additional liability. 191 | 192 | END OF TERMS AND CONDITIONS 193 | 194 | APPENDIX: How to apply the Apache License to your work. 195 | 196 | To apply the Apache License to your work, attach the following 197 | boilerplate notice, with the fields enclosed by brackets "[]" 198 | replaced with your own identifying information. (Don't include 199 | the brackets!) The text should be enclosed in the appropriate 200 | comment syntax for the file format. We also recommend that a 201 | file or class name and description of purpose be included on the 202 | same "printed page" as the copyright notice for easier 203 | identification within third-party archives. 204 | 205 | Copyright [yyyy] [name of copyright owner] 206 | 207 | Licensed under the Apache License, Version 2.0 (the "License"); 208 | you may not use this file except in compliance with the License. 209 | You may obtain a copy of the License at 210 | 211 | https://www.apache.org/licenses/LICENSE-2.0 212 | 213 | Unless required by applicable law or agreed to in writing, software 214 | distributed under the License is distributed on an "AS IS" BASIS, 215 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 216 | See the License for the specific language governing permissions and 217 | limitations under the License. 218 | 219 | -------------------------------------------------------------------------------- /Samples/ReviewDemo/Scenes/ReviewDemo.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 8 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 1 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 9 46 | m_GIWorkflowMode: 0 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_TemporalCoherenceThreshold: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 0 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 8 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_TextureWidth: 1024 61 | m_TextureHeight: 1024 62 | m_AO: 0 63 | m_AOMaxDistance: 1 64 | m_CompAOExponent: 1 65 | m_CompAOExponentDirect: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVRFilterTypeDirect: 0 81 | m_PVRFilterTypeIndirect: 0 82 | m_PVRFilterTypeAO: 0 83 | m_PVRFilteringMode: 1 84 | m_PVRCulling: 1 85 | m_PVRFilteringGaussRadiusDirect: 1 86 | m_PVRFilteringGaussRadiusIndirect: 5 87 | m_PVRFilteringGaussRadiusAO: 2 88 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 89 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 90 | m_PVRFilteringAtrousPositionSigmaAO: 1 91 | m_LightingDataAsset: {fileID: 0} 92 | m_ShadowMaskMode: 2 93 | --- !u!196 &4 94 | NavMeshSettings: 95 | serializedVersion: 2 96 | m_ObjectHideFlags: 0 97 | m_BuildSettings: 98 | serializedVersion: 2 99 | agentTypeID: 0 100 | agentRadius: 0.5 101 | agentHeight: 2 102 | agentSlope: 45 103 | agentClimb: 0.4 104 | ledgeDropHeight: 0 105 | maxJumpAcrossDistance: 0 106 | minRegionArea: 2 107 | manualCellSize: 0 108 | cellSize: 0.16666667 109 | manualTileSize: 0 110 | tileSize: 256 111 | accuratePlacement: 0 112 | m_NavMeshData: {fileID: 0} 113 | --- !u!1 &609962555 114 | GameObject: 115 | m_ObjectHideFlags: 0 116 | m_PrefabParentObject: {fileID: 0} 117 | m_PrefabInternal: {fileID: 0} 118 | serializedVersion: 5 119 | m_Component: 120 | - component: {fileID: 609962556} 121 | - component: {fileID: 609962558} 122 | - component: {fileID: 609962557} 123 | m_Layer: 5 124 | m_Name: Text 125 | m_TagString: Untagged 126 | m_Icon: {fileID: 0} 127 | m_NavMeshLayer: 0 128 | m_StaticEditorFlags: 0 129 | m_IsActive: 1 130 | --- !u!224 &609962556 131 | RectTransform: 132 | m_ObjectHideFlags: 0 133 | m_PrefabParentObject: {fileID: 0} 134 | m_PrefabInternal: {fileID: 0} 135 | m_GameObject: {fileID: 609962555} 136 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 137 | m_LocalPosition: {x: 0, y: 0, z: 0} 138 | m_LocalScale: {x: 1, y: 1, z: 1} 139 | m_Children: [] 140 | m_Father: {fileID: 973572932} 141 | m_RootOrder: 0 142 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 143 | m_AnchorMin: {x: 0, y: 0} 144 | m_AnchorMax: {x: 1, y: 1} 145 | m_AnchoredPosition: {x: 0, y: 0} 146 | m_SizeDelta: {x: -124, y: -40} 147 | m_Pivot: {x: 0.5, y: 0.5} 148 | --- !u!114 &609962557 149 | MonoBehaviour: 150 | m_ObjectHideFlags: 0 151 | m_PrefabParentObject: {fileID: 0} 152 | m_PrefabInternal: {fileID: 0} 153 | m_GameObject: {fileID: 609962555} 154 | m_Enabled: 1 155 | m_EditorHideFlags: 0 156 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 157 | m_Name: 158 | m_EditorClassIdentifier: 159 | m_Material: {fileID: 0} 160 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 161 | m_RaycastTarget: 1 162 | m_OnCullStateChanged: 163 | m_PersistentCalls: 164 | m_Calls: [] 165 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 166 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 167 | m_FontData: 168 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 169 | m_FontSize: 50 170 | m_FontStyle: 0 171 | m_BestFit: 0 172 | m_MinSize: 1 173 | m_MaxSize: 283 174 | m_Alignment: 4 175 | m_AlignByGeometry: 0 176 | m_RichText: 1 177 | m_HorizontalOverflow: 0 178 | m_VerticalOverflow: 0 179 | m_LineSpacing: 1 180 | m_Text: ALL IN ONE 181 | --- !u!222 &609962558 182 | CanvasRenderer: 183 | m_ObjectHideFlags: 0 184 | m_PrefabParentObject: {fileID: 0} 185 | m_PrefabInternal: {fileID: 0} 186 | m_GameObject: {fileID: 609962555} 187 | --- !u!1 &827816957 188 | GameObject: 189 | m_ObjectHideFlags: 0 190 | m_PrefabParentObject: {fileID: 0} 191 | m_PrefabInternal: {fileID: 0} 192 | serializedVersion: 5 193 | m_Component: 194 | - component: {fileID: 827816958} 195 | - component: {fileID: 827816961} 196 | - component: {fileID: 827816960} 197 | - component: {fileID: 827816959} 198 | m_Layer: 5 199 | m_Name: Launch 200 | m_TagString: Untagged 201 | m_Icon: {fileID: 0} 202 | m_NavMeshLayer: 0 203 | m_StaticEditorFlags: 0 204 | m_IsActive: 1 205 | --- !u!224 &827816958 206 | RectTransform: 207 | m_ObjectHideFlags: 0 208 | m_PrefabParentObject: {fileID: 0} 209 | m_PrefabInternal: {fileID: 0} 210 | m_GameObject: {fileID: 827816957} 211 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 212 | m_LocalPosition: {x: 0, y: 0, z: 0} 213 | m_LocalScale: {x: 1, y: 1, z: 1} 214 | m_Children: 215 | - {fileID: 890403258} 216 | m_Father: {fileID: 1870742910} 217 | m_RootOrder: 1 218 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 219 | m_AnchorMin: {x: 0.5, y: 1} 220 | m_AnchorMax: {x: 0.5, y: 1} 221 | m_AnchoredPosition: {x: 0, y: -650} 222 | m_SizeDelta: {x: 700, y: 200} 223 | m_Pivot: {x: 0.5, y: 0.5} 224 | --- !u!114 &827816959 225 | MonoBehaviour: 226 | m_ObjectHideFlags: 0 227 | m_PrefabParentObject: {fileID: 0} 228 | m_PrefabInternal: {fileID: 0} 229 | m_GameObject: {fileID: 827816957} 230 | m_Enabled: 1 231 | m_EditorHideFlags: 0 232 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 233 | m_Name: 234 | m_EditorClassIdentifier: 235 | m_Navigation: 236 | m_Mode: 3 237 | m_SelectOnUp: {fileID: 0} 238 | m_SelectOnDown: {fileID: 0} 239 | m_SelectOnLeft: {fileID: 0} 240 | m_SelectOnRight: {fileID: 0} 241 | m_Transition: 1 242 | m_Colors: 243 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 244 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 245 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 246 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 247 | m_ColorMultiplier: 1 248 | m_FadeDuration: 0.1 249 | m_SpriteState: 250 | m_HighlightedSprite: {fileID: 0} 251 | m_PressedSprite: {fileID: 0} 252 | m_DisabledSprite: {fileID: 0} 253 | m_AnimationTriggers: 254 | m_NormalTrigger: Normal 255 | m_HighlightedTrigger: Highlighted 256 | m_PressedTrigger: Pressed 257 | m_DisabledTrigger: Disabled 258 | m_Interactable: 1 259 | m_TargetGraphic: {fileID: 827816960} 260 | m_OnClick: 261 | m_PersistentCalls: 262 | m_Calls: 263 | - m_Target: {fileID: 0} 264 | m_MethodName: ButtonEventReadCookie 265 | m_Mode: 1 266 | m_Arguments: 267 | m_ObjectArgument: {fileID: 0} 268 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 269 | m_IntArgument: 0 270 | m_FloatArgument: 0 271 | m_StringArgument: 272 | m_BoolArgument: 0 273 | m_CallState: 2 274 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 275 | Culture=neutral, PublicKeyToken=null 276 | --- !u!114 &827816960 277 | MonoBehaviour: 278 | m_ObjectHideFlags: 0 279 | m_PrefabParentObject: {fileID: 0} 280 | m_PrefabInternal: {fileID: 0} 281 | m_GameObject: {fileID: 827816957} 282 | m_Enabled: 1 283 | m_EditorHideFlags: 0 284 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 285 | m_Name: 286 | m_EditorClassIdentifier: 287 | m_Material: {fileID: 0} 288 | m_Color: {r: 1, g: 1, b: 1, a: 1} 289 | m_RaycastTarget: 1 290 | m_OnCullStateChanged: 291 | m_PersistentCalls: 292 | m_Calls: [] 293 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 294 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 295 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 296 | m_Type: 1 297 | m_PreserveAspect: 0 298 | m_FillCenter: 1 299 | m_FillMethod: 4 300 | m_FillAmount: 1 301 | m_FillClockwise: 1 302 | m_FillOrigin: 0 303 | --- !u!222 &827816961 304 | CanvasRenderer: 305 | m_ObjectHideFlags: 0 306 | m_PrefabParentObject: {fileID: 0} 307 | m_PrefabInternal: {fileID: 0} 308 | m_GameObject: {fileID: 827816957} 309 | --- !u!1 &890403257 310 | GameObject: 311 | m_ObjectHideFlags: 0 312 | m_PrefabParentObject: {fileID: 0} 313 | m_PrefabInternal: {fileID: 0} 314 | serializedVersion: 5 315 | m_Component: 316 | - component: {fileID: 890403258} 317 | - component: {fileID: 890403260} 318 | - component: {fileID: 890403259} 319 | m_Layer: 5 320 | m_Name: Text 321 | m_TagString: Untagged 322 | m_Icon: {fileID: 0} 323 | m_NavMeshLayer: 0 324 | m_StaticEditorFlags: 0 325 | m_IsActive: 1 326 | --- !u!224 &890403258 327 | RectTransform: 328 | m_ObjectHideFlags: 0 329 | m_PrefabParentObject: {fileID: 0} 330 | m_PrefabInternal: {fileID: 0} 331 | m_GameObject: {fileID: 890403257} 332 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 333 | m_LocalPosition: {x: 0, y: 0, z: 0} 334 | m_LocalScale: {x: 1, y: 1, z: 1} 335 | m_Children: [] 336 | m_Father: {fileID: 827816958} 337 | m_RootOrder: 0 338 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 339 | m_AnchorMin: {x: 0, y: 0} 340 | m_AnchorMax: {x: 1, y: 1} 341 | m_AnchoredPosition: {x: 0, y: 0} 342 | m_SizeDelta: {x: -124, y: -40} 343 | m_Pivot: {x: 0.5, y: 0.5} 344 | --- !u!114 &890403259 345 | MonoBehaviour: 346 | m_ObjectHideFlags: 0 347 | m_PrefabParentObject: {fileID: 0} 348 | m_PrefabInternal: {fileID: 0} 349 | m_GameObject: {fileID: 890403257} 350 | m_Enabled: 1 351 | m_EditorHideFlags: 0 352 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 353 | m_Name: 354 | m_EditorClassIdentifier: 355 | m_Material: {fileID: 0} 356 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 357 | m_RaycastTarget: 1 358 | m_OnCullStateChanged: 359 | m_PersistentCalls: 360 | m_Calls: [] 361 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 362 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 363 | m_FontData: 364 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 365 | m_FontSize: 50 366 | m_FontStyle: 0 367 | m_BestFit: 0 368 | m_MinSize: 1 369 | m_MaxSize: 283 370 | m_Alignment: 4 371 | m_AlignByGeometry: 0 372 | m_RichText: 1 373 | m_HorizontalOverflow: 0 374 | m_VerticalOverflow: 0 375 | m_LineSpacing: 1 376 | m_Text: Launch Flow 377 | --- !u!222 &890403260 378 | CanvasRenderer: 379 | m_ObjectHideFlags: 0 380 | m_PrefabParentObject: {fileID: 0} 381 | m_PrefabInternal: {fileID: 0} 382 | m_GameObject: {fileID: 890403257} 383 | --- !u!1 &895177272 384 | GameObject: 385 | m_ObjectHideFlags: 0 386 | m_PrefabParentObject: {fileID: 0} 387 | m_PrefabInternal: {fileID: 0} 388 | serializedVersion: 5 389 | m_Component: 390 | - component: {fileID: 895177273} 391 | m_Layer: 5 392 | m_Name: Title 393 | m_TagString: Untagged 394 | m_Icon: {fileID: 0} 395 | m_NavMeshLayer: 0 396 | m_StaticEditorFlags: 0 397 | m_IsActive: 1 398 | --- !u!224 &895177273 399 | RectTransform: 400 | m_ObjectHideFlags: 0 401 | m_PrefabParentObject: {fileID: 0} 402 | m_PrefabInternal: {fileID: 0} 403 | m_GameObject: {fileID: 895177272} 404 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 405 | m_LocalPosition: {x: 0, y: 0, z: 0} 406 | m_LocalScale: {x: 1, y: 1, z: 1} 407 | m_Children: 408 | - {fileID: 1694712804} 409 | m_Father: {fileID: 1711967710} 410 | m_RootOrder: 1 411 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 412 | m_AnchorMin: {x: 0.5, y: 0.5} 413 | m_AnchorMax: {x: 0.5, y: 0.5} 414 | m_AnchoredPosition: {x: 0, y: 850} 415 | m_SizeDelta: {x: 1000, y: 300} 416 | m_Pivot: {x: 0.5, y: 0.5} 417 | --- !u!1 &973572931 418 | GameObject: 419 | m_ObjectHideFlags: 0 420 | m_PrefabParentObject: {fileID: 0} 421 | m_PrefabInternal: {fileID: 0} 422 | serializedVersion: 5 423 | m_Component: 424 | - component: {fileID: 973572932} 425 | - component: {fileID: 973572935} 426 | - component: {fileID: 973572934} 427 | - component: {fileID: 973572933} 428 | m_Layer: 5 429 | m_Name: AllInOneFlowButton 430 | m_TagString: Untagged 431 | m_Icon: {fileID: 0} 432 | m_NavMeshLayer: 0 433 | m_StaticEditorFlags: 0 434 | m_IsActive: 1 435 | --- !u!224 &973572932 436 | RectTransform: 437 | m_ObjectHideFlags: 0 438 | m_PrefabParentObject: {fileID: 0} 439 | m_PrefabInternal: {fileID: 0} 440 | m_GameObject: {fileID: 973572931} 441 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 442 | m_LocalPosition: {x: 0, y: 0, z: 0} 443 | m_LocalScale: {x: 1, y: 1, z: 1} 444 | m_Children: 445 | - {fileID: 609962556} 446 | m_Father: {fileID: 1870742910} 447 | m_RootOrder: 2 448 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 449 | m_AnchorMin: {x: 0.5, y: 1} 450 | m_AnchorMax: {x: 0.5, y: 1} 451 | m_AnchoredPosition: {x: 0, y: -900} 452 | m_SizeDelta: {x: 700, y: 200} 453 | m_Pivot: {x: 0.5, y: 0.5} 454 | --- !u!114 &973572933 455 | MonoBehaviour: 456 | m_ObjectHideFlags: 0 457 | m_PrefabParentObject: {fileID: 0} 458 | m_PrefabInternal: {fileID: 0} 459 | m_GameObject: {fileID: 973572931} 460 | m_Enabled: 1 461 | m_EditorHideFlags: 0 462 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 463 | m_Name: 464 | m_EditorClassIdentifier: 465 | m_Navigation: 466 | m_Mode: 3 467 | m_SelectOnUp: {fileID: 0} 468 | m_SelectOnDown: {fileID: 0} 469 | m_SelectOnLeft: {fileID: 0} 470 | m_SelectOnRight: {fileID: 0} 471 | m_Transition: 1 472 | m_Colors: 473 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 474 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 475 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 476 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 477 | m_ColorMultiplier: 1 478 | m_FadeDuration: 0.1 479 | m_SpriteState: 480 | m_HighlightedSprite: {fileID: 0} 481 | m_PressedSprite: {fileID: 0} 482 | m_DisabledSprite: {fileID: 0} 483 | m_AnimationTriggers: 484 | m_NormalTrigger: Normal 485 | m_HighlightedTrigger: Highlighted 486 | m_PressedTrigger: Pressed 487 | m_DisabledTrigger: Disabled 488 | m_Interactable: 1 489 | m_TargetGraphic: {fileID: 973572934} 490 | m_OnClick: 491 | m_PersistentCalls: 492 | m_Calls: 493 | - m_Target: {fileID: 0} 494 | m_MethodName: ButtonEventShowInstallPrompt 495 | m_Mode: 1 496 | m_Arguments: 497 | m_ObjectArgument: {fileID: 0} 498 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 499 | m_IntArgument: 0 500 | m_FloatArgument: 0 501 | m_StringArgument: 502 | m_BoolArgument: 0 503 | m_CallState: 2 504 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 505 | Culture=neutral, PublicKeyToken=null 506 | --- !u!114 &973572934 507 | MonoBehaviour: 508 | m_ObjectHideFlags: 0 509 | m_PrefabParentObject: {fileID: 0} 510 | m_PrefabInternal: {fileID: 0} 511 | m_GameObject: {fileID: 973572931} 512 | m_Enabled: 1 513 | m_EditorHideFlags: 0 514 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 515 | m_Name: 516 | m_EditorClassIdentifier: 517 | m_Material: {fileID: 0} 518 | m_Color: {r: 1, g: 1, b: 1, a: 1} 519 | m_RaycastTarget: 1 520 | m_OnCullStateChanged: 521 | m_PersistentCalls: 522 | m_Calls: [] 523 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 524 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 525 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 526 | m_Type: 1 527 | m_PreserveAspect: 0 528 | m_FillCenter: 1 529 | m_FillMethod: 4 530 | m_FillAmount: 1 531 | m_FillClockwise: 1 532 | m_FillOrigin: 0 533 | --- !u!222 &973572935 534 | CanvasRenderer: 535 | m_ObjectHideFlags: 0 536 | m_PrefabParentObject: {fileID: 0} 537 | m_PrefabInternal: {fileID: 0} 538 | m_GameObject: {fileID: 973572931} 539 | --- !u!1 &1035553835 540 | GameObject: 541 | m_ObjectHideFlags: 0 542 | m_PrefabParentObject: {fileID: 0} 543 | m_PrefabInternal: {fileID: 0} 544 | serializedVersion: 5 545 | m_Component: 546 | - component: {fileID: 1035553836} 547 | - component: {fileID: 1035553838} 548 | - component: {fileID: 1035553837} 549 | m_Layer: 5 550 | m_Name: Background 551 | m_TagString: Untagged 552 | m_Icon: {fileID: 0} 553 | m_NavMeshLayer: 0 554 | m_StaticEditorFlags: 0 555 | m_IsActive: 1 556 | --- !u!224 &1035553836 557 | RectTransform: 558 | m_ObjectHideFlags: 0 559 | m_PrefabParentObject: {fileID: 0} 560 | m_PrefabInternal: {fileID: 0} 561 | m_GameObject: {fileID: 1035553835} 562 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 563 | m_LocalPosition: {x: 0, y: 0, z: 0} 564 | m_LocalScale: {x: 1, y: 1, z: 1} 565 | m_Children: [] 566 | m_Father: {fileID: 1711967710} 567 | m_RootOrder: 0 568 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 569 | m_AnchorMin: {x: 0, y: 0} 570 | m_AnchorMax: {x: 1, y: 1} 571 | m_AnchoredPosition: {x: 0, y: 0} 572 | m_SizeDelta: {x: 0, y: 0} 573 | m_Pivot: {x: 0.5, y: 0.5} 574 | --- !u!114 &1035553837 575 | MonoBehaviour: 576 | m_ObjectHideFlags: 0 577 | m_PrefabParentObject: {fileID: 0} 578 | m_PrefabInternal: {fileID: 0} 579 | m_GameObject: {fileID: 1035553835} 580 | m_Enabled: 1 581 | m_EditorHideFlags: 0 582 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 583 | m_Name: 584 | m_EditorClassIdentifier: 585 | m_Material: {fileID: 0} 586 | m_Color: {r: 0, g: 0, b: 0, a: 1} 587 | m_RaycastTarget: 1 588 | m_OnCullStateChanged: 589 | m_PersistentCalls: 590 | m_Calls: [] 591 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 592 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 593 | m_Sprite: {fileID: 0} 594 | m_Type: 0 595 | m_PreserveAspect: 0 596 | m_FillCenter: 1 597 | m_FillMethod: 4 598 | m_FillAmount: 1 599 | m_FillClockwise: 1 600 | m_FillOrigin: 0 601 | --- !u!222 &1035553838 602 | CanvasRenderer: 603 | m_ObjectHideFlags: 0 604 | m_PrefabParentObject: {fileID: 0} 605 | m_PrefabInternal: {fileID: 0} 606 | m_GameObject: {fileID: 1035553835} 607 | --- !u!1 &1232613978 608 | GameObject: 609 | m_ObjectHideFlags: 0 610 | m_PrefabParentObject: {fileID: 0} 611 | m_PrefabInternal: {fileID: 0} 612 | serializedVersion: 5 613 | m_Component: 614 | - component: {fileID: 1232613979} 615 | - component: {fileID: 1232613982} 616 | - component: {fileID: 1232613981} 617 | - component: {fileID: 1232613980} 618 | m_Layer: 5 619 | m_Name: Request 620 | m_TagString: Untagged 621 | m_Icon: {fileID: 0} 622 | m_NavMeshLayer: 0 623 | m_StaticEditorFlags: 0 624 | m_IsActive: 1 625 | --- !u!224 &1232613979 626 | RectTransform: 627 | m_ObjectHideFlags: 0 628 | m_PrefabParentObject: {fileID: 0} 629 | m_PrefabInternal: {fileID: 0} 630 | m_GameObject: {fileID: 1232613978} 631 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 632 | m_LocalPosition: {x: 0, y: 0, z: 0} 633 | m_LocalScale: {x: 1, y: 1, z: 1} 634 | m_Children: 635 | - {fileID: 1336145279} 636 | m_Father: {fileID: 1870742910} 637 | m_RootOrder: 0 638 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 639 | m_AnchorMin: {x: 0.5, y: 1} 640 | m_AnchorMax: {x: 0.5, y: 1} 641 | m_AnchoredPosition: {x: 0, y: -400} 642 | m_SizeDelta: {x: 700, y: 200} 643 | m_Pivot: {x: 0.5, y: 0.5} 644 | --- !u!114 &1232613980 645 | MonoBehaviour: 646 | m_ObjectHideFlags: 0 647 | m_PrefabParentObject: {fileID: 0} 648 | m_PrefabInternal: {fileID: 0} 649 | m_GameObject: {fileID: 1232613978} 650 | m_Enabled: 1 651 | m_EditorHideFlags: 0 652 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 653 | m_Name: 654 | m_EditorClassIdentifier: 655 | m_Navigation: 656 | m_Mode: 3 657 | m_SelectOnUp: {fileID: 0} 658 | m_SelectOnDown: {fileID: 0} 659 | m_SelectOnLeft: {fileID: 0} 660 | m_SelectOnRight: {fileID: 0} 661 | m_Transition: 1 662 | m_Colors: 663 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 664 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 665 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 666 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 667 | m_ColorMultiplier: 1 668 | m_FadeDuration: 0.1 669 | m_SpriteState: 670 | m_HighlightedSprite: {fileID: 0} 671 | m_PressedSprite: {fileID: 0} 672 | m_DisabledSprite: {fileID: 0} 673 | m_AnimationTriggers: 674 | m_NormalTrigger: Normal 675 | m_HighlightedTrigger: Highlighted 676 | m_PressedTrigger: Pressed 677 | m_DisabledTrigger: Disabled 678 | m_Interactable: 1 679 | m_TargetGraphic: {fileID: 1232613981} 680 | m_OnClick: 681 | m_PersistentCalls: 682 | m_Calls: 683 | - m_Target: {fileID: 0} 684 | m_MethodName: ButtonEventWriteCookie 685 | m_Mode: 1 686 | m_Arguments: 687 | m_ObjectArgument: {fileID: 0} 688 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 689 | m_IntArgument: 0 690 | m_FloatArgument: 0 691 | m_StringArgument: 692 | m_BoolArgument: 0 693 | m_CallState: 2 694 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 695 | Culture=neutral, PublicKeyToken=null 696 | --- !u!114 &1232613981 697 | MonoBehaviour: 698 | m_ObjectHideFlags: 0 699 | m_PrefabParentObject: {fileID: 0} 700 | m_PrefabInternal: {fileID: 0} 701 | m_GameObject: {fileID: 1232613978} 702 | m_Enabled: 1 703 | m_EditorHideFlags: 0 704 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 705 | m_Name: 706 | m_EditorClassIdentifier: 707 | m_Material: {fileID: 0} 708 | m_Color: {r: 1, g: 1, b: 1, a: 1} 709 | m_RaycastTarget: 1 710 | m_OnCullStateChanged: 711 | m_PersistentCalls: 712 | m_Calls: [] 713 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 714 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 715 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 716 | m_Type: 1 717 | m_PreserveAspect: 0 718 | m_FillCenter: 1 719 | m_FillMethod: 4 720 | m_FillAmount: 1 721 | m_FillClockwise: 1 722 | m_FillOrigin: 0 723 | --- !u!222 &1232613982 724 | CanvasRenderer: 725 | m_ObjectHideFlags: 0 726 | m_PrefabParentObject: {fileID: 0} 727 | m_PrefabInternal: {fileID: 0} 728 | m_GameObject: {fileID: 1232613978} 729 | --- !u!1 &1336145278 730 | GameObject: 731 | m_ObjectHideFlags: 0 732 | m_PrefabParentObject: {fileID: 0} 733 | m_PrefabInternal: {fileID: 0} 734 | serializedVersion: 5 735 | m_Component: 736 | - component: {fileID: 1336145279} 737 | - component: {fileID: 1336145281} 738 | - component: {fileID: 1336145280} 739 | m_Layer: 5 740 | m_Name: Text 741 | m_TagString: Untagged 742 | m_Icon: {fileID: 0} 743 | m_NavMeshLayer: 0 744 | m_StaticEditorFlags: 0 745 | m_IsActive: 1 746 | --- !u!224 &1336145279 747 | RectTransform: 748 | m_ObjectHideFlags: 0 749 | m_PrefabParentObject: {fileID: 0} 750 | m_PrefabInternal: {fileID: 0} 751 | m_GameObject: {fileID: 1336145278} 752 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 753 | m_LocalPosition: {x: 0, y: 0, z: 0} 754 | m_LocalScale: {x: 1, y: 1, z: 1} 755 | m_Children: [] 756 | m_Father: {fileID: 1232613979} 757 | m_RootOrder: 0 758 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 759 | m_AnchorMin: {x: 0, y: 0} 760 | m_AnchorMax: {x: 1, y: 1} 761 | m_AnchoredPosition: {x: 0, y: 0} 762 | m_SizeDelta: {x: -124, y: -40} 763 | m_Pivot: {x: 0.5, y: 0.5} 764 | --- !u!114 &1336145280 765 | MonoBehaviour: 766 | m_ObjectHideFlags: 0 767 | m_PrefabParentObject: {fileID: 0} 768 | m_PrefabInternal: {fileID: 0} 769 | m_GameObject: {fileID: 1336145278} 770 | m_Enabled: 1 771 | m_EditorHideFlags: 0 772 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 773 | m_Name: 774 | m_EditorClassIdentifier: 775 | m_Material: {fileID: 0} 776 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 777 | m_RaycastTarget: 1 778 | m_OnCullStateChanged: 779 | m_PersistentCalls: 780 | m_Calls: [] 781 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 782 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 783 | m_FontData: 784 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 785 | m_FontSize: 50 786 | m_FontStyle: 0 787 | m_BestFit: 0 788 | m_MinSize: 1 789 | m_MaxSize: 283 790 | m_Alignment: 4 791 | m_AlignByGeometry: 0 792 | m_RichText: 1 793 | m_HorizontalOverflow: 0 794 | m_VerticalOverflow: 0 795 | m_LineSpacing: 1 796 | m_Text: Request Flow 797 | --- !u!222 &1336145281 798 | CanvasRenderer: 799 | m_ObjectHideFlags: 0 800 | m_PrefabParentObject: {fileID: 0} 801 | m_PrefabInternal: {fileID: 0} 802 | m_GameObject: {fileID: 1336145278} 803 | --- !u!1 &1613765330 804 | GameObject: 805 | m_ObjectHideFlags: 0 806 | m_PrefabParentObject: {fileID: 0} 807 | m_PrefabInternal: {fileID: 0} 808 | serializedVersion: 5 809 | m_Component: 810 | - component: {fileID: 1613765333} 811 | - component: {fileID: 1613765332} 812 | - component: {fileID: 1613765331} 813 | m_Layer: 0 814 | m_Name: EventSystem 815 | m_TagString: Untagged 816 | m_Icon: {fileID: 0} 817 | m_NavMeshLayer: 0 818 | m_StaticEditorFlags: 0 819 | m_IsActive: 1 820 | --- !u!114 &1613765331 821 | MonoBehaviour: 822 | m_ObjectHideFlags: 0 823 | m_PrefabParentObject: {fileID: 0} 824 | m_PrefabInternal: {fileID: 0} 825 | m_GameObject: {fileID: 1613765330} 826 | m_Enabled: 1 827 | m_EditorHideFlags: 0 828 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 829 | m_Name: 830 | m_EditorClassIdentifier: 831 | m_HorizontalAxis: Horizontal 832 | m_VerticalAxis: Vertical 833 | m_SubmitButton: Submit 834 | m_CancelButton: Cancel 835 | m_InputActionsPerSecond: 10 836 | m_RepeatDelay: 0.5 837 | m_ForceModuleActive: 0 838 | --- !u!114 &1613765332 839 | MonoBehaviour: 840 | m_ObjectHideFlags: 0 841 | m_PrefabParentObject: {fileID: 0} 842 | m_PrefabInternal: {fileID: 0} 843 | m_GameObject: {fileID: 1613765330} 844 | m_Enabled: 1 845 | m_EditorHideFlags: 0 846 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 847 | m_Name: 848 | m_EditorClassIdentifier: 849 | m_FirstSelected: {fileID: 0} 850 | m_sendNavigationEvents: 1 851 | m_DragThreshold: 10 852 | --- !u!4 &1613765333 853 | Transform: 854 | m_ObjectHideFlags: 0 855 | m_PrefabParentObject: {fileID: 0} 856 | m_PrefabInternal: {fileID: 0} 857 | m_GameObject: {fileID: 1613765330} 858 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 859 | m_LocalPosition: {x: 0, y: 0, z: 0} 860 | m_LocalScale: {x: 1, y: 1, z: 1} 861 | m_Children: [] 862 | m_Father: {fileID: 1647103413} 863 | m_RootOrder: 2 864 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 865 | --- !u!1 &1634394737 866 | GameObject: 867 | m_ObjectHideFlags: 0 868 | m_PrefabParentObject: {fileID: 0} 869 | m_PrefabInternal: {fileID: 0} 870 | serializedVersion: 5 871 | m_Component: 872 | - component: {fileID: 1634394739} 873 | - component: {fileID: 1634394738} 874 | m_Layer: 0 875 | m_Name: UICamera 876 | m_TagString: Untagged 877 | m_Icon: {fileID: 0} 878 | m_NavMeshLayer: 0 879 | m_StaticEditorFlags: 0 880 | m_IsActive: 1 881 | --- !u!20 &1634394738 882 | Camera: 883 | m_ObjectHideFlags: 0 884 | m_PrefabParentObject: {fileID: 0} 885 | m_PrefabInternal: {fileID: 0} 886 | m_GameObject: {fileID: 1634394737} 887 | m_Enabled: 1 888 | serializedVersion: 2 889 | m_ClearFlags: 2 890 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 891 | m_NormalizedViewPortRect: 892 | serializedVersion: 2 893 | x: 0 894 | y: 0 895 | width: 1 896 | height: 1 897 | near clip plane: 0.3 898 | far clip plane: 1000 899 | field of view: 60 900 | orthographic: 0 901 | orthographic size: 5 902 | m_Depth: 0 903 | m_CullingMask: 904 | serializedVersion: 2 905 | m_Bits: 4294967295 906 | m_RenderingPath: -1 907 | m_TargetTexture: {fileID: 0} 908 | m_TargetDisplay: 0 909 | m_TargetEye: 3 910 | m_HDR: 1 911 | m_AllowMSAA: 1 912 | m_ForceIntoRT: 0 913 | m_OcclusionCulling: 1 914 | m_StereoConvergence: 10 915 | m_StereoSeparation: 0.022 916 | m_StereoMirrorMode: 0 917 | --- !u!4 &1634394739 918 | Transform: 919 | m_ObjectHideFlags: 0 920 | m_PrefabParentObject: {fileID: 0} 921 | m_PrefabInternal: {fileID: 0} 922 | m_GameObject: {fileID: 1634394737} 923 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 924 | m_LocalPosition: {x: 0, y: 0, z: 0} 925 | m_LocalScale: {x: 1, y: 1, z: 1} 926 | m_Children: [] 927 | m_Father: {fileID: 1647103413} 928 | m_RootOrder: 0 929 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 930 | --- !u!1 &1647103411 931 | GameObject: 932 | m_ObjectHideFlags: 0 933 | m_PrefabParentObject: {fileID: 0} 934 | m_PrefabInternal: {fileID: 0} 935 | serializedVersion: 5 936 | m_Component: 937 | - component: {fileID: 1647103413} 938 | - component: {fileID: 1647103412} 939 | m_Layer: 0 940 | m_Name: TestApp 941 | m_TagString: Untagged 942 | m_Icon: {fileID: 0} 943 | m_NavMeshLayer: 0 944 | m_StaticEditorFlags: 0 945 | m_IsActive: 1 946 | --- !u!114 &1647103412 947 | MonoBehaviour: 948 | m_ObjectHideFlags: 0 949 | m_PrefabParentObject: {fileID: 0} 950 | m_PrefabInternal: {fileID: 0} 951 | m_GameObject: {fileID: 1647103411} 952 | m_Enabled: 1 953 | m_EditorHideFlags: 0 954 | m_Script: {fileID: 11500000, guid: 9675b28c5a72144148a7c86cdd40cba0, type: 3} 955 | m_Name: 956 | m_EditorClassIdentifier: 957 | statusText: {fileID: 1939454001} 958 | requestFlowButton: {fileID: 1232613980} 959 | launchFlowButton: {fileID: 827816959} 960 | allInOneButton: {fileID: 973572933} 961 | --- !u!4 &1647103413 962 | Transform: 963 | m_ObjectHideFlags: 0 964 | m_PrefabParentObject: {fileID: 0} 965 | m_PrefabInternal: {fileID: 0} 966 | m_GameObject: {fileID: 1647103411} 967 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 968 | m_LocalPosition: {x: 0, y: 0, z: 0} 969 | m_LocalScale: {x: 1, y: 1, z: 1} 970 | m_Children: 971 | - {fileID: 1634394739} 972 | - {fileID: 1711967710} 973 | - {fileID: 1613765333} 974 | m_Father: {fileID: 0} 975 | m_RootOrder: 0 976 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 977 | --- !u!1 &1694712803 978 | GameObject: 979 | m_ObjectHideFlags: 0 980 | m_PrefabParentObject: {fileID: 0} 981 | m_PrefabInternal: {fileID: 0} 982 | serializedVersion: 5 983 | m_Component: 984 | - component: {fileID: 1694712804} 985 | - component: {fileID: 1694712806} 986 | - component: {fileID: 1694712805} 987 | m_Layer: 5 988 | m_Name: Text 989 | m_TagString: Untagged 990 | m_Icon: {fileID: 0} 991 | m_NavMeshLayer: 0 992 | m_StaticEditorFlags: 0 993 | m_IsActive: 1 994 | --- !u!224 &1694712804 995 | RectTransform: 996 | m_ObjectHideFlags: 0 997 | m_PrefabParentObject: {fileID: 0} 998 | m_PrefabInternal: {fileID: 0} 999 | m_GameObject: {fileID: 1694712803} 1000 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1001 | m_LocalPosition: {x: 0, y: 0, z: 0} 1002 | m_LocalScale: {x: 1, y: 1, z: 1} 1003 | m_Children: [] 1004 | m_Father: {fileID: 895177273} 1005 | m_RootOrder: 0 1006 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1007 | m_AnchorMin: {x: 0, y: 0} 1008 | m_AnchorMax: {x: 1, y: 1} 1009 | m_AnchoredPosition: {x: 0, y: -31} 1010 | m_SizeDelta: {x: -124, y: -62} 1011 | m_Pivot: {x: 0.5, y: 0.5} 1012 | --- !u!114 &1694712805 1013 | MonoBehaviour: 1014 | m_ObjectHideFlags: 0 1015 | m_PrefabParentObject: {fileID: 0} 1016 | m_PrefabInternal: {fileID: 0} 1017 | m_GameObject: {fileID: 1694712803} 1018 | m_Enabled: 1 1019 | m_EditorHideFlags: 0 1020 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1021 | m_Name: 1022 | m_EditorClassIdentifier: 1023 | m_Material: {fileID: 0} 1024 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1025 | m_RaycastTarget: 1 1026 | m_OnCullStateChanged: 1027 | m_PersistentCalls: 1028 | m_Calls: [] 1029 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 1030 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 1031 | m_FontData: 1032 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1033 | m_FontSize: 140 1034 | m_FontStyle: 0 1035 | m_BestFit: 0 1036 | m_MinSize: 0 1037 | m_MaxSize: 300 1038 | m_Alignment: 4 1039 | m_AlignByGeometry: 0 1040 | m_RichText: 1 1041 | m_HorizontalOverflow: 0 1042 | m_VerticalOverflow: 0 1043 | m_LineSpacing: 1 1044 | m_Text: IAR Demo 1045 | --- !u!222 &1694712806 1046 | CanvasRenderer: 1047 | m_ObjectHideFlags: 0 1048 | m_PrefabParentObject: {fileID: 0} 1049 | m_PrefabInternal: {fileID: 0} 1050 | m_GameObject: {fileID: 1694712803} 1051 | --- !u!1 &1711967706 1052 | GameObject: 1053 | m_ObjectHideFlags: 0 1054 | m_PrefabParentObject: {fileID: 0} 1055 | m_PrefabInternal: {fileID: 0} 1056 | serializedVersion: 5 1057 | m_Component: 1058 | - component: {fileID: 1711967710} 1059 | - component: {fileID: 1711967709} 1060 | - component: {fileID: 1711967708} 1061 | - component: {fileID: 1711967707} 1062 | m_Layer: 5 1063 | m_Name: Canvas 1064 | m_TagString: Untagged 1065 | m_Icon: {fileID: 0} 1066 | m_NavMeshLayer: 0 1067 | m_StaticEditorFlags: 0 1068 | m_IsActive: 1 1069 | --- !u!114 &1711967707 1070 | MonoBehaviour: 1071 | m_ObjectHideFlags: 0 1072 | m_PrefabParentObject: {fileID: 0} 1073 | m_PrefabInternal: {fileID: 0} 1074 | m_GameObject: {fileID: 1711967706} 1075 | m_Enabled: 1 1076 | m_EditorHideFlags: 0 1077 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1078 | m_Name: 1079 | m_EditorClassIdentifier: 1080 | m_IgnoreReversedGraphics: 1 1081 | m_BlockingObjects: 0 1082 | m_BlockingMask: 1083 | serializedVersion: 2 1084 | m_Bits: 4294967295 1085 | --- !u!114 &1711967708 1086 | MonoBehaviour: 1087 | m_ObjectHideFlags: 0 1088 | m_PrefabParentObject: {fileID: 0} 1089 | m_PrefabInternal: {fileID: 0} 1090 | m_GameObject: {fileID: 1711967706} 1091 | m_Enabled: 1 1092 | m_EditorHideFlags: 0 1093 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1094 | m_Name: 1095 | m_EditorClassIdentifier: 1096 | m_UiScaleMode: 1 1097 | m_ReferencePixelsPerUnit: 100 1098 | m_ScaleFactor: 1 1099 | m_ReferenceResolution: {x: 1440, y: 2560} 1100 | m_ScreenMatchMode: 0 1101 | m_MatchWidthOrHeight: 0 1102 | m_PhysicalUnit: 3 1103 | m_FallbackScreenDPI: 96 1104 | m_DefaultSpriteDPI: 96 1105 | m_DynamicPixelsPerUnit: 1 1106 | --- !u!223 &1711967709 1107 | Canvas: 1108 | m_ObjectHideFlags: 0 1109 | m_PrefabParentObject: {fileID: 0} 1110 | m_PrefabInternal: {fileID: 0} 1111 | m_GameObject: {fileID: 1711967706} 1112 | m_Enabled: 1 1113 | serializedVersion: 3 1114 | m_RenderMode: 0 1115 | m_Camera: {fileID: 1634394738} 1116 | m_PlaneDistance: 100 1117 | m_PixelPerfect: 0 1118 | m_ReceivesEvents: 1 1119 | m_OverrideSorting: 0 1120 | m_OverridePixelPerfect: 0 1121 | m_SortingBucketNormalizedSize: 0 1122 | m_AdditionalShaderChannelsFlag: 0 1123 | m_SortingLayerID: 0 1124 | m_SortingOrder: 0 1125 | m_TargetDisplay: 0 1126 | --- !u!224 &1711967710 1127 | RectTransform: 1128 | m_ObjectHideFlags: 0 1129 | m_PrefabParentObject: {fileID: 0} 1130 | m_PrefabInternal: {fileID: 0} 1131 | m_GameObject: {fileID: 1711967706} 1132 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1133 | m_LocalPosition: {x: 0, y: 0, z: 0} 1134 | m_LocalScale: {x: 0, y: 0, z: 0} 1135 | m_Children: 1136 | - {fileID: 1035553836} 1137 | - {fileID: 895177273} 1138 | - {fileID: 1870742910} 1139 | - {fileID: 1939454000} 1140 | m_Father: {fileID: 1647103413} 1141 | m_RootOrder: 1 1142 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1143 | m_AnchorMin: {x: 0, y: 0} 1144 | m_AnchorMax: {x: 0, y: 0} 1145 | m_AnchoredPosition: {x: 0, y: 0} 1146 | m_SizeDelta: {x: 0, y: 0} 1147 | m_Pivot: {x: 0, y: 0} 1148 | --- !u!1 &1870742909 1149 | GameObject: 1150 | m_ObjectHideFlags: 0 1151 | m_PrefabParentObject: {fileID: 0} 1152 | m_PrefabInternal: {fileID: 0} 1153 | serializedVersion: 5 1154 | m_Component: 1155 | - component: {fileID: 1870742910} 1156 | m_Layer: 5 1157 | m_Name: Buttons 1158 | m_TagString: Untagged 1159 | m_Icon: {fileID: 0} 1160 | m_NavMeshLayer: 0 1161 | m_StaticEditorFlags: 0 1162 | m_IsActive: 1 1163 | --- !u!224 &1870742910 1164 | RectTransform: 1165 | m_ObjectHideFlags: 0 1166 | m_PrefabParentObject: {fileID: 0} 1167 | m_PrefabInternal: {fileID: 0} 1168 | m_GameObject: {fileID: 1870742909} 1169 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1170 | m_LocalPosition: {x: 0, y: 0, z: 0} 1171 | m_LocalScale: {x: 1, y: 1, z: 1} 1172 | m_Children: 1173 | - {fileID: 1232613979} 1174 | - {fileID: 827816958} 1175 | - {fileID: 973572932} 1176 | m_Father: {fileID: 1711967710} 1177 | m_RootOrder: 2 1178 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1179 | m_AnchorMin: {x: 0, y: 0} 1180 | m_AnchorMax: {x: 1, y: 1} 1181 | m_AnchoredPosition: {x: 0, y: -200} 1182 | m_SizeDelta: {x: 0, y: -400} 1183 | m_Pivot: {x: 0.5, y: 0.5} 1184 | --- !u!1 &1939453999 1185 | GameObject: 1186 | m_ObjectHideFlags: 0 1187 | m_PrefabParentObject: {fileID: 0} 1188 | m_PrefabInternal: {fileID: 0} 1189 | serializedVersion: 5 1190 | m_Component: 1191 | - component: {fileID: 1939454000} 1192 | - component: {fileID: 1939454002} 1193 | - component: {fileID: 1939454001} 1194 | m_Layer: 5 1195 | m_Name: Status 1196 | m_TagString: Untagged 1197 | m_Icon: {fileID: 0} 1198 | m_NavMeshLayer: 0 1199 | m_StaticEditorFlags: 0 1200 | m_IsActive: 1 1201 | --- !u!224 &1939454000 1202 | RectTransform: 1203 | m_ObjectHideFlags: 0 1204 | m_PrefabParentObject: {fileID: 0} 1205 | m_PrefabInternal: {fileID: 0} 1206 | m_GameObject: {fileID: 1939453999} 1207 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1208 | m_LocalPosition: {x: 0, y: 0, z: 0} 1209 | m_LocalScale: {x: 1, y: 1, z: 1} 1210 | m_Children: [] 1211 | m_Father: {fileID: 1711967710} 1212 | m_RootOrder: 3 1213 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1214 | m_AnchorMin: {x: 0.5, y: 0.5} 1215 | m_AnchorMax: {x: 0.5, y: 0.5} 1216 | m_AnchoredPosition: {x: 0, y: -400} 1217 | m_SizeDelta: {x: 700, y: 250} 1218 | m_Pivot: {x: 0.5, y: 0.5} 1219 | --- !u!114 &1939454001 1220 | MonoBehaviour: 1221 | m_ObjectHideFlags: 0 1222 | m_PrefabParentObject: {fileID: 0} 1223 | m_PrefabInternal: {fileID: 0} 1224 | m_GameObject: {fileID: 1939453999} 1225 | m_Enabled: 1 1226 | m_EditorHideFlags: 0 1227 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1228 | m_Name: 1229 | m_EditorClassIdentifier: 1230 | m_Material: {fileID: 0} 1231 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1232 | m_RaycastTarget: 1 1233 | m_OnCullStateChanged: 1234 | m_PersistentCalls: 1235 | m_Calls: [] 1236 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 1237 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 1238 | m_FontData: 1239 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1240 | m_FontSize: 50 1241 | m_FontStyle: 0 1242 | m_BestFit: 0 1243 | m_MinSize: 0 1244 | m_MaxSize: 274 1245 | m_Alignment: 6 1246 | m_AlignByGeometry: 0 1247 | m_RichText: 1 1248 | m_HorizontalOverflow: 0 1249 | m_VerticalOverflow: 0 1250 | m_LineSpacing: 1 1251 | m_Text: 1252 | --- !u!222 &1939454002 1253 | CanvasRenderer: 1254 | m_ObjectHideFlags: 0 1255 | m_PrefabParentObject: {fileID: 0} 1256 | m_PrefabInternal: {fileID: 0} 1257 | m_GameObject: {fileID: 1939453999} 1258 | --------------------------------------------------------------------------------