├── AndroidProject
└── NativePlugin
│ ├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ └── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── hiyorin
│ │ │ │ │ └── nativeplugin
│ │ │ │ │ └── NativePluginTestActivity.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hiyorin
│ │ │ │ └── nativeplugin
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── hiyorin
│ │ │ └── nativeplugin
│ │ │ └── ExampleInstrumentedTest.java
│ ├── proguard-rules.pro
│ └── build.gradle
│ ├── permission
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hiyorin
│ │ │ │ └── permission
│ │ │ │ ├── CustomUnityPlayerActivity.java
│ │ │ │ └── PermissionPlugin.java
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── hiyorin
│ │ │ │ └── permission
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── hiyorin
│ │ │ └── permission
│ │ │ └── ExampleInstrumentedTest.java
│ ├── proguard-rules.pro
│ └── build.gradle
│ ├── settings.gradle
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── .idea
│ ├── modules.xml
│ ├── runConfigurations.xml
│ ├── gradle.xml
│ ├── misc.xml
│ └── codeStyles
│ │ └── Project.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── .gitignore
│ ├── gradlew.bat
│ └── gradlew
├── ProjectSettings
├── ProjectVersion.txt
├── PresetManager.asset
├── ClusterInputManager.asset
├── NetworkManager.asset
├── TimeManager.asset
├── EditorBuildSettings.asset
├── AudioManager.asset
├── TagManager.asset
├── EditorSettings.asset
├── DynamicsManager.asset
├── UnityConnectSettings.asset
├── Physics2DSettings.asset
├── NavMeshAreas.asset
├── GraphicsSettings.asset
├── QualitySettings.asset
├── InputManager.asset
└── ProjectSettings.asset
├── Assets
├── Plugins
│ ├── PermissionPlugin
│ │ ├── Plugins
│ │ │ ├── Android
│ │ │ │ ├── permission-lib.aar
│ │ │ │ ├── support-compat-25.2.0.aar
│ │ │ │ ├── support-core-utils-25.2.0.aar
│ │ │ │ ├── AndroidManifest.xml.meta
│ │ │ │ ├── permission-lib.aar.meta
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── support-compat-25.2.0.aar.meta
│ │ │ │ └── support-core-utils-25.2.0.aar.meta
│ │ │ ├── iOS.meta
│ │ │ ├── Android.meta
│ │ │ └── iOS
│ │ │ │ ├── PermissionPlugin.mm.meta
│ │ │ │ └── PermissionPlugin.mm
│ │ ├── Examples
│ │ │ ├── PermissionTest.unity.meta
│ │ │ ├── PermissionTest.cs.meta
│ │ │ ├── PermissionTest.cs
│ │ │ └── PermissionTest.unity
│ │ ├── Scripts
│ │ │ ├── PermissionType.cs
│ │ │ ├── Internal.meta
│ │ │ ├── PermissionPlugin.cs.meta
│ │ │ ├── Internal
│ │ │ │ ├── PermissionPluginForIOS.cs.meta
│ │ │ │ ├── PermissionPluginForAndroid.cs.meta
│ │ │ │ ├── PermissionPluginForEditor.cs.meta
│ │ │ │ ├── PermissionPluginForEditor.cs
│ │ │ │ ├── PermissionPluginForIOS.cs
│ │ │ │ └── PermissionPluginForAndroid.cs
│ │ │ ├── PermissionType.cs.meta
│ │ │ └── PermissionPlugin.cs
│ │ ├── Plugins.meta
│ │ ├── Examples.meta
│ │ └── Scripts.meta
│ ├── Android.meta
│ ├── Android
│ │ ├── AndroidManifest.xml.meta
│ │ └── AndroidManifest.xml
│ └── PermissionPlugin.meta
├── Editor.meta
├── Plugins.meta
└── Editor
│ ├── ExportPackage.cs.meta
│ └── ExportPackage.cs
├── .gitignore
├── LICENSE
├── README.md
└── Packages
└── manifest.json
/AndroidProject/NativePlugin/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2018.2.0f2
2 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':permission'
2 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/ProjectSettings/PresetManager.asset
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | NativePlugin
3 |
4 |
--------------------------------------------------------------------------------
/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!236 &1
4 | ClusterInputManager:
5 | m_ObjectHideFlags: 0
6 | m_Inputs: []
7 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/permission-lib.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/Assets/Plugins/PermissionPlugin/Plugins/Android/permission-lib.aar
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/support-compat-25.2.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/Assets/Plugins/PermissionPlugin/Plugins/Android/support-compat-25.2.0.aar
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/AndroidProject/NativePlugin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/support-core-utils-25.2.0.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hiyorin/PermissionPlugin-for-Unity/HEAD/Assets/Plugins/PermissionPlugin/Plugins/Android/support-core-utils-25.2.0.aar
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/java/com/hiyorin/nativeplugin/NativePluginTestActivity.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.nativeplugin;
2 |
3 | import android.app.Activity;
4 |
5 | public class NativePluginTestActivity extends Activity {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Examples/PermissionTest.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dc323d7504fdab340b757b06897763c1
3 | timeCreated: 1488268363
4 | licenseType: Free
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/PermissionType.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace Permission
3 | {
4 | public enum PermissionType
5 | {
6 | Camera = 0,
7 | Gallery,
8 | Location,
9 | Bluetooth,
10 | Storage,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 428f1b9adb18d43f6bd73aabe53555d8
3 | folderAsset: yes
4 | timeCreated: 1532709941
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 71c3cf13bc496264082e2bc8de24eda7
3 | folderAsset: yes
4 | timeCreated: 1488275567
5 | licenseType: Free
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.02
7 | Maximum Allowed Timestep: 0.33333334
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/Assets/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 00f475fa3f70048d487892cda66c039a
3 | folderAsset: yes
4 | timeCreated: 1532703684
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/iOS.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 40a73677dd6384ce5ad7458689f29e58
3 | folderAsset: yes
4 | timeCreated: 1488363233
5 | licenseType: Free
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Plugins/Android.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b714767d8d5b6412d804504329534bec
3 | folderAsset: yes
4 | timeCreated: 1532703695
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/Android/AndroidManifest.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5bc27c7d75b614f6d966a9aa9b029abf
3 | timeCreated: 1521214394
4 | licenseType: Free
5 | TextScriptImporter:
6 | externalObjects: {}
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cd87badb725e18a42b57dc2309aace96
3 | folderAsset: yes
4 | timeCreated: 1488275574
5 | licenseType: Free
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7e88239fe5b47487e9bb85885a343f92
3 | folderAsset: yes
4 | timeCreated: 1532709882
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Examples.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ffe0b94cd7a924d858b084b1be993d71
3 | folderAsset: yes
4 | timeCreated: 1521125176
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e1ec924c76d4c4350aa3782b15b0fc0d
3 | folderAsset: yes
4 | timeCreated: 1532710631
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/AndroidManifest.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1ef58e2cb981841a5b01a018d7542c96
3 | timeCreated: 1521214394
4 | licenseType: Free
5 | TextScriptImporter:
6 | externalObjects: {}
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 030e9ff5a633a427d9f548233ab8ff6b
3 | folderAsset: yes
4 | timeCreated: 1532710722
5 | licenseType: Free
6 | DefaultImporter:
7 | externalObjects: {}
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Aug 12 18:24:15 JST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
7 |
--------------------------------------------------------------------------------
/Assets/Editor/ExportPackage.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1ab8e9930834a4da0a4979fa4a4ac472
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/NativePlugins/Permission/Example/PermissionTest.unity
10 | guid: dc323d7504fdab340b757b06897763c1
11 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Examples/PermissionTest.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d0434d0c12032f240857b3e5dc1c97d2
3 | timeCreated: 1488268348
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/PermissionPlugin.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8fbca1b1941bbc94eb027694a3871aaa
3 | timeCreated: 1488259207
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForIOS.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f16e5a2713fe0e478cca360d176a3ef
3 | timeCreated: 1488358138
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForAndroid.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8e823ca385347e24abb3ef8c42a81a3b
3 | timeCreated: 1488267179
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8b1a947862a266b45abd1f3e46f6770c
3 | timeCreated: 1488268140
4 | licenseType: Free
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/PermissionType.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 396f600f7e4164666a13263df0e1e2c8
3 | timeCreated: 1532714345
4 | licenseType: Free
5 | MonoImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | defaultReferences: []
9 | executionOrder: 0
10 | icon: {instanceID: 0}
11 | userData:
12 | assetBundleName:
13 | assetBundleVariant:
14 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 0
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_AmbisonicDecoderPlugin:
16 | m_DisableAudio: 0
17 | m_VirtualizeEffects: 1
18 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/test/java/com/hiyorin/nativeplugin/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.nativeplugin;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/src/test/java/com/hiyorin/permission/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.permission;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /[Ll]ibrary/
2 | /[Tt]emp/
3 | /[Oo]bj/
4 | /[Bb]uild/
5 | /[Bb]uilds/
6 | /Assets/AssetStoreTools*
7 |
8 | # Visual Studio 2015 cache directory
9 | /.vs/
10 |
11 | # Autogenerated VS/MD/Consulo solution and project files
12 | ExportedObj/
13 | .consulo/
14 | *.csproj
15 | *.unityproj
16 | *.sln
17 | *.suo
18 | *.tmp
19 | *.user
20 | *.userprefs
21 | *.pidb
22 | *.booproj
23 | *.svd
24 | *.pdb
25 |
26 | # Unity3D generated meta files
27 | *.pidb.meta
28 |
29 | # Unity3D Generated File On Crash Reports
30 | sysinfo.txt
31 |
32 | # Builds
33 | *.apk
34 | *.unitypackage
35 |
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags: []
7 | layers:
8 | - Default
9 | - TransparentFX
10 | - Ignore Raycast
11 | -
12 | - Water
13 | - UI
14 | -
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | m_SortingLayers:
41 | - name: Default
42 | uniqueID: 0
43 | locked: 0
44 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/src/main/java/com/hiyorin/permission/CustomUnityPlayerActivity.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.permission;
2 |
3 | import com.unity3d.player.UnityPlayerNativeActivity;
4 |
5 | public class CustomUnityPlayerActivity extends UnityPlayerNativeActivity
6 | {
7 | @Override
8 | public void onRequestPermissionsResult(int requestCode,
9 | String permissions[],
10 | int[] grantResults) {
11 | PermissionPlugin.onRequestPermissionsResult(requestCode, permissions, grantResults);
12 | }
13 | }
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | #
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_ExternalVersionControlSupport: Hidden Meta Files
8 | m_SerializationMode: 2
9 | m_DefaultBehaviorMode: 0
10 | m_SpritePackerMode: 0
11 | m_SpritePackerPaddingPower: 1
12 | m_EtcTextureCompressorBehavior: 1
13 | m_EtcTextureFastCompressor: 1
14 | m_EtcTextureNormalCompressor: 2
15 | m_EtcTextureBestCompressor: 4
16 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
17 | m_ProjectGenerationRootNamespace:
18 | m_UserGeneratedProjectSuffix:
19 | m_CollabEditorSettings:
20 | inProgressEnabled: 1
21 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | #
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/permission-lib.aar.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 928dd6d11c4c9bf45a8273691abf52b7
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 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | google()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.1.4'
10 | classpath 'com.google.gms:google-services:3.0.0'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | jcenter()
20 | google()
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
27 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
10 |
11 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 3
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_EnablePCM: 1
18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
19 | m_AutoSimulation: 1
20 | m_AutoSyncTransforms: 1
21 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion '27.0.3'
6 | defaultConfig {
7 | applicationId 'com.hiyorin.nativeplugin'
8 | minSdkVersion 14
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | productFlavors {
21 | }
22 | }
23 |
24 | dependencies {
25 | implementation fileTree(include: ['*.jar'], dir: 'libs')
26 | implementation 'com.android.support:appcompat-v7:25.4.0'
27 | testImplementation 'junit:junit:4.12'
28 | }
29 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/app/src/androidTest/java/com/hiyorin/nativeplugin/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.nativeplugin;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.hiyorin.nativeplugin", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/src/androidTest/java/com/hiyorin/permission/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.permission;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.hiyorin.permission.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | m_Enabled: 1
7 | m_TestMode: 0
8 | m_TestEventUrl:
9 | m_TestConfigUrl:
10 | m_TestInitMode: 0
11 | CrashReportingSettings:
12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes
13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate
14 | m_Enabled: 0
15 | m_CaptureEditorExceptions: 1
16 | UnityPurchasingSettings:
17 | m_Enabled: 0
18 | m_TestMode: 0
19 | UnityAnalyticsSettings:
20 | m_Enabled: 0
21 | m_InitializeOnStartup: 1
22 | m_TestMode: 0
23 | m_TestEventUrl:
24 | m_TestConfigUrl:
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Examples/PermissionTest.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using UnityEngine;
3 | using Permission;
4 |
5 | namespace Sandbox
6 | {
7 | public class PermissionTest : MonoBehaviour
8 | {
9 | private string _log = null;
10 |
11 | private void OnGUI()
12 | {
13 | var rect = new Rect(0.0f, 0.0f, Screen.width, Screen.height);
14 | GUI.TextArea(rect, _log);
15 | }
16 |
17 | private IEnumerator Start()
18 | {
19 | bool isCheckSuccess = false;
20 | yield return PermissionPlugin.Check(PermissionType.Location, result => isCheckSuccess = result);
21 | if (isCheckSuccess)
22 | {
23 | _log += "Use of the camera is permitted.\n";
24 | }
25 | else
26 | {
27 | _log += "Open permission dialog\n";
28 | PermissionPlugin.Open(PermissionType.Camera);
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 hiyorin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Assets/Editor/ExportPackage.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using UnityEngine;
3 | using UnityEditor;
4 |
5 | public class ExportPackage
6 | {
7 | private readonly static string[] Paths = {
8 | "Assets/Plugins/PermissionPlugin",
9 | };
10 |
11 | private const string ReadMe = "README.md";
12 | private const string License = "LICENSE";
13 |
14 | [MenuItem("Assets/Export PermissionPlugin")]
15 | private static void Export()
16 | {
17 | string readmePath = Path.Combine(Application.dataPath, "Plugins/PermissionPlugin", ReadMe);
18 | string licensePath = Path.Combine(Application.dataPath, "Plugins/PermissionPlugin", License);
19 | File.Copy(Path.Combine(Application.dataPath, "..", ReadMe), readmePath);
20 | File.Copy(Path.Combine(Application.dataPath, "..", License), licensePath);
21 | AssetDatabase.Refresh();
22 |
23 | AssetDatabase.ExportPackage(Paths, "PermissionPlugin-for-Unity.unitypackage", ExportPackageOptions.Recurse);
24 | Debug.Log("Export complete!");
25 |
26 | File.Delete(readmePath);
27 | File.Delete(licensePath);
28 | File.Delete(readmePath + ".meta");
29 | File.Delete(licensePath + ".meta");
30 | AssetDatabase.Refresh();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the ART/Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | out/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio Navigation editor temp files
30 | .navigation/
31 |
32 | # Android Studio captures folder
33 | captures/
34 |
35 | # IntelliJ
36 | *.iml
37 | .idea/workspace.xml
38 | .idea/tasks.xml
39 | .idea/gradle.xml
40 | .idea/assetWizardSettings.xml
41 | .idea/dictionaries
42 | .idea/libraries
43 | .idea/caches
44 |
45 | # Keystore files
46 | # Uncomment the following line if you do not want to check your keystore files in.
47 | #*.jks
48 |
49 | # External native build folder generated in Android Studio 2.2 and later
50 | .externalNativeBuild
51 |
52 | # Google Services (e.g. APIs or Firebase)
53 | google-services.json
54 |
55 | # Freeline
56 | freeline.py
57 | freeline/
58 | freeline_project_description.json
59 |
60 | # fastlane
61 | fastlane/report.xml
62 | fastlane/Preview.html
63 | fastlane/screenshots
64 | fastlane/test_output
65 | fastlane/readme.md
66 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PermissionPlugin
2 | A set of tools for Unity to allow handling Permission for Android and iOS.
3 |
4 | # Install
5 | PermissionPlugin.unitypackage
6 |
7 | # Usage
8 | ```cs
9 | using Permission;
10 | ```
11 |
12 | #### Example: Check permissions.
13 | ```cs
14 | public IEnumerator Example()
15 | {
16 | yield return PermissionPlugin.Check(PermissionType.Camera, result =
17 | {
18 | Debug.Log(result);
19 | });
20 | }
21 | ```
22 |
23 | #### Example: Request permission.
24 | ```cs
25 | public IEnumerator Example()
26 | {
27 | yield return PermissionPlugin.Request(PermissionType.Camera, result =>
28 | {
29 | Debug.Log(result);
30 | });
31 | }
32 | ```
33 |
34 | #### Example: Open permission setting screen.
35 | ```cs
36 | public void Example()
37 | {
38 | PermissionPlugin.Open(PermissionType.Camera);
39 | }
40 | ```
41 |
42 | # AndroidManifest.xml
43 | Replace main Activity.
44 | ```xml
45 |
48 |
2 |
9 |
15 |
16 |
17 |
18 |
19 |
23 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
15 |
16 |
17 |
18 |
19 |
23 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 3
7 | m_Gravity: {x: 0, y: -9.81}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_VelocityIterations: 8
10 | m_PositionIterations: 3
11 | m_VelocityThreshold: 1
12 | m_MaxLinearCorrection: 0.2
13 | m_MaxAngularCorrection: 8
14 | m_MaxTranslationSpeed: 100
15 | m_MaxRotationSpeed: 360
16 | m_BaumgarteScale: 0.2
17 | m_BaumgarteTimeOfImpactScale: 0.75
18 | m_TimeToSleep: 0.5
19 | m_LinearSleepTolerance: 0.01
20 | m_AngularSleepTolerance: 2
21 | m_DefaultContactOffset: 0.01
22 | m_AutoSimulation: 1
23 | m_QueriesHitTriggers: 1
24 | m_QueriesStartInColliders: 1
25 | m_ChangeStopsCallbacks: 0
26 | m_CallbacksOnDisable: 1
27 | m_AutoSyncTransforms: 1
28 | m_AlwaysShowColliders: 0
29 | m_ShowColliderSleep: 1
30 | m_ShowColliderContacts: 0
31 | m_ShowColliderAABB: 0
32 | m_ContactArrowScale: 0.2
33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
38 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.ads": "2.0.8",
4 | "com.unity.analytics": "2.0.16",
5 | "com.unity.package-manager-ui": "1.9.11",
6 | "com.unity.purchasing": "2.0.3",
7 | "com.unity.textmeshpro": "1.2.4",
8 | "com.unity.modules.ai": "1.0.0",
9 | "com.unity.modules.animation": "1.0.0",
10 | "com.unity.modules.assetbundle": "1.0.0",
11 | "com.unity.modules.audio": "1.0.0",
12 | "com.unity.modules.cloth": "1.0.0",
13 | "com.unity.modules.director": "1.0.0",
14 | "com.unity.modules.imageconversion": "1.0.0",
15 | "com.unity.modules.imgui": "1.0.0",
16 | "com.unity.modules.jsonserialize": "1.0.0",
17 | "com.unity.modules.particlesystem": "1.0.0",
18 | "com.unity.modules.physics": "1.0.0",
19 | "com.unity.modules.physics2d": "1.0.0",
20 | "com.unity.modules.screencapture": "1.0.0",
21 | "com.unity.modules.terrain": "1.0.0",
22 | "com.unity.modules.terrainphysics": "1.0.0",
23 | "com.unity.modules.tilemap": "1.0.0",
24 | "com.unity.modules.ui": "1.0.0",
25 | "com.unity.modules.uielements": "1.0.0",
26 | "com.unity.modules.umbra": "1.0.0",
27 | "com.unity.modules.unityanalytics": "1.0.0",
28 | "com.unity.modules.unitywebrequest": "1.0.0",
29 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
30 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
31 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
32 | "com.unity.modules.unitywebrequestwww": "1.0.0",
33 | "com.unity.modules.vehicles": "1.0.0",
34 | "com.unity.modules.video": "1.0.0",
35 | "com.unity.modules.vr": "1.0.0",
36 | "com.unity.modules.wind": "1.0.0",
37 | "com.unity.modules.xr": "1.0.0"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/iOS/PermissionPlugin.mm.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 420d4c54bbc164bac8472960f53e26b8
3 | timeCreated: 1488364134
4 | licenseType: Free
5 | PluginImporter:
6 | serializedVersion: 1
7 | iconMap: {}
8 | executionOrder: {}
9 | isPreloaded: 0
10 | isOverridable: 0
11 | platformData:
12 | Android:
13 | enabled: 0
14 | settings:
15 | CPU: ARMv7
16 | Any:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 1
20 | Exclude Editor: 1
21 | Exclude Linux: 1
22 | Exclude Linux64: 1
23 | Exclude LinuxUniversal: 1
24 | Exclude OSXIntel: 1
25 | Exclude OSXIntel64: 1
26 | Exclude OSXUniversal: 1
27 | Exclude Win: 1
28 | Exclude Win64: 1
29 | Exclude iOS: 0
30 | Editor:
31 | enabled: 0
32 | settings:
33 | CPU: AnyCPU
34 | DefaultValueInitialized: true
35 | OS: AnyOS
36 | Linux:
37 | enabled: 0
38 | settings:
39 | CPU: x86
40 | Linux64:
41 | enabled: 0
42 | settings:
43 | CPU: x86_64
44 | OSXIntel:
45 | enabled: 0
46 | settings:
47 | CPU: AnyCPU
48 | OSXIntel64:
49 | enabled: 0
50 | settings:
51 | CPU: AnyCPU
52 | Win:
53 | enabled: 0
54 | settings:
55 | CPU: AnyCPU
56 | Win64:
57 | enabled: 0
58 | settings:
59 | CPU: AnyCPU
60 | iOS:
61 | enabled: 1
62 | settings:
63 | CompileFlags:
64 | FrameworkDependencies: AssetsLibrary;SafariServices;
65 | tvOS:
66 | enabled: 1
67 | settings: {}
68 | userData:
69 | assetBundleName:
70 | assetBundleVariant:
71 |
--------------------------------------------------------------------------------
/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshProjectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | areas:
8 | - name: Walkable
9 | cost: 1
10 | - name: Not Walkable
11 | cost: 1
12 | - name: Jump
13 | cost: 2
14 | - name:
15 | cost: 1
16 | - name:
17 | cost: 1
18 | - name:
19 | cost: 1
20 | - name:
21 | cost: 1
22 | - name:
23 | cost: 1
24 | - name:
25 | cost: 1
26 | - name:
27 | cost: 1
28 | - name:
29 | cost: 1
30 | - name:
31 | cost: 1
32 | - name:
33 | cost: 1
34 | - name:
35 | cost: 1
36 | - name:
37 | cost: 1
38 | - name:
39 | cost: 1
40 | - name:
41 | cost: 1
42 | - name:
43 | cost: 1
44 | - name:
45 | cost: 1
46 | - name:
47 | cost: 1
48 | - name:
49 | cost: 1
50 | - name:
51 | cost: 1
52 | - name:
53 | cost: 1
54 | - name:
55 | cost: 1
56 | - name:
57 | cost: 1
58 | - name:
59 | cost: 1
60 | - name:
61 | cost: 1
62 | - name:
63 | cost: 1
64 | - name:
65 | cost: 1
66 | - name:
67 | cost: 1
68 | - name:
69 | cost: 1
70 | - name:
71 | cost: 1
72 | m_LastAgentTypeID: -887442657
73 | m_Settings:
74 | - serializedVersion: 2
75 | agentTypeID: 0
76 | agentRadius: 0.5
77 | agentHeight: 2
78 | agentSlope: 45
79 | agentClimb: 0.75
80 | ledgeDropHeight: 0
81 | maxJumpAcrossDistance: 0
82 | minRegionArea: 2
83 | manualCellSize: 0
84 | cellSize: 0.16666667
85 | manualTileSize: 0
86 | tileSize: 256
87 | accuratePlacement: 0
88 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 |
6 | defaultConfig {
7 | minSdkVersion 16
8 | targetSdkVersion 25
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 |
14 | }
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 | }
22 |
23 | dependencies {
24 | implementation fileTree(include: ['*.jar'], dir: 'libs')
25 | implementation 'com.android.support:appcompat-v7:25.2.0'
26 | implementation 'com.android.support:support-core-utils:25.2.0'
27 | testImplementation 'junit:junit:4.12'
28 | androidTestImplementation 'com.android.support.test:runner:1.0.2'
29 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
30 | compileOnly files('/Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/mono/Development/Classes/classes.jar')
31 | }
32 |
33 | task exportAar(type: Copy) {
34 | from('build/outputs/aar/')
35 | into('../../../Assets/Plugins/PermissionPlugin/Plugins/Android/')
36 | include('permission-release.aar')
37 | include('support-core-utils-25.2.0.aar')
38 | include('support-compat-25.2.0.aar')
39 | rename('permission-release.aar', 'permission-lib.aar')
40 | }
41 |
42 | task copyLibs(type: Copy) {
43 | from configurations.compile
44 | into 'build/outputs/aar'
45 | exclude { details -> details.file.name.endsWith("*.jar") }
46 | include "support-core-utils-25.2.0.aar"
47 | include "support-compat-25.2.0.aar"
48 | }
49 |
50 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForEditor.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_EDITOR
2 | using System;
3 | using System.Collections;
4 |
5 | namespace Permission.Internal
6 | {
7 | ///
8 | /// Permission plugin for UnityEditor.
9 | ///
10 | internal class PermissionPluginForEditor : PermissionPlugin.Interface
11 | {
12 | ///
13 | /// Check permissions.
14 | ///
15 | ///
16 | ///
17 | /// CoroutineEnumerator
18 | public override IEnumerator Check(PermissionType permission, Action onResult)
19 | {
20 | if (onResult != null)
21 | onResult(true);
22 | yield break;
23 | }
24 |
25 | ///
26 | /// Request permissions.
27 | ///
28 | ///
29 | ///
30 | /// CoroutineEnumerator
31 | public override IEnumerator Request(PermissionType permission, Action onResult)
32 | {
33 | if (onResult != null)
34 | onResult(true);
35 | yield break;
36 | }
37 |
38 | ///
39 | /// Open permission setting screen.
40 | ///
41 | /// Permission.
42 | public override void Open(PermissionType permission)
43 | {
44 |
45 | }
46 |
47 | ///
48 | /// Androids the request permissions result.
49 | ///
50 | /// Request code.
51 | /// Permissions.
52 | /// Grant results.
53 | public override void AndroidRequestPermissionsResult(int requestCode, string[] permissions, int[] grantResults)
54 | {
55 |
56 | }
57 | }
58 | }
59 | #endif
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/permission/src/main/java/com/hiyorin/permission/PermissionPlugin.java:
--------------------------------------------------------------------------------
1 | package com.hiyorin.permission;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.content.pm.PackageManager;
6 | import android.net.Uri;
7 | import android.provider.Settings;
8 | import android.support.v4.app.ActivityCompat;
9 | import android.support.v4.content.PermissionChecker;
10 |
11 | import com.unity3d.player.UnityPlayer;
12 |
13 | public class PermissionPlugin
14 | {
15 | public final static int RequestPermissions = 10000;
16 |
17 | public static boolean checkSelfPermission(String permissionString)
18 | {
19 | Activity currentActivity = UnityPlayer.currentActivity;
20 | return PermissionChecker.checkSelfPermission(currentActivity, permissionString) != PermissionChecker.PERMISSION_DENIED;
21 | }
22 |
23 | public static void requestSelfPermission(String permissionString)
24 | {
25 | Activity currentActivity = UnityPlayer.currentActivity;
26 | ActivityCompat.requestPermissions(currentActivity, new String[]{permissionString}, RequestPermissions);
27 | }
28 |
29 | public static void openSelfPermission()
30 | {
31 | Activity currentActivity = UnityPlayer.currentActivity;
32 | Intent intent = new Intent();
33 | intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
34 | intent.setData(Uri.fromParts("package", currentActivity.getPackageName(), null));
35 | currentActivity.startActivity(intent);
36 | }
37 |
38 | public static void onRequestPermissionsResult(int requestCode,
39 | String permissions[],
40 | int[] grantResults) {
41 | if (requestCode != PermissionPlugin.RequestPermissions) {
42 | return;
43 | }
44 |
45 | for (int i=0; iNUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/support-compat-25.2.0.aar.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a47f717c09c139649bd61510e0acc74b
3 | timeCreated: 1488509880
4 | licenseType: Free
5 | PluginImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | iconMap: {}
9 | executionOrder: {}
10 | isPreloaded: 0
11 | isOverridable: 0
12 | platformData:
13 | - first:
14 | '': Any
15 | second:
16 | enabled: 0
17 | settings:
18 | Exclude Android: 0
19 | Exclude Editor: 1
20 | Exclude Linux: 1
21 | Exclude Linux64: 1
22 | Exclude LinuxUniversal: 1
23 | Exclude OSXIntel: 1
24 | Exclude OSXIntel64: 1
25 | Exclude OSXUniversal: 1
26 | Exclude Win: 1
27 | Exclude Win64: 1
28 | Exclude iOS: 1
29 | - first:
30 | Android: Android
31 | second:
32 | enabled: 1
33 | settings:
34 | CPU: ARMv7
35 | - first:
36 | Any:
37 | second:
38 | enabled: 0
39 | settings:
40 | Exclude Android: 1
41 | Exclude Editor: 1
42 | Exclude Linux: 1
43 | Exclude Linux64: 1
44 | Exclude LinuxUniversal: 1
45 | Exclude OSXIntel: 1
46 | Exclude OSXIntel64: 1
47 | Exclude OSXUniversal: 1
48 | Exclude Win: 1
49 | Exclude Win64: 1
50 | Exclude iOS: 1
51 | - first:
52 | Editor: Editor
53 | second:
54 | enabled: 0
55 | settings:
56 | CPU: AnyCPU
57 | DefaultValueInitialized: true
58 | OS: AnyOS
59 | - first:
60 | Facebook: Win
61 | second:
62 | enabled: 0
63 | settings:
64 | CPU: AnyCPU
65 | - first:
66 | Facebook: Win64
67 | second:
68 | enabled: 0
69 | settings:
70 | CPU: AnyCPU
71 | - first:
72 | Standalone: Linux
73 | second:
74 | enabled: 0
75 | settings:
76 | CPU: x86
77 | - first:
78 | Standalone: Linux64
79 | second:
80 | enabled: 0
81 | settings:
82 | CPU: x86_64
83 | - first:
84 | Standalone: OSXIntel
85 | second:
86 | enabled: 0
87 | settings:
88 | CPU: AnyCPU
89 | - first:
90 | Standalone: OSXIntel64
91 | second:
92 | enabled: 0
93 | settings:
94 | CPU: AnyCPU
95 | - first:
96 | Standalone: Win
97 | second:
98 | enabled: 0
99 | settings:
100 | CPU: AnyCPU
101 | - first:
102 | Standalone: Win64
103 | second:
104 | enabled: 0
105 | settings:
106 | CPU: AnyCPU
107 | - first:
108 | iPhone: iOS
109 | second:
110 | enabled: 0
111 | settings:
112 | CompileFlags:
113 | FrameworkDependencies:
114 | userData:
115 | assetBundleName:
116 | assetBundleVariant:
117 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/Android/support-core-utils-25.2.0.aar.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 750370177b55c8d4eb407e713747dc3f
3 | timeCreated: 1488427833
4 | licenseType: Free
5 | PluginImporter:
6 | externalObjects: {}
7 | serializedVersion: 2
8 | iconMap: {}
9 | executionOrder: {}
10 | isPreloaded: 0
11 | isOverridable: 0
12 | platformData:
13 | - first:
14 | '': Any
15 | second:
16 | enabled: 0
17 | settings:
18 | Exclude Android: 0
19 | Exclude Editor: 1
20 | Exclude Linux: 1
21 | Exclude Linux64: 1
22 | Exclude LinuxUniversal: 1
23 | Exclude OSXIntel: 1
24 | Exclude OSXIntel64: 1
25 | Exclude OSXUniversal: 1
26 | Exclude Win: 1
27 | Exclude Win64: 1
28 | Exclude iOS: 1
29 | - first:
30 | Android: Android
31 | second:
32 | enabled: 1
33 | settings:
34 | CPU: ARMv7
35 | - first:
36 | Any:
37 | second:
38 | enabled: 0
39 | settings:
40 | Exclude Android: 1
41 | Exclude Editor: 1
42 | Exclude Linux: 1
43 | Exclude Linux64: 1
44 | Exclude LinuxUniversal: 1
45 | Exclude OSXIntel: 1
46 | Exclude OSXIntel64: 1
47 | Exclude OSXUniversal: 1
48 | Exclude Win: 1
49 | Exclude Win64: 1
50 | Exclude iOS: 1
51 | - first:
52 | Editor: Editor
53 | second:
54 | enabled: 0
55 | settings:
56 | CPU: AnyCPU
57 | DefaultValueInitialized: true
58 | OS: AnyOS
59 | - first:
60 | Facebook: Win
61 | second:
62 | enabled: 0
63 | settings:
64 | CPU: AnyCPU
65 | - first:
66 | Facebook: Win64
67 | second:
68 | enabled: 0
69 | settings:
70 | CPU: AnyCPU
71 | - first:
72 | Standalone: Linux
73 | second:
74 | enabled: 0
75 | settings:
76 | CPU: x86
77 | - first:
78 | Standalone: Linux64
79 | second:
80 | enabled: 0
81 | settings:
82 | CPU: x86_64
83 | - first:
84 | Standalone: OSXIntel
85 | second:
86 | enabled: 0
87 | settings:
88 | CPU: AnyCPU
89 | - first:
90 | Standalone: OSXIntel64
91 | second:
92 | enabled: 0
93 | settings:
94 | CPU: AnyCPU
95 | - first:
96 | Standalone: Win
97 | second:
98 | enabled: 0
99 | settings:
100 | CPU: AnyCPU
101 | - first:
102 | Standalone: Win64
103 | second:
104 | enabled: 0
105 | settings:
106 | CPU: AnyCPU
107 | - first:
108 | iPhone: iOS
109 | second:
110 | enabled: 0
111 | settings:
112 | CompileFlags:
113 | FrameworkDependencies:
114 | userData:
115 | assetBundleName:
116 | assetBundleVariant:
117 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Plugins/iOS/PermissionPlugin.mm:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #include "UnityInterface.h"
4 | #import
5 |
6 | void SendMessage(bool isSuccess, int type)
7 | {
8 | NSString* resultString = [NSString stringWithFormat:@"%d", type];
9 | const char* result = [resultString UTF8String];
10 | if (isSuccess) {
11 | UnitySendMessage("PermissionPlugin", "OnRequestPermissionSuccessed", result);
12 | } else {
13 | UnitySendMessage("PermissionPlugin", "OnRequestPermissionFailed", result);
14 | }
15 | }
16 |
17 | extern "C" bool _CheckPermission (int type)
18 | {
19 | if (type == 0) {
20 | AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
21 | return status == AVAuthorizationStatusAuthorized;
22 | } else if (type == 1) {
23 | ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
24 | return status == ALAuthorizationStatusAuthorized;
25 | } else {
26 | return true;
27 | }
28 | }
29 |
30 | extern "C" bool _CheckPermissionNotDetermined (int type)
31 | {
32 | if (type == 0) {
33 | AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
34 | return status == AVAuthorizationStatusNotDetermined;
35 | } else if (type == 1) {
36 | ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
37 | return status == AVAuthorizationStatusNotDetermined;
38 | } else {
39 | return true;
40 | }
41 | }
42 |
43 | extern "C" void _RequestPermission (int type)
44 | {
45 | if (type == 0) {
46 | [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
47 | SendMessage(granted, type);
48 | }];
49 | } else if (type == 1) {
50 | ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
51 | [library enumerateGroupsWithTypes:ALAssetsGroupAll
52 | usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
53 | SendMessage(true, type);
54 | }
55 | failureBlock:^(NSError *error) {
56 | SendMessage(false, type);
57 | }];
58 | } else {
59 | SendMessage(true, type);
60 | }
61 | }
62 |
63 | extern "C" void _OpenPermission (const char* urlNative)
64 | {
65 | NSString* urlString = [NSString stringWithCString: urlNative encoding:NSUTF8StringEncoding];
66 | if ([UIApplication instancesRespondToSelector:NSSelectorFromString(@"openURL:options:completionHandler:")]) {
67 | urlString = [NSString stringWithFormat:@"%@%@", @"App-Prefs:",urlString];
68 | } else {
69 | urlString = [NSString stringWithFormat:@"%@%@", @"prefs:", urlString];
70 | }
71 |
72 | NSURL* url = [NSURL URLWithString:urlString];
73 | [[UIApplication sharedApplication] openURL:url];
74 | }
75 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForIOS.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_IOS
2 | using UnityEngine;
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.Runtime.InteropServices;
7 |
8 | namespace Permission.Internal
9 | {
10 | ///
11 | /// Permission plugin for iOS.
12 | ///
13 | internal class PermissionPluginForIOS : PermissionPlugin.Interface
14 | {
15 | [DllImport("__Internal")]
16 | private static extern bool _CheckPermission(int type);
17 |
18 | [DllImport("__Internal")]
19 | private static extern bool _CheckPermissionNotDetermined(int Type);
20 |
21 | [DllImport("__Internal")]
22 | private static extern void _RequestPermission(int type);
23 |
24 | [DllImport("__Internal")]
25 | private static extern void _OpenPermission(string url);
26 |
27 | private readonly Dictionary _permissionResult = new Dictionary();
28 |
29 | private bool _isRequestRunning = false;
30 |
31 | ///
32 | /// Check permissions.
33 | ///
34 | ///
35 | ///
36 | /// CoroutineEnumerator
37 | public override IEnumerator Check(PermissionType permission, Action onResult)
38 | {
39 | if (_CheckPermissionNotDetermined((int)permission))
40 | {
41 | yield return Request(permission, onResult);
42 | }
43 | else if (onResult != null)
44 | {
45 | onResult(_CheckPermission((int)permission));
46 | }
47 | }
48 |
49 | ///
50 | /// Request permissions.
51 | ///
52 | ///
53 | ///
54 | /// CoroutineEnumerator
55 | public override IEnumerator Request(PermissionType permission, Action onResult)
56 | {
57 | if (_isRequestRunning)
58 | {
59 | Debug.LogError("PermissionPluginForIOS request running !");
60 | yield break;
61 | }
62 |
63 | _RequestPermission((int)permission);
64 |
65 | _isRequestRunning = true;
66 | yield return new WaitUntil(() => _permissionResult.ContainsKey((int)permission));
67 | if (onResult != null)
68 | onResult(_permissionResult [(int)permission]);
69 | _permissionResult.Remove((int)permission);
70 | _isRequestRunning = false;
71 | }
72 |
73 | ///
74 | /// Open permission setting screen.
75 | ///
76 | /// Permission.
77 | public override void Open(PermissionType permission)
78 | {
79 | switch (permission)
80 | {
81 | case PermissionType.Camera:
82 | _OpenPermission("root=Privacy&path=CAMERA");
83 | break;
84 | case PermissionType.Gallery:
85 | _OpenPermission("root=Privacy&path=PHOTOS");
86 | break;
87 | default:
88 | Debug.LogErrorFormat("{0} is undefined.", permission);
89 | break;
90 | }
91 | }
92 |
93 | ///
94 | /// Androids the request permissions result.
95 | ///
96 | /// Request code.
97 | /// Permissions.
98 | /// Grant results.
99 | public override void AndroidRequestPermissionsResult(int requestCode, string[] permissions, int[] grantResults)
100 | {
101 |
102 | }
103 |
104 | ///
105 | /// Permited. requestSelfPermission callback.
106 | /// UnitySendNessage from native.
107 | ///
108 | ///
109 | private void OnRequestPermissionSuccessed(string typeString)
110 | {
111 | int type = int.Parse(typeString);
112 | _permissionResult.Add(type, true);
113 | }
114 |
115 | ///
116 | /// Not permited. requestSelfPermission callback.
117 | /// UnitySendMessage from native.
118 | ///
119 | ///
120 | private void OnRequestPermissionFailed(string typeString)
121 | {
122 | int type = int.Parse(typeString);
123 | _permissionResult.Add(type, false);
124 | }
125 | }
126 | }
127 | #endif
128 |
--------------------------------------------------------------------------------
/AndroidProject/NativePlugin/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Very Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | blendWeights: 1
22 | textureQuality: 1
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.3
31 | maximumLODLevel: 0
32 | particleRaycastBudget: 4
33 | asyncUploadTimeSlice: 2
34 | asyncUploadBufferSize: 4
35 | resolutionScalingFixedDPIFactor: 1
36 | excludedTargetPlatforms: []
37 | - serializedVersion: 2
38 | name: Low
39 | pixelLightCount: 0
40 | shadows: 0
41 | shadowResolution: 0
42 | shadowProjection: 1
43 | shadowCascades: 1
44 | shadowDistance: 20
45 | shadowNearPlaneOffset: 3
46 | shadowCascade2Split: 0.33333334
47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
48 | shadowmaskMode: 0
49 | blendWeights: 2
50 | textureQuality: 0
51 | anisotropicTextures: 0
52 | antiAliasing: 0
53 | softParticles: 0
54 | softVegetation: 0
55 | realtimeReflectionProbes: 0
56 | billboardsFaceCameraPosition: 0
57 | vSyncCount: 0
58 | lodBias: 0.4
59 | maximumLODLevel: 0
60 | particleRaycastBudget: 16
61 | asyncUploadTimeSlice: 2
62 | asyncUploadBufferSize: 4
63 | resolutionScalingFixedDPIFactor: 1
64 | excludedTargetPlatforms: []
65 | - serializedVersion: 2
66 | name: Medium
67 | pixelLightCount: 1
68 | shadows: 1
69 | shadowResolution: 0
70 | shadowProjection: 1
71 | shadowCascades: 1
72 | shadowDistance: 20
73 | shadowNearPlaneOffset: 3
74 | shadowCascade2Split: 0.33333334
75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
76 | shadowmaskMode: 0
77 | blendWeights: 2
78 | textureQuality: 0
79 | anisotropicTextures: 1
80 | antiAliasing: 0
81 | softParticles: 0
82 | softVegetation: 0
83 | realtimeReflectionProbes: 0
84 | billboardsFaceCameraPosition: 0
85 | vSyncCount: 1
86 | lodBias: 0.7
87 | maximumLODLevel: 0
88 | particleRaycastBudget: 64
89 | asyncUploadTimeSlice: 2
90 | asyncUploadBufferSize: 4
91 | resolutionScalingFixedDPIFactor: 1
92 | excludedTargetPlatforms: []
93 | - serializedVersion: 2
94 | name: High
95 | pixelLightCount: 2
96 | shadows: 2
97 | shadowResolution: 1
98 | shadowProjection: 1
99 | shadowCascades: 2
100 | shadowDistance: 40
101 | shadowNearPlaneOffset: 3
102 | shadowCascade2Split: 0.33333334
103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
104 | shadowmaskMode: 1
105 | blendWeights: 2
106 | textureQuality: 0
107 | anisotropicTextures: 1
108 | antiAliasing: 0
109 | softParticles: 0
110 | softVegetation: 1
111 | realtimeReflectionProbes: 1
112 | billboardsFaceCameraPosition: 1
113 | vSyncCount: 1
114 | lodBias: 1
115 | maximumLODLevel: 0
116 | particleRaycastBudget: 256
117 | asyncUploadTimeSlice: 2
118 | asyncUploadBufferSize: 4
119 | resolutionScalingFixedDPIFactor: 1
120 | excludedTargetPlatforms: []
121 | - serializedVersion: 2
122 | name: Very High
123 | pixelLightCount: 3
124 | shadows: 2
125 | shadowResolution: 2
126 | shadowProjection: 1
127 | shadowCascades: 2
128 | shadowDistance: 70
129 | shadowNearPlaneOffset: 3
130 | shadowCascade2Split: 0.33333334
131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
132 | shadowmaskMode: 1
133 | blendWeights: 4
134 | textureQuality: 0
135 | anisotropicTextures: 2
136 | antiAliasing: 2
137 | softParticles: 1
138 | softVegetation: 1
139 | realtimeReflectionProbes: 1
140 | billboardsFaceCameraPosition: 1
141 | vSyncCount: 1
142 | lodBias: 1.5
143 | maximumLODLevel: 0
144 | particleRaycastBudget: 1024
145 | asyncUploadTimeSlice: 2
146 | asyncUploadBufferSize: 4
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Ultra
151 | pixelLightCount: 4
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 4
156 | shadowDistance: 150
157 | shadowNearPlaneOffset: 3
158 | shadowCascade2Split: 0.33333334
159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
160 | shadowmaskMode: 1
161 | blendWeights: 4
162 | textureQuality: 0
163 | anisotropicTextures: 2
164 | antiAliasing: 2
165 | softParticles: 1
166 | softVegetation: 1
167 | realtimeReflectionProbes: 1
168 | billboardsFaceCameraPosition: 1
169 | vSyncCount: 1
170 | lodBias: 2
171 | maximumLODLevel: 0
172 | particleRaycastBudget: 4096
173 | asyncUploadTimeSlice: 2
174 | asyncUploadBufferSize: 4
175 | resolutionScalingFixedDPIFactor: 1
176 | excludedTargetPlatforms: []
177 | m_PerPlatformDefaultQuality:
178 | Android: 2
179 | Nintendo 3DS: 5
180 | Nintendo Switch: 5
181 | PS4: 5
182 | PSM: 5
183 | PSP2: 2
184 | Samsung TV: 2
185 | Standalone: 5
186 | Tizen: 2
187 | WebGL: 3
188 | WiiU: 5
189 | Windows Store Apps: 5
190 | XboxOne: 5
191 | iPhone: 2
192 | tvOS: 2
193 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/PermissionPlugin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using UnityEngine;
4 | using Permission.Internal;
5 |
6 | namespace Permission
7 | {
8 | ///
9 | /// Permissino plugin.
10 | ///
11 | public sealed class PermissionPlugin : MonoBehaviour
12 | {
13 | ///
14 | /// Interface per platform.
15 | ///
16 | public abstract class Interface : MonoBehaviour
17 | {
18 | ///
19 | /// Check permissions.
20 | ///
21 | ///
22 | ///
23 | /// CoroutineEnumerator
24 | public abstract IEnumerator Check(PermissionType permission, Action onResult);
25 |
26 | ///
27 | /// Request permissions.
28 | ///
29 | ///
30 | ///
31 | /// CoroutineEnumerator
32 | public abstract IEnumerator Request(PermissionType permission, Action onResult);
33 |
34 | ///
35 | /// Open permission setting screen.
36 | ///
37 | /// Permission.
38 | public abstract void Open(PermissionType permission);
39 |
40 | ///
41 | /// Androids the request permissions result.
42 | ///
43 | /// Request code.
44 | /// Permissions.
45 | /// Grant results.
46 | public abstract void AndroidRequestPermissionsResult(int requestCode, string[] permissions, int[] grantResults);
47 | }
48 |
49 | private static PermissionPlugin _instance = null;
50 | private static bool _isInitialized = false;
51 | private static bool _isDestroyed = false;
52 |
53 | private static PermissionPlugin Instance {
54 | get {
55 | if (!_isDestroyed && _instance == null)
56 | {
57 | _instance = FindObjectOfType();
58 | if (_instance == null)
59 | {
60 | GameObject gameObject = new GameObject(typeof(PermissionPlugin).Name);
61 | _instance = gameObject.AddComponent();
62 | _instance.Initialize();
63 | }
64 | }
65 | return _instance;
66 | }
67 | }
68 |
69 | ///
70 | /// Check permissions.
71 | ///
72 | ///
73 | ///
74 | /// CoroutineEnumerator
75 | public static IEnumerator Check(PermissionType permission, Action onResult)
76 | {
77 | if (Instance != null)
78 | yield return Instance._interface.Check(permission, onResult);
79 | else
80 | yield break;
81 | }
82 |
83 | ///
84 | /// Request permissions.
85 | ///
86 | ///
87 | ///
88 | /// CoroutineEnumerator
89 | public static IEnumerator Request(PermissionType permission, Action onResult)
90 | {
91 | if (Instance != null)
92 | yield return Instance._interface.Request(permission, onResult);
93 | else
94 | yield break;
95 | }
96 |
97 | ///
98 | /// Open permission setting screen.
99 | ///
100 | /// Permission.
101 | public static void Open(PermissionType permission)
102 | {
103 | if (Instance != null)
104 | Instance._interface.Open(permission);
105 | }
106 |
107 | ///
108 | /// Androids the request permissions result.
109 | ///
110 | /// Request code.
111 | /// Permissions.
112 | /// Grant results.
113 | public static void AndroidRequestPermissionsResult(int requestCode, string[] permissions, int[] grantResults)
114 | {
115 | if (Instance != null)
116 | Instance._interface.AndroidRequestPermissionsResult(requestCode, permissions, grantResults);
117 | }
118 |
119 | private Interface _interface;
120 |
121 | private void Awake()
122 | {
123 | if (_instance == null)
124 | _instance = gameObject.GetComponent();
125 | else if (_instance != this)
126 | {
127 | _instance.OnDestroy();
128 | _instance = gameObject.GetComponent();
129 | }
130 |
131 | DontDestroyOnLoad(this);
132 | Initialize();
133 | }
134 |
135 | private void OnDestroy()
136 | {
137 | if (this == _instance)
138 | {
139 | _instance = null;
140 | _isDestroyed = true;
141 | }
142 | Destroy(this);
143 | }
144 |
145 | private void Initialize()
146 | {
147 | if (_isInitialized)
148 | return;
149 | _isInitialized = true;
150 |
151 | _interface =
152 | #if UNITY_EDITOR
153 | gameObject.AddComponent();
154 | #elif UNITY_ANDROID
155 | gameObject.AddComponent();
156 | #elif UNITY_IOS
157 | gameObject.AddComponent();
158 | #else
159 | null;
160 | Debug.unityLogger.LogError(GetType().Name, "This platform not supported.");
161 | #endif
162 | }
163 | }
164 | }
165 |
--------------------------------------------------------------------------------
/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!13 &1
4 | InputManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Axes:
8 | - serializedVersion: 3
9 | m_Name: Horizontal
10 | descriptiveName:
11 | descriptiveNegativeName:
12 | negativeButton: left
13 | positiveButton: right
14 | altNegativeButton: a
15 | altPositiveButton: d
16 | gravity: 3
17 | dead: 0.001
18 | sensitivity: 3
19 | snap: 1
20 | invert: 0
21 | type: 0
22 | axis: 0
23 | joyNum: 0
24 | - serializedVersion: 3
25 | m_Name: Vertical
26 | descriptiveName:
27 | descriptiveNegativeName:
28 | negativeButton: down
29 | positiveButton: up
30 | altNegativeButton: s
31 | altPositiveButton: w
32 | gravity: 3
33 | dead: 0.001
34 | sensitivity: 3
35 | snap: 1
36 | invert: 0
37 | type: 0
38 | axis: 0
39 | joyNum: 0
40 | - serializedVersion: 3
41 | m_Name: Fire1
42 | descriptiveName:
43 | descriptiveNegativeName:
44 | negativeButton:
45 | positiveButton: left ctrl
46 | altNegativeButton:
47 | altPositiveButton: mouse 0
48 | gravity: 1000
49 | dead: 0.001
50 | sensitivity: 1000
51 | snap: 0
52 | invert: 0
53 | type: 0
54 | axis: 0
55 | joyNum: 0
56 | - serializedVersion: 3
57 | m_Name: Fire2
58 | descriptiveName:
59 | descriptiveNegativeName:
60 | negativeButton:
61 | positiveButton: left alt
62 | altNegativeButton:
63 | altPositiveButton: mouse 1
64 | gravity: 1000
65 | dead: 0.001
66 | sensitivity: 1000
67 | snap: 0
68 | invert: 0
69 | type: 0
70 | axis: 0
71 | joyNum: 0
72 | - serializedVersion: 3
73 | m_Name: Fire3
74 | descriptiveName:
75 | descriptiveNegativeName:
76 | negativeButton:
77 | positiveButton: left shift
78 | altNegativeButton:
79 | altPositiveButton: mouse 2
80 | gravity: 1000
81 | dead: 0.001
82 | sensitivity: 1000
83 | snap: 0
84 | invert: 0
85 | type: 0
86 | axis: 0
87 | joyNum: 0
88 | - serializedVersion: 3
89 | m_Name: Jump
90 | descriptiveName:
91 | descriptiveNegativeName:
92 | negativeButton:
93 | positiveButton: space
94 | altNegativeButton:
95 | altPositiveButton:
96 | gravity: 1000
97 | dead: 0.001
98 | sensitivity: 1000
99 | snap: 0
100 | invert: 0
101 | type: 0
102 | axis: 0
103 | joyNum: 0
104 | - serializedVersion: 3
105 | m_Name: Mouse X
106 | descriptiveName:
107 | descriptiveNegativeName:
108 | negativeButton:
109 | positiveButton:
110 | altNegativeButton:
111 | altPositiveButton:
112 | gravity: 0
113 | dead: 0
114 | sensitivity: 0.1
115 | snap: 0
116 | invert: 0
117 | type: 1
118 | axis: 0
119 | joyNum: 0
120 | - serializedVersion: 3
121 | m_Name: Mouse Y
122 | descriptiveName:
123 | descriptiveNegativeName:
124 | negativeButton:
125 | positiveButton:
126 | altNegativeButton:
127 | altPositiveButton:
128 | gravity: 0
129 | dead: 0
130 | sensitivity: 0.1
131 | snap: 0
132 | invert: 0
133 | type: 1
134 | axis: 1
135 | joyNum: 0
136 | - serializedVersion: 3
137 | m_Name: Mouse ScrollWheel
138 | descriptiveName:
139 | descriptiveNegativeName:
140 | negativeButton:
141 | positiveButton:
142 | altNegativeButton:
143 | altPositiveButton:
144 | gravity: 0
145 | dead: 0
146 | sensitivity: 0.1
147 | snap: 0
148 | invert: 0
149 | type: 1
150 | axis: 2
151 | joyNum: 0
152 | - serializedVersion: 3
153 | m_Name: Horizontal
154 | descriptiveName:
155 | descriptiveNegativeName:
156 | negativeButton:
157 | positiveButton:
158 | altNegativeButton:
159 | altPositiveButton:
160 | gravity: 0
161 | dead: 0.19
162 | sensitivity: 1
163 | snap: 0
164 | invert: 0
165 | type: 2
166 | axis: 0
167 | joyNum: 0
168 | - serializedVersion: 3
169 | m_Name: Vertical
170 | descriptiveName:
171 | descriptiveNegativeName:
172 | negativeButton:
173 | positiveButton:
174 | altNegativeButton:
175 | altPositiveButton:
176 | gravity: 0
177 | dead: 0.19
178 | sensitivity: 1
179 | snap: 0
180 | invert: 1
181 | type: 2
182 | axis: 1
183 | joyNum: 0
184 | - serializedVersion: 3
185 | m_Name: Fire1
186 | descriptiveName:
187 | descriptiveNegativeName:
188 | negativeButton:
189 | positiveButton: joystick button 0
190 | altNegativeButton:
191 | altPositiveButton:
192 | gravity: 1000
193 | dead: 0.001
194 | sensitivity: 1000
195 | snap: 0
196 | invert: 0
197 | type: 0
198 | axis: 0
199 | joyNum: 0
200 | - serializedVersion: 3
201 | m_Name: Fire2
202 | descriptiveName:
203 | descriptiveNegativeName:
204 | negativeButton:
205 | positiveButton: joystick button 1
206 | altNegativeButton:
207 | altPositiveButton:
208 | gravity: 1000
209 | dead: 0.001
210 | sensitivity: 1000
211 | snap: 0
212 | invert: 0
213 | type: 0
214 | axis: 0
215 | joyNum: 0
216 | - serializedVersion: 3
217 | m_Name: Fire3
218 | descriptiveName:
219 | descriptiveNegativeName:
220 | negativeButton:
221 | positiveButton: joystick button 2
222 | altNegativeButton:
223 | altPositiveButton:
224 | gravity: 1000
225 | dead: 0.001
226 | sensitivity: 1000
227 | snap: 0
228 | invert: 0
229 | type: 0
230 | axis: 0
231 | joyNum: 0
232 | - serializedVersion: 3
233 | m_Name: Jump
234 | descriptiveName:
235 | descriptiveNegativeName:
236 | negativeButton:
237 | positiveButton: joystick button 3
238 | altNegativeButton:
239 | altPositiveButton:
240 | gravity: 1000
241 | dead: 0.001
242 | sensitivity: 1000
243 | snap: 0
244 | invert: 0
245 | type: 0
246 | axis: 0
247 | joyNum: 0
248 | - serializedVersion: 3
249 | m_Name: Submit
250 | descriptiveName:
251 | descriptiveNegativeName:
252 | negativeButton:
253 | positiveButton: return
254 | altNegativeButton:
255 | altPositiveButton: joystick button 0
256 | gravity: 1000
257 | dead: 0.001
258 | sensitivity: 1000
259 | snap: 0
260 | invert: 0
261 | type: 0
262 | axis: 0
263 | joyNum: 0
264 | - serializedVersion: 3
265 | m_Name: Submit
266 | descriptiveName:
267 | descriptiveNegativeName:
268 | negativeButton:
269 | positiveButton: enter
270 | altNegativeButton:
271 | altPositiveButton: space
272 | gravity: 1000
273 | dead: 0.001
274 | sensitivity: 1000
275 | snap: 0
276 | invert: 0
277 | type: 0
278 | axis: 0
279 | joyNum: 0
280 | - serializedVersion: 3
281 | m_Name: Cancel
282 | descriptiveName:
283 | descriptiveNegativeName:
284 | negativeButton:
285 | positiveButton: escape
286 | altNegativeButton:
287 | altPositiveButton: joystick button 1
288 | gravity: 1000
289 | dead: 0.001
290 | sensitivity: 1000
291 | snap: 0
292 | invert: 0
293 | type: 0
294 | axis: 0
295 | joyNum: 0
296 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Scripts/Internal/PermissionPluginForAndroid.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_ANDROID
2 | using UnityEngine;
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 |
7 | namespace Permission.Internal
8 | {
9 | ///
10 | /// Permission plugin for Android.
11 | ///
12 | internal class PermissionPluginForAndroid : PermissionPlugin.Interface
13 | {
14 | private const string ClassName = "com.hiyorin.permission.PermissionPlugin";
15 |
16 | private const string PermissionCamera = "android.permission.CAMERA";
17 | private const string PermissionLocation = "android.permission.ACCESS_FINE_LOCATION";
18 | private const string PermissionBluetooth = "android.permission.BLUETOOTH";
19 | private const string PermissionStorage = "android.permission.WRITE_EXTERNAL_STORAGE";
20 |
21 | private readonly Dictionary _permissionResult = new Dictionary();
22 |
23 | private bool _isRequestRunning = false;
24 |
25 | ///
26 | /// Check permissions.
27 | ///
28 | ///
29 | ///
30 | /// CoroutineEnumerator
31 | public override IEnumerator Check(PermissionType permission, Action onResult)
32 | {
33 | string permissionString = string.Empty;
34 |
35 | switch (permission)
36 | {
37 | case PermissionType.Camera:
38 | permissionString = PermissionCamera;
39 | break;
40 | case PermissionType.Gallery:
41 | if (onResult != null)
42 | onResult(true);
43 | yield break;
44 | case PermissionType.Location:
45 | permissionString = PermissionLocation;
46 | break;
47 | case PermissionType.Bluetooth:
48 | permissionString = PermissionBluetooth;
49 | break;
50 | case PermissionType.Storage:
51 | permissionString = PermissionStorage;
52 | break;
53 | default:
54 | Debug.LogErrorFormat("{0} is undefined.", permission);
55 | if (onResult != null)
56 | onResult(false);
57 | yield break;
58 | }
59 |
60 | using (AndroidJavaClass plugin = new AndroidJavaClass(ClassName))
61 | {
62 | bool isSuccess = plugin.CallStatic("checkSelfPermission", permissionString);
63 | if (!isSuccess && PlayerPrefs.GetInt(permissionString, 0) == 0)
64 | {
65 | yield return Request(permission, isRequestSuccess => {
66 | if (!isRequestSuccess)
67 | PlayerPrefs.SetInt(permissionString, 1);
68 | if (onResult != null)
69 | onResult(isRequestSuccess);
70 | });
71 | }
72 | else if (onResult != null)
73 | {
74 | onResult(isSuccess);
75 | }
76 | }
77 | }
78 |
79 | ///
80 | /// Request permissions.
81 | ///
82 | ///
83 | ///
84 | /// CoroutineEnumerator
85 | public override IEnumerator Request(PermissionType permission, Action onResult)
86 | {
87 | if (_isRequestRunning)
88 | {
89 | Debug.LogError("PermissionPluginForAndroid request running !");
90 | yield break;
91 | }
92 |
93 | string permissionString = string.Empty;
94 |
95 | switch (permission)
96 | {
97 | case PermissionType.Camera:
98 | permissionString = PermissionCamera;
99 | break;
100 | case PermissionType.Gallery:
101 | if (onResult != null)
102 | onResult(true);
103 | yield break;
104 | case PermissionType.Location:
105 | permissionString = PermissionLocation;
106 | break;
107 | case PermissionType.Bluetooth:
108 | permissionString = PermissionBluetooth;
109 | break;
110 | case PermissionType.Storage:
111 | permissionString = PermissionStorage;
112 | break;
113 | default:
114 | Debug.LogErrorFormat("{0} is undefined.", permission);
115 | if (onResult != null)
116 | onResult(false);
117 | yield break;
118 | }
119 |
120 | using (AndroidJavaClass plugin = new AndroidJavaClass(ClassName))
121 | {
122 | plugin.CallStatic("requestSelfPermission", permissionString);
123 | }
124 |
125 | _isRequestRunning = true;
126 | yield return new WaitUntil(() => _permissionResult.ContainsKey(permissionString));
127 | if (onResult != null)
128 | onResult(_permissionResult [permissionString]);
129 | _permissionResult.Remove(permissionString);
130 | _isRequestRunning = false;
131 | }
132 |
133 | ///
134 | /// Open permission setting screen.
135 | ///
136 | /// Permission.
137 | public override void Open(PermissionType permission)
138 | {
139 | using (AndroidJavaClass plugin = new AndroidJavaClass(ClassName))
140 | {
141 | plugin.CallStatic("openSelfPermission");
142 | }
143 | }
144 |
145 | ///
146 | /// Androids the request permissions result.
147 | ///
148 | /// Request code.
149 | /// Permissions.
150 | /// Grant results.
151 | public override void AndroidRequestPermissionsResult(int requestCode, string[] permissions, int[] grantResults)
152 | {
153 | using (AndroidJavaClass plugin = new AndroidJavaClass(ClassName))
154 | {
155 | plugin.CallStatic("onRequestPermissionsResult", requestCode, permissions, grantResults);
156 | }
157 | }
158 |
159 | ///
160 | /// Permited. requestSelfPermission callback.
161 | /// UnitySendNessage from native.
162 | ///
163 | ///
164 | private void OnRequestPermissionSuccessed(string permissoinSting)
165 | {
166 | _permissionResult.Add(permissoinSting, true);
167 | }
168 |
169 | ///
170 | /// Not permited. requestSelfPermission callback.
171 | /// UnitySendMessage from native.
172 | ///
173 | ///
174 | private void OnRequestPermissionFailed(string permissionString)
175 | {
176 | _permissionResult.Add(permissionString, false);
177 | }
178 | }
179 | }
180 | #endif
181 |
--------------------------------------------------------------------------------
/Assets/Plugins/PermissionPlugin/Examples/PermissionTest.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: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 0
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.37311947, g: 0.38074005, b: 0.35872722, a: 1}
42 | --- !u!157 &3
43 | LightmapSettings:
44 | m_ObjectHideFlags: 0
45 | serializedVersion: 11
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: 1
55 | m_EnableRealtimeLightmaps: 1
56 | m_LightmapEditorSettings:
57 | serializedVersion: 9
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: 1
75 | m_BakeBackend: 0
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: 0
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_ShowResolutionOverlay: 1
92 | m_LightingDataAsset: {fileID: 0}
93 | m_UseShadowmask: 0
94 | --- !u!196 &4
95 | NavMeshSettings:
96 | serializedVersion: 2
97 | m_ObjectHideFlags: 0
98 | m_BuildSettings:
99 | serializedVersion: 2
100 | agentTypeID: 0
101 | agentRadius: 0.5
102 | agentHeight: 2
103 | agentSlope: 45
104 | agentClimb: 0.4
105 | ledgeDropHeight: 0
106 | maxJumpAcrossDistance: 0
107 | minRegionArea: 2
108 | manualCellSize: 0
109 | cellSize: 0.16666667
110 | manualTileSize: 0
111 | tileSize: 256
112 | accuratePlacement: 0
113 | debug:
114 | m_Flags: 0
115 | m_NavMeshData: {fileID: 0}
116 | --- !u!1 &821223649
117 | GameObject:
118 | m_ObjectHideFlags: 0
119 | m_PrefabParentObject: {fileID: 0}
120 | m_PrefabInternal: {fileID: 0}
121 | serializedVersion: 5
122 | m_Component:
123 | - component: {fileID: 821223654}
124 | - component: {fileID: 821223653}
125 | - component: {fileID: 821223652}
126 | - component: {fileID: 821223651}
127 | - component: {fileID: 821223650}
128 | m_Layer: 0
129 | m_Name: Main Camera
130 | m_TagString: MainCamera
131 | m_Icon: {fileID: 0}
132 | m_NavMeshLayer: 0
133 | m_StaticEditorFlags: 0
134 | m_IsActive: 1
135 | --- !u!81 &821223650
136 | AudioListener:
137 | m_ObjectHideFlags: 0
138 | m_PrefabParentObject: {fileID: 0}
139 | m_PrefabInternal: {fileID: 0}
140 | m_GameObject: {fileID: 821223649}
141 | m_Enabled: 1
142 | --- !u!124 &821223651
143 | Behaviour:
144 | m_ObjectHideFlags: 0
145 | m_PrefabParentObject: {fileID: 0}
146 | m_PrefabInternal: {fileID: 0}
147 | m_GameObject: {fileID: 821223649}
148 | m_Enabled: 1
149 | --- !u!92 &821223652
150 | Behaviour:
151 | m_ObjectHideFlags: 0
152 | m_PrefabParentObject: {fileID: 0}
153 | m_PrefabInternal: {fileID: 0}
154 | m_GameObject: {fileID: 821223649}
155 | m_Enabled: 1
156 | --- !u!20 &821223653
157 | Camera:
158 | m_ObjectHideFlags: 0
159 | m_PrefabParentObject: {fileID: 0}
160 | m_PrefabInternal: {fileID: 0}
161 | m_GameObject: {fileID: 821223649}
162 | m_Enabled: 1
163 | serializedVersion: 2
164 | m_ClearFlags: 1
165 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
166 | m_NormalizedViewPortRect:
167 | serializedVersion: 2
168 | x: 0
169 | y: 0
170 | width: 1
171 | height: 1
172 | near clip plane: 0.3
173 | far clip plane: 1000
174 | field of view: 60
175 | orthographic: 0
176 | orthographic size: 5
177 | m_Depth: -1
178 | m_CullingMask:
179 | serializedVersion: 2
180 | m_Bits: 4294967295
181 | m_RenderingPath: -1
182 | m_TargetTexture: {fileID: 0}
183 | m_TargetDisplay: 0
184 | m_TargetEye: 3
185 | m_HDR: 0
186 | m_AllowMSAA: 1
187 | m_ForceIntoRT: 0
188 | m_OcclusionCulling: 1
189 | m_StereoConvergence: 10
190 | m_StereoSeparation: 0.022
191 | --- !u!4 &821223654
192 | Transform:
193 | m_ObjectHideFlags: 0
194 | m_PrefabParentObject: {fileID: 0}
195 | m_PrefabInternal: {fileID: 0}
196 | m_GameObject: {fileID: 821223649}
197 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
198 | m_LocalPosition: {x: 0, y: 1, z: -10}
199 | m_LocalScale: {x: 1, y: 1, z: 1}
200 | m_Children: []
201 | m_Father: {fileID: 0}
202 | m_RootOrder: 0
203 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
204 | --- !u!1 &1332373834
205 | GameObject:
206 | m_ObjectHideFlags: 0
207 | m_PrefabParentObject: {fileID: 0}
208 | m_PrefabInternal: {fileID: 0}
209 | serializedVersion: 5
210 | m_Component:
211 | - component: {fileID: 1332373836}
212 | - component: {fileID: 1332373835}
213 | m_Layer: 0
214 | m_Name: PermissionTest
215 | m_TagString: Untagged
216 | m_Icon: {fileID: 0}
217 | m_NavMeshLayer: 0
218 | m_StaticEditorFlags: 0
219 | m_IsActive: 1
220 | --- !u!114 &1332373835
221 | MonoBehaviour:
222 | m_ObjectHideFlags: 0
223 | m_PrefabParentObject: {fileID: 0}
224 | m_PrefabInternal: {fileID: 0}
225 | m_GameObject: {fileID: 1332373834}
226 | m_Enabled: 1
227 | m_EditorHideFlags: 0
228 | m_Script: {fileID: 11500000, guid: d0434d0c12032f240857b3e5dc1c97d2, type: 3}
229 | m_Name:
230 | m_EditorClassIdentifier:
231 | --- !u!4 &1332373836
232 | Transform:
233 | m_ObjectHideFlags: 0
234 | m_PrefabParentObject: {fileID: 0}
235 | m_PrefabInternal: {fileID: 0}
236 | m_GameObject: {fileID: 1332373834}
237 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
238 | m_LocalPosition: {x: 0, y: 0, z: 0}
239 | m_LocalScale: {x: 1, y: 1, z: 1}
240 | m_Children: []
241 | m_Father: {fileID: 0}
242 | m_RootOrder: 1
243 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
244 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!129 &1
4 | PlayerSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 15
7 | productGUID: 8ed870401b67645ad82faff43220f09a
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: PermissionPlugin
17 | defaultCursor: {fileID: 0}
18 | cursorHotspot: {x: 0, y: 0}
19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
20 | m_ShowUnitySplashScreen: 1
21 | m_ShowUnitySplashLogo: 1
22 | m_SplashScreenOverlayOpacity: 1
23 | m_SplashScreenAnimation: 1
24 | m_SplashScreenLogoStyle: 1
25 | m_SplashScreenDrawMode: 0
26 | m_SplashScreenBackgroundAnimationZoom: 1
27 | m_SplashScreenLogoAnimationZoom: 1
28 | m_SplashScreenBackgroundLandscapeAspect: 1
29 | m_SplashScreenBackgroundPortraitAspect: 1
30 | m_SplashScreenBackgroundLandscapeUvs:
31 | serializedVersion: 2
32 | x: 0
33 | y: 0
34 | width: 1
35 | height: 1
36 | m_SplashScreenBackgroundPortraitUvs:
37 | serializedVersion: 2
38 | x: 0
39 | y: 0
40 | width: 1
41 | height: 1
42 | m_SplashScreenLogos: []
43 | m_VirtualRealitySplashScreen: {fileID: 0}
44 | m_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1024
46 | defaultScreenHeight: 768
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
53 | iosShowActivityIndicatorOnLoading: -1
54 | androidShowActivityIndicatorOnLoading: -1
55 | iosAppInBackgroundBehavior: 0
56 | displayResolutionDialog: 1
57 | iosAllowHTTPDownload: 1
58 | allowedAutorotateToPortrait: 1
59 | allowedAutorotateToPortraitUpsideDown: 1
60 | allowedAutorotateToLandscapeRight: 1
61 | allowedAutorotateToLandscapeLeft: 1
62 | useOSAutorotation: 1
63 | use32BitDisplayBuffer: 1
64 | preserveFramebufferAlpha: 0
65 | disableDepthAndStencilBuffers: 0
66 | androidBlitType: 0
67 | defaultIsNativeResolution: 1
68 | macRetinaSupport: 1
69 | runInBackground: 0
70 | captureSingleScreen: 0
71 | muteOtherAudioSources: 0
72 | Prepare IOS For Recording: 0
73 | Force IOS Speakers When Recording: 0
74 | deferSystemGesturesMode: 0
75 | hideHomeButton: 0
76 | submitAnalytics: 1
77 | usePlayerLog: 1
78 | bakeCollisionMeshes: 0
79 | forceSingleInstance: 0
80 | resizableWindow: 0
81 | useMacAppStoreValidation: 0
82 | macAppStoreCategory: public.app-category.games
83 | gpuSkinning: 0
84 | graphicsJobs: 0
85 | xboxPIXTextureCapture: 0
86 | xboxEnableAvatar: 0
87 | xboxEnableKinect: 0
88 | xboxEnableKinectAutoTracking: 0
89 | xboxEnableFitness: 0
90 | visibleInBackground: 1
91 | allowFullscreenSwitch: 1
92 | graphicsJobMode: 0
93 | fullscreenMode: 1
94 | xboxSpeechDB: 0
95 | xboxEnableHeadOrientation: 0
96 | xboxEnableGuest: 0
97 | xboxEnablePIXSampling: 0
98 | metalFramebufferOnly: 0
99 | n3dsDisableStereoscopicView: 0
100 | n3dsEnableSharedListOpt: 1
101 | n3dsEnableVSync: 0
102 | xboxOneResolution: 0
103 | xboxOneSResolution: 0
104 | xboxOneXResolution: 3
105 | xboxOneMonoLoggingLevel: 0
106 | xboxOneLoggingLevel: 1
107 | xboxOneDisableEsram: 0
108 | xboxOnePresentImmediateThreshold: 0
109 | switchQueueCommandMemory: 0
110 | videoMemoryForVertexBuffers: 0
111 | psp2PowerMode: 0
112 | psp2AcquireBGM: 1
113 | vulkanEnableSetSRGBWrite: 0
114 | vulkanUseSWCommandBuffers: 0
115 | m_SupportedAspectRatios:
116 | 4:3: 1
117 | 5:4: 1
118 | 16:10: 1
119 | 16:9: 1
120 | Others: 1
121 | bundleVersion: 1.0
122 | preloadedAssets: []
123 | metroInputSource: 0
124 | wsaTransparentSwapchain: 0
125 | m_HolographicPauseOnTrackingLoss: 1
126 | xboxOneDisableKinectGpuReservation: 0
127 | xboxOneEnable7thCore: 0
128 | vrSettings:
129 | cardboard:
130 | depthFormat: 0
131 | enableTransitionView: 0
132 | daydream:
133 | depthFormat: 0
134 | useSustainedPerformanceMode: 0
135 | enableVideoLayer: 0
136 | useProtectedVideoMemory: 0
137 | minimumSupportedHeadTracking: 0
138 | maximumSupportedHeadTracking: 1
139 | hololens:
140 | depthFormat: 1
141 | depthBufferSharingEnabled: 0
142 | oculus:
143 | sharedDepthBuffer: 0
144 | dashSupport: 0
145 | enable360StereoCapture: 0
146 | protectGraphicsMemory: 0
147 | useHDRDisplay: 0
148 | m_ColorGamuts: 00000000
149 | targetPixelDensity: 30
150 | resolutionScalingMode: 0
151 | androidSupportedAspectRatio: 1
152 | androidMaxAspectRatio: 2.1
153 | applicationIdentifier:
154 | Android: com.hiyorin.permission.test
155 | iOS: com.hiyorin.permission.test
156 | buildNumber: {}
157 | AndroidBundleVersionCode: 1
158 | AndroidMinSdkVersion: 16
159 | AndroidTargetSdkVersion: 0
160 | AndroidPreferredInstallLocation: 1
161 | aotOptions:
162 | stripEngineCode: 1
163 | iPhoneStrippingLevel: 0
164 | iPhoneScriptCallOptimization: 0
165 | ForceInternetPermission: 0
166 | ForceSDCardPermission: 0
167 | CreateWallpaper: 0
168 | APKExpansionFiles: 0
169 | keepLoadedShadersAlive: 0
170 | StripUnusedMeshComponents: 0
171 | VertexChannelCompressionMask: 214
172 | iPhoneSdkVersion: 988
173 | iOSTargetOSVersionString: 8.0
174 | tvOSSdkVersion: 0
175 | tvOSRequireExtendedGameController: 0
176 | tvOSTargetOSVersionString: 9.0
177 | uIPrerenderedIcon: 0
178 | uIRequiresPersistentWiFi: 0
179 | uIRequiresFullScreen: 1
180 | uIStatusBarHidden: 1
181 | uIExitOnSuspend: 0
182 | uIStatusBarStyle: 0
183 | iPhoneSplashScreen: {fileID: 0}
184 | iPhoneHighResSplashScreen: {fileID: 0}
185 | iPhoneTallHighResSplashScreen: {fileID: 0}
186 | iPhone47inSplashScreen: {fileID: 0}
187 | iPhone55inPortraitSplashScreen: {fileID: 0}
188 | iPhone55inLandscapeSplashScreen: {fileID: 0}
189 | iPhone58inPortraitSplashScreen: {fileID: 0}
190 | iPhone58inLandscapeSplashScreen: {fileID: 0}
191 | iPadPortraitSplashScreen: {fileID: 0}
192 | iPadHighResPortraitSplashScreen: {fileID: 0}
193 | iPadLandscapeSplashScreen: {fileID: 0}
194 | iPadHighResLandscapeSplashScreen: {fileID: 0}
195 | appleTVSplashScreen: {fileID: 0}
196 | appleTVSplashScreen2x: {fileID: 0}
197 | tvOSSmallIconLayers: []
198 | tvOSSmallIconLayers2x: []
199 | tvOSLargeIconLayers: []
200 | tvOSLargeIconLayers2x: []
201 | tvOSTopShelfImageLayers: []
202 | tvOSTopShelfImageLayers2x: []
203 | tvOSTopShelfImageWideLayers: []
204 | tvOSTopShelfImageWideLayers2x: []
205 | iOSLaunchScreenType: 0
206 | iOSLaunchScreenPortrait: {fileID: 0}
207 | iOSLaunchScreenLandscape: {fileID: 0}
208 | iOSLaunchScreenBackgroundColor:
209 | serializedVersion: 2
210 | rgba: 0
211 | iOSLaunchScreenFillPct: 100
212 | iOSLaunchScreenSize: 100
213 | iOSLaunchScreenCustomXibPath:
214 | iOSLaunchScreeniPadType: 0
215 | iOSLaunchScreeniPadImage: {fileID: 0}
216 | iOSLaunchScreeniPadBackgroundColor:
217 | serializedVersion: 2
218 | rgba: 0
219 | iOSLaunchScreeniPadFillPct: 100
220 | iOSLaunchScreeniPadSize: 100
221 | iOSLaunchScreeniPadCustomXibPath:
222 | iOSUseLaunchScreenStoryboard: 0
223 | iOSLaunchScreenCustomStoryboardPath:
224 | iOSDeviceRequirements: []
225 | iOSURLSchemes: []
226 | iOSBackgroundModes: 0
227 | iOSMetalForceHardShadows: 0
228 | metalEditorSupport: 0
229 | metalAPIValidation: 1
230 | iOSRenderExtraFrameOnPause: 0
231 | appleDeveloperTeamID:
232 | iOSManualSigningProvisioningProfileID:
233 | tvOSManualSigningProvisioningProfileID:
234 | iOSManualSigningProvisioningProfileType: 0
235 | tvOSManualSigningProvisioningProfileType: 0
236 | appleEnableAutomaticSigning: 0
237 | iOSRequireARKit: 0
238 | appleEnableProMotion: 0
239 | vulkanEditorSupport: 0
240 | clonedFromGUID: 00000000000000000000000000000000
241 | templatePackageId:
242 | templateDefaultScene:
243 | AndroidTargetArchitectures: 5
244 | AndroidSplashScreenScale: 0
245 | androidSplashScreen: {fileID: 0}
246 | AndroidKeystoreName:
247 | AndroidKeyaliasName:
248 | AndroidBuildApkPerCpuArchitecture: 0
249 | AndroidTVCompatibility: 1
250 | AndroidIsGame: 1
251 | AndroidEnableTango: 0
252 | androidEnableBanner: 1
253 | androidUseLowAccuracyLocation: 0
254 | m_AndroidBanners:
255 | - width: 320
256 | height: 180
257 | banner: {fileID: 0}
258 | androidGamepadSupportLevel: 0
259 | resolutionDialogBanner: {fileID: 0}
260 | m_BuildTargetIcons: []
261 | m_BuildTargetPlatformIcons:
262 | - m_BuildTarget: Android
263 | m_Icons:
264 | - m_Textures: []
265 | m_Width: 432
266 | m_Height: 432
267 | m_Kind: 2
268 | m_SubKind:
269 | - m_Textures: []
270 | m_Width: 324
271 | m_Height: 324
272 | m_Kind: 2
273 | m_SubKind:
274 | - m_Textures: []
275 | m_Width: 216
276 | m_Height: 216
277 | m_Kind: 2
278 | m_SubKind:
279 | - m_Textures: []
280 | m_Width: 162
281 | m_Height: 162
282 | m_Kind: 2
283 | m_SubKind:
284 | - m_Textures: []
285 | m_Width: 108
286 | m_Height: 108
287 | m_Kind: 2
288 | m_SubKind:
289 | - m_Textures: []
290 | m_Width: 81
291 | m_Height: 81
292 | m_Kind: 2
293 | m_SubKind:
294 | - m_Textures: []
295 | m_Width: 192
296 | m_Height: 192
297 | m_Kind: 1
298 | m_SubKind:
299 | - m_Textures: []
300 | m_Width: 144
301 | m_Height: 144
302 | m_Kind: 1
303 | m_SubKind:
304 | - m_Textures: []
305 | m_Width: 96
306 | m_Height: 96
307 | m_Kind: 1
308 | m_SubKind:
309 | - m_Textures: []
310 | m_Width: 72
311 | m_Height: 72
312 | m_Kind: 1
313 | m_SubKind:
314 | - m_Textures: []
315 | m_Width: 48
316 | m_Height: 48
317 | m_Kind: 1
318 | m_SubKind:
319 | - m_Textures: []
320 | m_Width: 36
321 | m_Height: 36
322 | m_Kind: 1
323 | m_SubKind:
324 | m_BuildTargetBatching: []
325 | m_BuildTargetGraphicsAPIs: []
326 | m_BuildTargetVRSettings: []
327 | m_BuildTargetEnableVuforiaSettings: []
328 | openGLRequireES31: 0
329 | openGLRequireES31AEP: 0
330 | m_TemplateCustomTags: {}
331 | mobileMTRendering:
332 | Android: 1
333 | iPhone: 1
334 | tvOS: 1
335 | m_BuildTargetGroupLightmapEncodingQuality:
336 | - m_BuildTarget: Standalone
337 | m_EncodingQuality: 1
338 | - m_BuildTarget: XboxOne
339 | m_EncodingQuality: 1
340 | - m_BuildTarget: PS4
341 | m_EncodingQuality: 1
342 | m_BuildTargetGroupLightmapSettings: []
343 | playModeTestRunnerEnabled: 0
344 | runPlayModeTestAsEditModeTest: 0
345 | actionOnDotNetUnhandledException: 1
346 | enableInternalProfiler: 0
347 | logObjCUncaughtExceptions: 1
348 | enableCrashReportAPI: 0
349 | cameraUsageDescription:
350 | locationUsageDescription:
351 | microphoneUsageDescription:
352 | switchNetLibKey:
353 | switchSocketMemoryPoolSize: 6144
354 | switchSocketAllocatorPoolSize: 128
355 | switchSocketConcurrencyLimit: 14
356 | switchScreenResolutionBehavior: 2
357 | switchUseCPUProfiler: 0
358 | switchApplicationID: 0x01004b9000490000
359 | switchNSODependencies:
360 | switchTitleNames_0:
361 | switchTitleNames_1:
362 | switchTitleNames_2:
363 | switchTitleNames_3:
364 | switchTitleNames_4:
365 | switchTitleNames_5:
366 | switchTitleNames_6:
367 | switchTitleNames_7:
368 | switchTitleNames_8:
369 | switchTitleNames_9:
370 | switchTitleNames_10:
371 | switchTitleNames_11:
372 | switchTitleNames_12:
373 | switchTitleNames_13:
374 | switchTitleNames_14:
375 | switchPublisherNames_0:
376 | switchPublisherNames_1:
377 | switchPublisherNames_2:
378 | switchPublisherNames_3:
379 | switchPublisherNames_4:
380 | switchPublisherNames_5:
381 | switchPublisherNames_6:
382 | switchPublisherNames_7:
383 | switchPublisherNames_8:
384 | switchPublisherNames_9:
385 | switchPublisherNames_10:
386 | switchPublisherNames_11:
387 | switchPublisherNames_12:
388 | switchPublisherNames_13:
389 | switchPublisherNames_14:
390 | switchIcons_0: {fileID: 0}
391 | switchIcons_1: {fileID: 0}
392 | switchIcons_2: {fileID: 0}
393 | switchIcons_3: {fileID: 0}
394 | switchIcons_4: {fileID: 0}
395 | switchIcons_5: {fileID: 0}
396 | switchIcons_6: {fileID: 0}
397 | switchIcons_7: {fileID: 0}
398 | switchIcons_8: {fileID: 0}
399 | switchIcons_9: {fileID: 0}
400 | switchIcons_10: {fileID: 0}
401 | switchIcons_11: {fileID: 0}
402 | switchIcons_12: {fileID: 0}
403 | switchIcons_13: {fileID: 0}
404 | switchIcons_14: {fileID: 0}
405 | switchSmallIcons_0: {fileID: 0}
406 | switchSmallIcons_1: {fileID: 0}
407 | switchSmallIcons_2: {fileID: 0}
408 | switchSmallIcons_3: {fileID: 0}
409 | switchSmallIcons_4: {fileID: 0}
410 | switchSmallIcons_5: {fileID: 0}
411 | switchSmallIcons_6: {fileID: 0}
412 | switchSmallIcons_7: {fileID: 0}
413 | switchSmallIcons_8: {fileID: 0}
414 | switchSmallIcons_9: {fileID: 0}
415 | switchSmallIcons_10: {fileID: 0}
416 | switchSmallIcons_11: {fileID: 0}
417 | switchSmallIcons_12: {fileID: 0}
418 | switchSmallIcons_13: {fileID: 0}
419 | switchSmallIcons_14: {fileID: 0}
420 | switchManualHTML:
421 | switchAccessibleURLs:
422 | switchLegalInformation:
423 | switchMainThreadStackSize: 1048576
424 | switchPresenceGroupId:
425 | switchLogoHandling: 0
426 | switchReleaseVersion: 0
427 | switchDisplayVersion: 1.0.0
428 | switchStartupUserAccount: 0
429 | switchTouchScreenUsage: 0
430 | switchSupportedLanguagesMask: 0
431 | switchLogoType: 0
432 | switchApplicationErrorCodeCategory:
433 | switchUserAccountSaveDataSize: 0
434 | switchUserAccountSaveDataJournalSize: 0
435 | switchApplicationAttribute: 0
436 | switchCardSpecSize: -1
437 | switchCardSpecClock: -1
438 | switchRatingsMask: 0
439 | switchRatingsInt_0: 0
440 | switchRatingsInt_1: 0
441 | switchRatingsInt_2: 0
442 | switchRatingsInt_3: 0
443 | switchRatingsInt_4: 0
444 | switchRatingsInt_5: 0
445 | switchRatingsInt_6: 0
446 | switchRatingsInt_7: 0
447 | switchRatingsInt_8: 0
448 | switchRatingsInt_9: 0
449 | switchRatingsInt_10: 0
450 | switchRatingsInt_11: 0
451 | switchLocalCommunicationIds_0:
452 | switchLocalCommunicationIds_1:
453 | switchLocalCommunicationIds_2:
454 | switchLocalCommunicationIds_3:
455 | switchLocalCommunicationIds_4:
456 | switchLocalCommunicationIds_5:
457 | switchLocalCommunicationIds_6:
458 | switchLocalCommunicationIds_7:
459 | switchParentalControl: 0
460 | switchAllowsScreenshot: 1
461 | switchAllowsVideoCapturing: 1
462 | switchAllowsRuntimeAddOnContentInstall: 0
463 | switchDataLossConfirmation: 0
464 | switchSupportedNpadStyles: 3
465 | switchNativeFsCacheSize: 32
466 | switchIsHoldTypeHorizontal: 0
467 | switchSupportedNpadCount: 8
468 | switchSocketConfigEnabled: 0
469 | switchTcpInitialSendBufferSize: 32
470 | switchTcpInitialReceiveBufferSize: 64
471 | switchTcpAutoSendBufferSizeMax: 256
472 | switchTcpAutoReceiveBufferSizeMax: 256
473 | switchUdpSendBufferSize: 9
474 | switchUdpReceiveBufferSize: 42
475 | switchSocketBufferEfficiency: 4
476 | switchSocketInitializeEnabled: 1
477 | switchNetworkInterfaceManagerInitializeEnabled: 1
478 | switchPlayerConnectionEnabled: 1
479 | ps4NPAgeRating: 12
480 | ps4NPTitleSecret:
481 | ps4NPTrophyPackPath:
482 | ps4ParentalLevel: 11
483 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
484 | ps4Category: 0
485 | ps4MasterVersion: 01.00
486 | ps4AppVersion: 01.00
487 | ps4AppType: 0
488 | ps4ParamSfxPath:
489 | ps4VideoOutPixelFormat: 0
490 | ps4VideoOutInitialWidth: 1920
491 | ps4VideoOutBaseModeInitialWidth: 1920
492 | ps4VideoOutReprojectionRate: 60
493 | ps4PronunciationXMLPath:
494 | ps4PronunciationSIGPath:
495 | ps4BackgroundImagePath:
496 | ps4StartupImagePath:
497 | ps4StartupImagesFolder:
498 | ps4IconImagesFolder:
499 | ps4SaveDataImagePath:
500 | ps4SdkOverride:
501 | ps4BGMPath:
502 | ps4ShareFilePath:
503 | ps4ShareOverlayImagePath:
504 | ps4PrivacyGuardImagePath:
505 | ps4NPtitleDatPath:
506 | ps4RemotePlayKeyAssignment: -1
507 | ps4RemotePlayKeyMappingDir:
508 | ps4PlayTogetherPlayerCount: 0
509 | ps4EnterButtonAssignment: 1
510 | ps4ApplicationParam1: 0
511 | ps4ApplicationParam2: 0
512 | ps4ApplicationParam3: 0
513 | ps4ApplicationParam4: 0
514 | ps4DownloadDataSize: 0
515 | ps4GarlicHeapSize: 2048
516 | ps4ProGarlicHeapSize: 2560
517 | ps4Passcode: LHbavJvFZGfO47XWS2qVOw5lxuBEBNue
518 | ps4pnSessions: 1
519 | ps4pnPresence: 1
520 | ps4pnFriends: 1
521 | ps4pnGameCustomData: 1
522 | playerPrefsSupport: 0
523 | enableApplicationExit: 0
524 | restrictedAudioUsageRights: 0
525 | ps4UseResolutionFallback: 0
526 | ps4ReprojectionSupport: 0
527 | ps4UseAudio3dBackend: 0
528 | ps4SocialScreenEnabled: 0
529 | ps4ScriptOptimizationLevel: 0
530 | ps4Audio3dVirtualSpeakerCount: 14
531 | ps4attribCpuUsage: 0
532 | ps4PatchPkgPath:
533 | ps4PatchLatestPkgPath:
534 | ps4PatchChangeinfoPath:
535 | ps4PatchDayOne: 0
536 | ps4attribUserManagement: 0
537 | ps4attribMoveSupport: 0
538 | ps4attrib3DSupport: 0
539 | ps4attribShareSupport: 0
540 | ps4attribExclusiveVR: 0
541 | ps4disableAutoHideSplash: 0
542 | ps4videoRecordingFeaturesUsed: 0
543 | ps4contentSearchFeaturesUsed: 0
544 | ps4attribEyeToEyeDistanceSettingVR: 0
545 | ps4IncludedModules: []
546 | monoEnv:
547 | psp2Splashimage: {fileID: 0}
548 | psp2NPTrophyPackPath:
549 | psp2NPSupportGBMorGJP: 0
550 | psp2NPAgeRating: 12
551 | psp2NPTitleDatPath:
552 | psp2NPCommsID:
553 | psp2NPCommunicationsID:
554 | psp2NPCommsPassphrase:
555 | psp2NPCommsSig:
556 | psp2ParamSfxPath:
557 | psp2ManualPath:
558 | psp2LiveAreaGatePath:
559 | psp2LiveAreaBackroundPath:
560 | psp2LiveAreaPath:
561 | psp2LiveAreaTrialPath:
562 | psp2PatchChangeInfoPath:
563 | psp2PatchOriginalPackage:
564 | psp2PackagePassword: 7b9PZS0hoI6pgabi9UOuSpM2Tlh01vOz
565 | psp2KeystoneFile:
566 | psp2MemoryExpansionMode: 0
567 | psp2DRMType: 0
568 | psp2StorageType: 0
569 | psp2MediaCapacity: 0
570 | psp2DLCConfigPath:
571 | psp2ThumbnailPath:
572 | psp2BackgroundPath:
573 | psp2SoundPath:
574 | psp2TrophyCommId:
575 | psp2TrophyPackagePath:
576 | psp2PackagedResourcesPath:
577 | psp2SaveDataQuota: 10240
578 | psp2ParentalLevel: 1
579 | psp2ShortTitle: Not Set
580 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
581 | psp2Category: 0
582 | psp2MasterVersion: 01.00
583 | psp2AppVersion: 01.00
584 | psp2TVBootMode: 0
585 | psp2EnterButtonAssignment: 2
586 | psp2TVDisableEmu: 0
587 | psp2AllowTwitterDialog: 1
588 | psp2Upgradable: 0
589 | psp2HealthWarning: 0
590 | psp2UseLibLocation: 0
591 | psp2InfoBarOnStartup: 0
592 | psp2InfoBarColor: 0
593 | psp2ScriptOptimizationLevel: 0
594 | splashScreenBackgroundSourceLandscape: {fileID: 0}
595 | splashScreenBackgroundSourcePortrait: {fileID: 0}
596 | spritePackerPolicy:
597 | webGLMemorySize: 256
598 | webGLExceptionSupport: 1
599 | webGLNameFilesAsHashes: 0
600 | webGLDataCaching: 0
601 | webGLDebugSymbols: 0
602 | webGLEmscriptenArgs:
603 | webGLModulesDirectory:
604 | webGLTemplate: APPLICATION:Default
605 | webGLAnalyzeBuildSize: 0
606 | webGLUseEmbeddedResources: 0
607 | webGLCompressionFormat: 1
608 | webGLLinkerTarget: 1
609 | scriptingDefineSymbols: {}
610 | platformArchitecture:
611 | iOS: 0
612 | scriptingBackend:
613 | iOS: 1
614 | il2cppCompilerConfiguration: {}
615 | incrementalIl2cppBuild: {}
616 | allowUnsafeCode: 0
617 | additionalIl2CppArgs:
618 | scriptingRuntimeVersion: 1
619 | apiCompatibilityLevelPerPlatform:
620 | iOS: 3
621 | m_RenderingPath: 1
622 | m_MobileRenderingPath: 1
623 | metroPackageName: PermissionPlugin
624 | metroPackageVersion:
625 | metroCertificatePath:
626 | metroCertificatePassword:
627 | metroCertificateSubject:
628 | metroCertificateIssuer:
629 | metroCertificateNotAfter: 0000000000000000
630 | metroApplicationDescription: PermissionPlugin
631 | wsaImages: {}
632 | metroTileShortName:
633 | metroTileShowName: 0
634 | metroMediumTileShowName: 0
635 | metroLargeTileShowName: 0
636 | metroWideTileShowName: 0
637 | metroDefaultTileSize: 1
638 | metroTileForegroundText: 2
639 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
640 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
641 | a: 1}
642 | metroSplashScreenUseBackgroundColor: 0
643 | platformCapabilities: {}
644 | metroFTAName:
645 | metroFTAFileTypes: []
646 | metroProtocolName:
647 | metroCompilationOverrides: 1
648 | n3dsUseExtSaveData: 0
649 | n3dsCompressStaticMem: 1
650 | n3dsExtSaveDataNumber: 0x12345
651 | n3dsStackSize: 131072
652 | n3dsTargetPlatform: 2
653 | n3dsRegion: 7
654 | n3dsMediaSize: 0
655 | n3dsLogoStyle: 3
656 | n3dsTitle: GameName
657 | n3dsProductCode:
658 | n3dsApplicationId: 0xFF3FF
659 | XboxOneProductId:
660 | XboxOneUpdateKey:
661 | XboxOneSandboxId:
662 | XboxOneContentId:
663 | XboxOneTitleId:
664 | XboxOneSCId:
665 | XboxOneGameOsOverridePath:
666 | XboxOnePackagingOverridePath:
667 | XboxOneAppManifestOverridePath:
668 | XboxOneVersion: 1.0.0.0
669 | XboxOnePackageEncryption: 0
670 | XboxOnePackageUpdateGranularity: 2
671 | XboxOneDescription:
672 | XboxOneLanguage:
673 | - enus
674 | XboxOneCapability: []
675 | XboxOneGameRating: {}
676 | XboxOneIsContentPackage: 0
677 | XboxOneEnableGPUVariability: 0
678 | XboxOneSockets: {}
679 | XboxOneSplashScreen: {fileID: 0}
680 | XboxOneAllowedProductIds: []
681 | XboxOnePersistentLocalStorageSize: 0
682 | XboxOneXTitleMemory: 8
683 | xboxOneScriptCompiler: 0
684 | vrEditorSettings:
685 | daydream:
686 | daydreamIconForeground: {fileID: 0}
687 | daydreamIconBackground: {fileID: 0}
688 | cloudServicesEnabled:
689 | UNet: 1
690 | facebookSdkVersion: 7.9.4
691 | apiCompatibilityLevel: 3
692 | cloudProjectId: 8618bde0-e285-4308-9796-eafd9d6fecbe
693 | projectName: PermissionPlugin
694 | organizationId: unity_py4w89zmltndfg
695 | cloudEnabled: 0
696 | enableNativePlatformBackendsForNewInputSystem: 0
697 | disableOldInputManagerSupport: 0
698 |
--------------------------------------------------------------------------------