├── Assets
├── Scripts.meta
├── Scripts
│ ├── GameController.cs.meta
│ ├── MessageViewer.cs.meta
│ ├── MessageViewer.cs
│ └── GameController.cs
├── PlayDeck
│ ├── Runtime
│ │ ├── Constants.cs.meta
│ │ ├── PlayDeckBridge.cs.meta
│ │ ├── Constants.cs
│ │ └── PlayDeckBridge.cs
│ ├── Plugins.meta
│ ├── Prefabs.meta
│ ├── Prefabs
│ │ ├── PlayDeckBridge.prefab.meta
│ │ └── PlayDeckBridge.prefab
│ ├── Runtime.meta
│ └── Plugins
│ │ ├── WebGL.meta
│ │ └── WebGL
│ │ ├── PlayDeckBridge.jslib.meta
│ │ └── PlayDeckBridge.jslib
├── WebGLTemplates
│ ├── CustomTemplate
│ │ ├── index.html.meta
│ │ ├── playDeckBridge.js.meta
│ │ ├── index.html
│ │ └── playDeckBridge.js
│ └── CustomTemplate.meta
├── Scenes.meta
├── Scenes
│ └── SampleScene.unity.meta
├── PlayDeck.meta
└── WebGLTemplates.meta
├── ProjectSettings
├── ProjectVersion.txt
├── CommonBurstAotSettings.json
├── ClusterInputManager.asset
├── PresetManager.asset
├── NetworkManager.asset
├── XRSettings.asset
├── VersionControlSettings.asset
├── TimeManager.asset
├── EditorBuildSettings.asset
├── VFXManager.asset
├── BurstAotSettings_WebGL.json
├── AudioManager.asset
├── BurstAotSettings_StandaloneWindows.json
├── TagManager.asset
├── UnityConnectSettings.asset
├── PackageManagerSettings.asset
├── MemorySettings.asset
├── EditorSettings.asset
├── DynamicsManager.asset
├── NavMeshAreas.asset
├── Physics2DSettings.asset
├── GraphicsSettings.asset
├── SceneTemplateSettings.json
├── QualitySettings.asset
├── InputManager.asset
└── ProjectSettings.asset
├── .gitignore
├── Packages
├── manifest.json
└── packages-lock.json
└── README.md
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f4e3243a82384a9cba7031957e5b3ea0
3 | timeCreated: 1701741807
--------------------------------------------------------------------------------
/Assets/Scripts/GameController.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 232d9f65fbc848e98fb8ad6a57ac11a6
3 | timeCreated: 1701741812
--------------------------------------------------------------------------------
/Assets/Scripts/MessageViewer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5bbb95df68954fd7bafabac93a2046ee
3 | timeCreated: 1722060524
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2022.3.10f1
2 | m_EditorVersionWithRevision: 2022.3.10f1 (ff3792e53c62)
3 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Runtime/Constants.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3894e4a7376643d4bade1def12299345
3 | timeCreated: 1701738428
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/CustomTemplate/index.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7d1b1f564d954ae6b92b46883bff3afd
3 | timeCreated: 1701738806
--------------------------------------------------------------------------------
/ProjectSettings/CommonBurstAotSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "DisabledWarnings": ""
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1386491679 &1
4 | PresetManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 16d3cdf7d4ce55f45aa488af5a35d442
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2cda990e2423bbf4892e6590ba056729
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/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/PlayDeck.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3e7a1079d5872c046bf2ae06b887ea0a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2812c6b1063b21245839a0b32eb85404
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f49475efb47317943a19f6489caf0387
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Prefabs/PlayDeckBridge.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d3569ab0d17380b45ada9518bc68d5b9
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Runtime.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3c1abd1cb76c7464aaffb16965411d97
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 649c653cb1faf814cb3120550650eafe
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Plugins/WebGL.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 60f4f34be94fe7e42a598a09be116eea
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/ProjectSettings/XRSettings.asset:
--------------------------------------------------------------------------------
1 | {
2 | "m_SettingKeys": [
3 | "VR Device Disabled",
4 | "VR Device User Alert"
5 | ],
6 | "m_SettingValues": [
7 | "False",
8 | "False"
9 | ]
10 | }
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/CustomTemplate/playDeckBridge.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a0dd4a365f5647c7added70d5b16b20e
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/CustomTemplate.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5a4af1cc337e4e14099aae073be40a4b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/ProjectSettings/VersionControlSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!890905787 &1
4 | VersionControlSettings:
5 | m_ObjectHideFlags: 0
6 | m_Mode: Visible Meta Files
7 | m_CollabEditorSettings:
8 | inProgressEnabled: 1
9 |
--------------------------------------------------------------------------------
/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/PlayDeck/Runtime/PlayDeckBridge.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bf5e373ff335f244387320cd55fe05c4
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/Scenes/SampleScene.unity
10 | guid: 2cda990e2423bbf4892e6590ba056729
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Runtime/Constants.cs:
--------------------------------------------------------------------------------
1 | namespace PlayDeck
2 | {
3 | public class Constants
4 | {
5 | public const string GET_USER_PROFILE = "getUserProfile";
6 | public const string GET_USER_LOCALE = "getUserLocale";
7 |
8 | public const string GET_DATA = "getData";
9 | public const string SET_DATA = "setData";
10 |
11 | public const string SET_AD = "setAd";
12 | }
13 | }
--------------------------------------------------------------------------------
/ProjectSettings/VFXManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!937362698 &1
4 | VFXManager:
5 | m_ObjectHideFlags: 0
6 | m_IndirectShader: {fileID: 0}
7 | m_CopyBufferShader: {fileID: 0}
8 | m_SortShader: {fileID: 0}
9 | m_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 | m_CompiledVersion: 0
14 | m_RuntimeVersion: 0
15 |
--------------------------------------------------------------------------------
/Assets/Scripts/MessageViewer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | public class MessageViewer : MonoBehaviour
5 | {
6 | [SerializeField] private Text _text;
7 |
8 | public void Show(string text)
9 | {
10 | _text.text = text;
11 |
12 | gameObject.SetActive(true);
13 | }
14 |
15 | public void Hide()
16 | {
17 | gameObject.SetActive(false);
18 | }
19 | }
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_WebGL.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "OptimizeFor": 0
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 0
20 |
--------------------------------------------------------------------------------
/ProjectSettings/BurstAotSettings_StandaloneWindows.json:
--------------------------------------------------------------------------------
1 | {
2 | "MonoBehaviour": {
3 | "Version": 4,
4 | "EnableBurstCompilation": true,
5 | "EnableOptimisations": true,
6 | "EnableSafetyChecks": false,
7 | "EnableDebugInAllBuilds": false,
8 | "DebugDataKind": 1,
9 | "EnableArmv9SecurityFeatures": false,
10 | "CpuMinTargetX32": 0,
11 | "CpuMaxTargetX32": 0,
12 | "CpuMinTargetX64": 0,
13 | "CpuMaxTargetX64": 0,
14 | "CpuTargetsX32": 6,
15 | "CpuTargetsX64": 72,
16 | "OptimizeFor": 0
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Plugins/WebGL/PlayDeckBridge.jslib.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2057aa264af64ad4ab0e17d37a9a9848
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | Any:
16 | second:
17 | enabled: 0
18 | settings: {}
19 | - first:
20 | Editor: Editor
21 | second:
22 | enabled: 0
23 | settings:
24 | DefaultValueInitialized: true
25 | - first:
26 | WebGL: WebGL
27 | second:
28 | enabled: 1
29 | settings: {}
30 | userData:
31 | assetBundleName:
32 | assetBundleVariant:
33 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_DashboardUrl: https://dashboard.unity3d.com
13 | m_TestInitMode: 0
14 | CrashReportingSettings:
15 | m_EventUrl: https://perf-events.cloud.unity3d.com
16 | m_Enabled: 0
17 | m_LogBufferSize: 10
18 | m_CaptureEditorExceptions: 1
19 | UnityPurchasingSettings:
20 | m_Enabled: 0
21 | m_TestMode: 0
22 | UnityAnalyticsSettings:
23 | m_Enabled: 0
24 | m_TestMode: 0
25 | m_InitializeOnStartup: 1
26 | m_PackageRequiringCoreStatsPresent: 0
27 | UnityAdsSettings:
28 | m_Enabled: 0
29 | m_InitializeOnStartup: 1
30 | m_TestMode: 0
31 | m_IosGameId:
32 | m_AndroidGameId:
33 | m_GameIds: {}
34 | m_GameId:
35 | PerformanceReportingSettings:
36 | m_Enabled: 0
37 |
--------------------------------------------------------------------------------
/ProjectSettings/PackageManagerSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 61
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_EnablePreReleasePackages: 0
16 | m_EnablePackageDependencies: 0
17 | m_AdvancedSettingsExpanded: 1
18 | m_ScopedRegistriesSettingsExpanded: 1
19 | m_SeeAllPackageVersions: 0
20 | oneTimeWarningShown: 0
21 | m_Registries:
22 | - m_Id: main
23 | m_Name:
24 | m_Url: https://packages.unity.com
25 | m_Scopes: []
26 | m_IsDefault: 1
27 | m_Capabilities: 7
28 | m_UserSelectedRegistryName:
29 | m_UserAddingNewScopedRegistry: 0
30 | m_RegistryInfoDraft:
31 | m_ErrorMessage:
32 | m_Original:
33 | m_Id:
34 | m_Name:
35 | m_Url:
36 | m_Scopes: []
37 | m_IsDefault: 0
38 | m_Capabilities: 0
39 | m_Modified: 0
40 | m_Name:
41 | m_Url:
42 | m_Scopes:
43 | -
44 | m_SelectedScopeIndex: 0
45 |
--------------------------------------------------------------------------------
/ProjectSettings/MemorySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!387306366 &1
4 | MemorySettings:
5 | m_ObjectHideFlags: 0
6 | m_EditorMemorySettings:
7 | m_MainAllocatorBlockSize: -1
8 | m_ThreadAllocatorBlockSize: -1
9 | m_MainGfxBlockSize: -1
10 | m_ThreadGfxBlockSize: -1
11 | m_CacheBlockSize: -1
12 | m_TypetreeBlockSize: -1
13 | m_ProfilerBlockSize: -1
14 | m_ProfilerEditorBlockSize: -1
15 | m_BucketAllocatorGranularity: -1
16 | m_BucketAllocatorBucketsCount: -1
17 | m_BucketAllocatorBlockSize: -1
18 | m_BucketAllocatorBlockCount: -1
19 | m_ProfilerBucketAllocatorGranularity: -1
20 | m_ProfilerBucketAllocatorBucketsCount: -1
21 | m_ProfilerBucketAllocatorBlockSize: -1
22 | m_ProfilerBucketAllocatorBlockCount: -1
23 | m_TempAllocatorSizeMain: -1
24 | m_JobTempAllocatorBlockSize: -1
25 | m_BackgroundJobTempAllocatorBlockSize: -1
26 | m_JobTempAllocatorReducedBlockSize: -1
27 | m_TempAllocatorSizeGIBakingWorker: -1
28 | m_TempAllocatorSizeNavMeshWorker: -1
29 | m_TempAllocatorSizeAudioWorker: -1
30 | m_TempAllocatorSizeCloudWorker: -1
31 | m_TempAllocatorSizeGfx: -1
32 | m_TempAllocatorSizeJobWorker: -1
33 | m_TempAllocatorSizeBackgroundWorker: -1
34 | m_TempAllocatorSizePreloadManager: -1
35 | m_PlatformMemorySettings: {}
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Unity .gitignore - Deml v2021.2.0
2 | # Source https://github.com/JohannesDeml/UnityTemplate/
3 |
4 | ## Unity generated
5 | /.gradle/**
6 | /Temp/**
7 | /Library/**
8 | /obj/**
9 | /Packages/*/**
10 | /Packages/*.meta
11 | /Logs/**
12 | /UserSettings/**
13 |
14 | # Visual Studio / Rider / MonoDevelop generated
15 | /ExportedObj/**
16 | /obj
17 | /.vs/**
18 | *.svd
19 | *.userprefs
20 | *.csproj
21 | *.csproj.meta
22 | *.pidb
23 | *.suo
24 | *.sln
25 | *.user
26 | *.unityproj
27 | *.booproj
28 |
29 | *.csproj
30 | *.cache
31 | *Resharper*
32 | *ReSharper*
33 | *.orig
34 | *.orig.*
35 | *sln*
36 | .idea/**
37 | /Assets/Plugins/Editor/Jetbrains/*
38 | /Assets/Plugins/Editor/Jetbrains.meta
39 |
40 | *.blend1
41 |
42 | # OS generated
43 | .DS_Store
44 | .DS_Store?
45 | ._*
46 | .Spotlight-V100
47 | .Trashes
48 | ehthumbs.db
49 | Thumbs.db
50 | report.xml
51 |
52 | # WebGL Publisher
53 | /WebGL Builds/**
54 | connectwebgl.zip
55 | # Optional, but I don't like having my build folder added to this public repo
56 | ProjectSettings/Packages/com.unity.connect.share/Settings.json
57 |
58 | # Custom
59 | /Builds/**
60 | /Data/**
61 | /Recordings/**
62 | /Assets/_Project/Preferences/Editor/Credentials/**
63 | /Assets/_Project/Preferences/Editor/Credentials.meta
64 | /Assets/Temp/**
65 | /Assets/Temp.meta
66 | /.sonarqube
67 | ProjectSettings/RiderScriptEditorPersistedState.asset
68 |
--------------------------------------------------------------------------------
/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: 11
7 | m_SerializationMode: 2
8 | m_LineEndingsForNewScripts: 0
9 | m_DefaultBehaviorMode: 1
10 | m_PrefabRegularEnvironment: {fileID: 0}
11 | m_PrefabUIEnvironment: {fileID: 0}
12 | m_SpritePackerMode: 5
13 | m_SpritePackerPaddingPower: 1
14 | m_EtcTextureCompressorBehavior: 1
15 | m_EtcTextureFastCompressor: 1
16 | m_EtcTextureNormalCompressor: 2
17 | m_EtcTextureBestCompressor: 4
18 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
19 | m_ProjectGenerationRootNamespace:
20 | m_EnableTextureStreamingInEditMode: 1
21 | m_EnableTextureStreamingInPlayMode: 1
22 | m_AsyncShaderCompilation: 1
23 | m_CachingShaderPreprocessor: 1
24 | m_PrefabModeAllowAutoSave: 1
25 | m_EnterPlayModeOptionsEnabled: 0
26 | m_EnterPlayModeOptions: 3
27 | m_GameObjectNamingDigits: 1
28 | m_GameObjectNamingScheme: 0
29 | m_AssetNamingUsesSpace: 1
30 | m_UseLegacyProbeSampleCount: 0
31 | m_SerializeInlineMappingsOnOneLine: 1
32 | m_DisableCookiesInLightmapper: 1
33 | m_AssetPipelineMode: 1
34 | m_CacheServerMode: 0
35 | m_CacheServerEndpoint:
36 | m_CacheServerNamespacePrefix: default
37 | m_CacheServerEnableDownload: 1
38 | m_CacheServerEnableUpload: 1
39 | m_CacheServerEnableAuth: 0
40 | m_CacheServerEnableTls: 0
41 |
--------------------------------------------------------------------------------
/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: 13
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_DefaultMaxDepenetrationVelocity: 10
11 | m_SleepThreshold: 0.005
12 | m_DefaultContactOffset: 0.01
13 | m_DefaultSolverIterations: 6
14 | m_DefaultSolverVelocityIterations: 1
15 | m_QueriesHitBackfaces: 0
16 | m_QueriesHitTriggers: 1
17 | m_EnableAdaptiveForce: 0
18 | m_ClothInterCollisionDistance: 0.1
19 | m_ClothInterCollisionStiffness: 0.2
20 | m_ContactsGeneration: 1
21 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
22 | m_AutoSimulation: 1
23 | m_AutoSyncTransforms: 0
24 | m_ReuseCollisionCallbacks: 1
25 | m_ClothInterCollisionSettingsToggle: 0
26 | m_ClothGravity: {x: 0, y: -9.81, z: 0}
27 | m_ContactPairsMode: 0
28 | m_BroadphaseType: 0
29 | m_WorldBounds:
30 | m_Center: {x: 0, y: 0, z: 0}
31 | m_Extent: {x: 250, y: 250, z: 250}
32 | m_WorldSubdivisions: 8
33 | m_FrictionType: 0
34 | m_EnableEnhancedDeterminism: 0
35 | m_EnableUnifiedHeightmaps: 1
36 | m_SolverType: 0
37 | m_DefaultMaxAngularSpeed: 50
38 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Prefabs/PlayDeckBridge.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &6960424512679511469
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 5775088097166892697}
12 | - component: {fileID: 8190473448862259649}
13 | m_Layer: 0
14 | m_Name: PlayDeckBridge
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &5775088097166892697
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 6960424512679511469}
27 | serializedVersion: 2
28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29 | m_LocalPosition: {x: 0, y: 0, z: 0}
30 | m_LocalScale: {x: 1, y: 1, z: 1}
31 | m_ConstrainProportionsScale: 0
32 | m_Children: []
33 | m_Father: {fileID: 0}
34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35 | --- !u!114 &8190473448862259649
36 | MonoBehaviour:
37 | m_ObjectHideFlags: 0
38 | m_CorrespondingSourceObject: {fileID: 0}
39 | m_PrefabInstance: {fileID: 0}
40 | m_PrefabAsset: {fileID: 0}
41 | m_GameObject: {fileID: 6960424512679511469}
42 | m_Enabled: 1
43 | m_EditorHideFlags: 0
44 | m_Script: {fileID: 11500000, guid: bf5e373ff335f244387320cd55fe05c4, type: 3}
45 | m_Name:
46 | m_EditorClassIdentifier:
47 | _debugTelegramId:
48 | _debugUsername:
49 | _debugReferralId:
50 |
--------------------------------------------------------------------------------
/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 | maxJobWorkers: 0
89 | preserveTilesOutsideBounds: 0
90 | debug:
91 | m_Flags: 0
92 | m_SettingNames:
93 | - Humanoid
94 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.collab-proxy": "2.2.0",
4 | "com.unity.feature.2d": "2.0.0",
5 | "com.unity.ide.rider": "3.0.24",
6 | "com.unity.ide.visualstudio": "2.0.18",
7 | "com.unity.nuget.newtonsoft-json": "3.2.1",
8 | "com.unity.test-framework": "1.1.33",
9 | "com.unity.textmeshpro": "3.0.6",
10 | "com.unity.timeline": "1.7.5",
11 | "com.unity.ugui": "1.0.0",
12 | "com.unity.visualscripting": "1.9.0",
13 | "com.unity.modules.ai": "1.0.0",
14 | "com.unity.modules.androidjni": "1.0.0",
15 | "com.unity.modules.animation": "1.0.0",
16 | "com.unity.modules.assetbundle": "1.0.0",
17 | "com.unity.modules.audio": "1.0.0",
18 | "com.unity.modules.cloth": "1.0.0",
19 | "com.unity.modules.director": "1.0.0",
20 | "com.unity.modules.imageconversion": "1.0.0",
21 | "com.unity.modules.imgui": "1.0.0",
22 | "com.unity.modules.jsonserialize": "1.0.0",
23 | "com.unity.modules.particlesystem": "1.0.0",
24 | "com.unity.modules.physics": "1.0.0",
25 | "com.unity.modules.physics2d": "1.0.0",
26 | "com.unity.modules.screencapture": "1.0.0",
27 | "com.unity.modules.terrain": "1.0.0",
28 | "com.unity.modules.terrainphysics": "1.0.0",
29 | "com.unity.modules.tilemap": "1.0.0",
30 | "com.unity.modules.ui": "1.0.0",
31 | "com.unity.modules.uielements": "1.0.0",
32 | "com.unity.modules.umbra": "1.0.0",
33 | "com.unity.modules.unityanalytics": "1.0.0",
34 | "com.unity.modules.unitywebrequest": "1.0.0",
35 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
36 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
37 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
38 | "com.unity.modules.unitywebrequestwww": "1.0.0",
39 | "com.unity.modules.vehicles": "1.0.0",
40 | "com.unity.modules.video": "1.0.0",
41 | "com.unity.modules.vr": "1.0.0",
42 | "com.unity.modules.wind": "1.0.0",
43 | "com.unity.modules.xr": "1.0.0"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/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: 5
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_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_SimulationMode: 0
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/CustomTemplate/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{{ PRODUCT_NAME }}}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 13
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_VideoShadersIncludeMode: 2
32 | m_AlwaysIncludedShaders:
33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
40 | m_PreloadedShaders: []
41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
42 | m_CustomRenderPipeline: {fileID: 0}
43 | m_TransparencySortMode: 0
44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
45 | m_DefaultRenderingPath: 1
46 | m_DefaultMobileRenderingPath: 1
47 | m_TierSettings: []
48 | m_LightmapStripping: 0
49 | m_FogStripping: 0
50 | m_InstancingStripping: 0
51 | m_LightmapKeepPlain: 1
52 | m_LightmapKeepDirCombined: 1
53 | m_LightmapKeepDynamicPlain: 1
54 | m_LightmapKeepDynamicDirCombined: 1
55 | m_LightmapKeepShadowMask: 1
56 | m_LightmapKeepSubtractive: 1
57 | m_FogKeepLinear: 1
58 | m_FogKeepExp: 1
59 | m_FogKeepExp2: 1
60 | m_AlbedoSwatchInfos: []
61 | m_LightsUseLinearIntensity: 0
62 | m_LightsUseColorTemperature: 0
63 | m_DefaultRenderingLayerMask: 1
64 | m_LogWhenShaderIsCompiled: 0
65 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Unity PlayDeck Bridge
2 |
3 | ## Introduction
4 | This guide provides step-by-step instructions for integrating PlayDeck into your Unity project. By following these steps, you'll be able to seamlessly set up and use PlayDeck in your project.
5 |
6 | ## Setup Guide
7 |
8 | ### Step 1: Download source code
9 |
10 | ### Step 2: Setup the PlayDeck Bridge
11 | 1. Begin by copying the "Assets/PlayDeck" folder into your Unity project "Assets" directory.
12 | 2. Open your start scene in Unity.
13 | 3. Drag and drop prefab "PlayDeckBridge" from the "Assets/PlayDeck/Prefabs" to the first scene in your project.
14 | 4. Integrate PlayDeck with your game using public methods from the "PlayDeckBridge".
15 |
16 | ### Step 3: Setting Up Your WebGL Template
17 | - If you're using the provided custom WebGL template:
18 | - Simply copy and paste "WebGLTemplate" folder into your "Assets". And that's all, skip next steps.
19 | - If you are using your own custom WebGL template:
20 | - Copy the [`playDeckBridge.js`](https://github.com/ton-play/playdeck-unity-integration/blob/master/Assets/WebGLTemplates/CustomTemplate/playDeckBridge.js) file to the same directory as your `index.html` file.
21 |
22 | ### (Additional) Step 4: Modifying index.html of custom WebGL template
23 | 1. **Adding the PlayDeck Script:**
24 | - Open your `index.html` file.
25 | - Inside the `` tags, add the following line:
26 | ```html
27 |
28 | ```
29 | 2. **Updating Unity Loading Code:**
30 | - Find the section in your `index.html` where Unity is loading (creating the Unity instance).
31 | - Update it using the following code example:
32 | ```javascript
33 | const playdeckBridgeInstance = playDeckBridge();
34 | createUnityInstance(canvas, config, (progress) => {
35 | playdeckBridgeInstance?.setLoadingProgress(progress * 100)
36 | }).then(unityInstance => {
37 | playdeckBridgeInstance?.init(unityInstance);
38 | });
39 | ```
40 |
41 | ### Step 5: Testing
42 | - After making these changes, save your `index.html` file.
43 | - Return to Unity, make and deploy build, test your project to ensure that PlayDeck is integrated and functioning correctly.
44 |
45 | ## Additional Notes
46 | - This guide assumes a basic familiarity with Unity and web development.
47 | - **You can find extensive description for all supported methods** [in the main Wiki page](https://github.com/ton-play/playdeck-integration-guide/wiki/Available-methods)
48 | - If you encounter any difficulties, you may contact us for additional help.
49 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/CustomTemplate/playDeckBridge.js:
--------------------------------------------------------------------------------
1 | var playDeckBridge = (function() {
2 | const _wrapper = window.parent.window;
3 | var _unityInstance = null;
4 |
5 | const handleReceiveMessage = (message) => {
6 | const playdeck = message?.data?.playdeck;
7 |
8 | if (!playdeck) return;
9 |
10 | console.log(playdeck);
11 |
12 | if (playdeck.method === "getUserProfile") {
13 | _unityInstance?.SendMessage("PlayDeckBridge", "GetUserHandler", JSON.stringify(playdeck.value))
14 | }
15 | else if (playdeck.method === "getData") {
16 | let data = playdeck?.value?.data?.toString();
17 | console.log("playdeck data: " + data);
18 | if (!data) data = "";
19 | _unityInstance.SendMessage("PlayDeckBridge", "GetDataHandler", data);
20 | }
21 | else if (playdeck.method === "requestPayment") {
22 | console.log(playdeck.value);
23 | _unityInstance?.SendMessage("PlayDeckBridge", "RequestPaymentHandler", JSON.stringify(playdeck.value))
24 | }
25 | else if (playdeck.method === "getPaymentInfo") {
26 | console.log(playdeck.value);
27 | _unityInstance?.SendMessage("PlayDeckBridge", "GetPaymentInfoHandler", JSON.stringify(playdeck.value))
28 | }
29 | else if (playdeck.method === 'invoiceClosed') {
30 | console.log(playdeck.value);
31 | _unityInstance?.SendMessage("PlayDeckBridge", "InvoiceClosedHandler", JSON.stringify(playdeck.value));
32 | }
33 | else if (playdeck.method === "getShareLink") {
34 | console.log(playdeck.value);
35 | _unityInstance?.SendMessage("PlayDeckBridge", "GetShareLinkHandler", playdeck.value);
36 | }
37 | else if (playdeck.method === "getPlaydeckState") {
38 | console.log(playdeck.value);
39 | _unityInstance?.SendMessage("PlayDeckBridge", "GetPlaydeckStateHandler", playdeck.value ? 1 : 0 );
40 | }
41 | else if (playdeck.method === "rewardedAd") {
42 | console.log(playdeck.value);
43 | _unityInstance?.SendMessage("PlayDeckBridge", "RewardedAdHandler", JSON.stringify(playdeck.value) );
44 | }
45 | else if (playdeck.method === "errAd") {
46 | console.log(playdeck.value);
47 | _unityInstance?.SendMessage("PlayDeckBridge", "ErrAdHandler", JSON.stringify(playdeck.value) );
48 | }
49 | else if (playdeck.method === "skipAd") {
50 | console.log(playdeck.value);
51 | _unityInstance?.SendMessage("PlayDeckBridge", "SkipAdHandler", JSON.stringify(playdeck.value) );
52 | }
53 | else if (playdeck.method === "notFoundAd") {
54 | console.log(playdeck.value);
55 | _unityInstance?.SendMessage("PlayDeckBridge", "NotFoundAdHandler", JSON.stringify(playdeck.value) );
56 | }
57 | else if (playdeck.method === "startAd") {
58 | console.log(playdeck.value);
59 | _unityInstance?.SendMessage("PlayDeckBridge", "StartAdHandler", JSON.stringify(playdeck.value) );
60 | }
61 | }
62 |
63 | return {
64 | init: function(unityInstance){
65 | _unityInstance = unityInstance;
66 | window.addEventListener("message", handleReceiveMessage);
67 | },
68 |
69 | setLoadingProgress: function (progressValue) {
70 | _wrapper.postMessage({ playdeck: { method: "loading", value: progressValue } }, "*")
71 | }
72 | };
73 | });
74 |
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "defaultInstantiationMode": 0
8 | },
9 | {
10 | "userAdded": false,
11 | "type": "UnityEditor.Animations.AnimatorController",
12 | "defaultInstantiationMode": 0
13 | },
14 | {
15 | "userAdded": false,
16 | "type": "UnityEngine.AnimatorOverrideController",
17 | "defaultInstantiationMode": 0
18 | },
19 | {
20 | "userAdded": false,
21 | "type": "UnityEditor.Audio.AudioMixerController",
22 | "defaultInstantiationMode": 0
23 | },
24 | {
25 | "userAdded": false,
26 | "type": "UnityEngine.ComputeShader",
27 | "defaultInstantiationMode": 1
28 | },
29 | {
30 | "userAdded": false,
31 | "type": "UnityEngine.Cubemap",
32 | "defaultInstantiationMode": 0
33 | },
34 | {
35 | "userAdded": false,
36 | "type": "UnityEngine.GameObject",
37 | "defaultInstantiationMode": 0
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEditor.LightingDataAsset",
42 | "defaultInstantiationMode": 0
43 | },
44 | {
45 | "userAdded": false,
46 | "type": "UnityEngine.LightingSettings",
47 | "defaultInstantiationMode": 0
48 | },
49 | {
50 | "userAdded": false,
51 | "type": "UnityEngine.Material",
52 | "defaultInstantiationMode": 0
53 | },
54 | {
55 | "userAdded": false,
56 | "type": "UnityEditor.MonoScript",
57 | "defaultInstantiationMode": 1
58 | },
59 | {
60 | "userAdded": false,
61 | "type": "UnityEngine.PhysicMaterial",
62 | "defaultInstantiationMode": 0
63 | },
64 | {
65 | "userAdded": false,
66 | "type": "UnityEngine.PhysicsMaterial2D",
67 | "defaultInstantiationMode": 0
68 | },
69 | {
70 | "userAdded": false,
71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
72 | "defaultInstantiationMode": 0
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
77 | "defaultInstantiationMode": 0
78 | },
79 | {
80 | "userAdded": false,
81 | "type": "UnityEngine.Rendering.VolumeProfile",
82 | "defaultInstantiationMode": 0
83 | },
84 | {
85 | "userAdded": false,
86 | "type": "UnityEditor.SceneAsset",
87 | "defaultInstantiationMode": 1
88 | },
89 | {
90 | "userAdded": false,
91 | "type": "UnityEngine.Shader",
92 | "defaultInstantiationMode": 1
93 | },
94 | {
95 | "userAdded": false,
96 | "type": "UnityEngine.ShaderVariantCollection",
97 | "defaultInstantiationMode": 1
98 | },
99 | {
100 | "userAdded": false,
101 | "type": "UnityEngine.Texture",
102 | "defaultInstantiationMode": 0
103 | },
104 | {
105 | "userAdded": false,
106 | "type": "UnityEngine.Texture2D",
107 | "defaultInstantiationMode": 0
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Timeline.TimelineAsset",
112 | "defaultInstantiationMode": 0
113 | }
114 | ],
115 | "defaultDependencyTypeInfo": {
116 | "userAdded": false,
117 | "type": "",
118 | "defaultInstantiationMode": 1
119 | },
120 | "newSceneOverride": 0
121 | }
--------------------------------------------------------------------------------
/Assets/PlayDeck/Plugins/WebGL/PlayDeckBridge.jslib:
--------------------------------------------------------------------------------
1 | mergeInto(LibraryManager.library, {
2 | PlayDeckBridge_PostMessage: function (method) {
3 | const parent = window.parent.window;
4 | parent.postMessage(
5 | { playdeck: { method: UTF8ToString(method) } },
6 | "*"
7 | );
8 | },
9 |
10 | PlayDeckBridge_PostMessage_IntValue: function (method, value) {
11 | const parent = window.parent.window;
12 | parent.postMessage(
13 | { playdeck: { method: UTF8ToString(method), value: value } },
14 | "*"
15 | );
16 | },
17 |
18 | PlayDeckBridge_PostMessage_StringValue: function (method, value) {
19 | const parent = window.parent.window;
20 | parent.postMessage(
21 | { playdeck: { method: UTF8ToString(method), value: UTF8ToString(value) } },
22 | "*"
23 | );
24 | },
25 |
26 | PlayDeckBridge_PostMessage_SetData: function (key, value) {
27 | const parent = window.parent.window;
28 | parent.postMessage(
29 | { playdeck: { method: "setData", key: UTF8ToString(key), value: UTF8ToString(value) } },
30 | "*"
31 | );
32 | },
33 |
34 | PlayDeckBridge_PostMessage_GetData: function (key) {
35 | const parent = window.parent.window;
36 | parent.postMessage(
37 | { playdeck: { method: "getData", key: UTF8ToString(key) } },
38 | "*"
39 | );
40 | },
41 |
42 | PlayDeckBridge_PostMessage_RequestPayment: function(data) {
43 | const parent = window.parent.window;
44 | const jsonData = JSON.parse(UTF8ToString(data));
45 | console.log(jsonData);
46 | parent.postMessage(
47 | { playdeck: { method: "requestPayment", value: jsonData } },
48 | "*"
49 | );
50 | },
51 |
52 | PlayDeckBridge_PostMessage_GetPaymentInfo: function(data) {
53 | const parent = window.parent.window;
54 | const jsonData = JSON.parse(UTF8ToString(data));
55 | console.log(jsonData);
56 | parent.postMessage(
57 | { playdeck: { method: "getPaymentInfo", value: jsonData } },
58 | "*"
59 | );
60 | },
61 |
62 | PlayDeckBridge_PostMessage_CustomShare: function(data) {
63 | const parent = window.parent.window;
64 | const jsonData = JSON.parse(UTF8ToString(data));
65 | console.log(jsonData);
66 | parent.postMessage(
67 | { playdeck: { method: "customShare", value: jsonData } },
68 | "*"
69 | );
70 | },
71 |
72 | PlayDeckBridge_PostMessage_GetShareLink: function(data) {
73 | const parent = window.parent.window;
74 | const jsonData = JSON.parse(UTF8ToString(data));
75 | console.log(jsonData);
76 | parent.postMessage(
77 | { playdeck: { method: "getShareLink", value: jsonData } },
78 | "*"
79 | );
80 | },
81 |
82 | PlayDeckBridge_PostMessage_OpenTelegramLink: function(data) {
83 | const parent = window.parent.window;
84 | const link = UTF8ToString(data);
85 | console.log(link);
86 | parent.postMessage(
87 | { playdeck: { method: "openTelegramLink", value: link } },
88 | "*"
89 | );
90 | },
91 |
92 | PlayDeckBridge_PostMessage_GetPlaydeckState: function() {
93 | const parent = window.parent.window;
94 | parent.postMessage(
95 | { playdeck: { method: "getPlaydeckState" } },
96 | "*"
97 | );
98 | },
99 |
100 | PlayDeckBridge_PostMessage_GameEnd: function() {
101 | const parent = window.parent.window;
102 | parent.postMessage(
103 | { playdeck: { method: "gameEnd" } },
104 | "*"
105 | );
106 | },
107 |
108 | PlayDeckBridge_PostMessage_SendGameProgress: function(data) {
109 | const parent = window.parent.window;
110 | const jsonData = JSON.parse(UTF8ToString(data));
111 | console.log(jsonData);
112 | parent.postMessage(
113 | { playdeck: { method: "sendGameProgress", value: jsonData } },
114 | "*"
115 | );
116 | },
117 |
118 | PlayDeckBridge_PostMessage_SendAnalyticsNewSession: function() {
119 | const parent = window.parent.window;
120 | parent.postMessage(
121 | { playdeck: { method: "sendAnalyticsNewSession" } },
122 | "*"
123 | );
124 | },
125 |
126 | PlayDeckBridge_PostMessage_SendAnalytics: function(data) {
127 | const parent = window.parent.window;
128 | const jsonData = JSON.parse(UTF8ToString(data));
129 | console.log(jsonData);
130 | parent.postMessage(
131 | { playdeck: { method: "sendAnalytics", value: jsonData } },
132 | "*"
133 | );
134 | },
135 |
136 | PlayDeckBridge_PostMessage_ShowAd: function() {
137 | const parent = window.parent.window;
138 | parent.postMessage(
139 | { playdeck: { method: "showAd" } },
140 | "*"
141 | );
142 | }
143 | });
144 |
--------------------------------------------------------------------------------
/Assets/Scripts/GameController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using PlayDeck;
4 | using UnityEngine;
5 | using UnityEngine.UI;
6 |
7 | public class GameController : MonoBehaviour
8 | {
9 | [SerializeField] private PlayDeckBridge _playDeckBridge;
10 | [SerializeField] private MessageViewer _messageViewer;
11 |
12 | [Header("Set Data")]
13 | [SerializeField] private InputField _setDataKeyInput;
14 | [SerializeField] private InputField _setDataValueInput;
15 |
16 | [Header("Get Data")]
17 | [SerializeField] private InputField _getDataKeyInput;
18 |
19 | [Header("Custom Share")]
20 | [SerializeField] private InputField _customShareKey;
21 | [SerializeField] private InputField _customShareValue;
22 |
23 | [Header("Get Share Link")]
24 | [SerializeField] private InputField _getShareLinkKey;
25 | [SerializeField] private InputField _getShareLinkValue;
26 |
27 | [Header("Open Telegram Link")]
28 | [SerializeField] private InputField _openTelegramLink;
29 |
30 | [Header("Payment Request")]
31 | [SerializeField] private InputField _paymentRequestAmount;
32 | [SerializeField] private InputField _paymentRequestDescription;
33 | [SerializeField] private InputField _paymentRequestExternalId;
34 | [SerializeField] private InputField _paymentRequestPhotoUrl;
35 |
36 | [Header("Get Payment Info")]
37 | [SerializeField] private InputField _getPaymentInfoExternalId;
38 |
39 | private string _setDataKeyValue;
40 | private string _setDataValueValue;
41 |
42 | private string _getDataKeyValue;
43 |
44 | private string _paymentRequestAmountValue;
45 | private string _paymentRequestDescriptionValue;
46 | private string _paymentRequestExternalIdValue;
47 | private string _paymentRequestPhotoUrlValue;
48 |
49 | private string _getPaymentInfoExternalIdValue;
50 | private string _customShareKeyValue;
51 | private string _customShareValueValue;
52 |
53 | private string _getShareLinkKeyValue;
54 | private string _getShareLinkValueValue;
55 | private string _openTelegramLinkValue;
56 |
57 | public void Start()
58 | {
59 | _paymentRequestAmount.onValueChanged.AddListener(val => _paymentRequestAmountValue = val);
60 | _paymentRequestDescription.onValueChanged.AddListener(val => _paymentRequestDescriptionValue = val);
61 | _paymentRequestExternalId.onValueChanged.AddListener(val => _paymentRequestExternalIdValue = val);
62 | _paymentRequestPhotoUrl.onValueChanged.AddListener(val => _paymentRequestPhotoUrlValue = val);
63 | _getPaymentInfoExternalId.onValueChanged.AddListener(val => _getPaymentInfoExternalIdValue = val);
64 |
65 | _customShareKey.onValueChanged.AddListener(val => _customShareKeyValue = val);
66 | _customShareValue.onValueChanged.AddListener(val => _customShareValueValue = val);
67 |
68 | _getShareLinkKey.onValueChanged.AddListener(val => _getShareLinkKeyValue = val);
69 | _getShareLinkValue.onValueChanged.AddListener(val => _getShareLinkValueValue = val);
70 |
71 | _getDataKeyInput.onValueChanged.AddListener(val => _getDataKeyValue = val);
72 |
73 | _setDataKeyInput.onValueChanged.AddListener(val => _setDataKeyValue = val);
74 | _setDataValueInput.onValueChanged.AddListener(val => _setDataValueValue = val);
75 |
76 | _openTelegramLink.onValueChanged.AddListener(val => _openTelegramLinkValue = val);
77 |
78 | TrackInvoiceClosed();
79 | }
80 |
81 | public void GetData()
82 | {
83 | _playDeckBridge.GetData(_getDataKeyValue, (data) =>
84 | {
85 | Debug.Log($"Data from PlayDeckBridge: [key: {_getDataKeyValue}][value: {data}]");
86 |
87 | _messageViewer.Show($"Data from PlayDeckBridge: [key: {_getDataKeyValue}][value: {data}]");
88 | });
89 | }
90 |
91 | public void GetUserProfile()
92 | {
93 | _playDeckBridge.GetUserProfile((userData) =>
94 | {
95 | Debug.Log($"UserData from PlayDeckBridge: {JsonUtility.ToJson(userData)}");
96 |
97 | _messageViewer.Show($"UserData from PlayDeckBridge: {JsonUtility.ToJson(userData)}");
98 | });
99 | }
100 |
101 | public void SetData()
102 | {
103 | _playDeckBridge.SetData(_setDataKeyValue, _setDataValueValue);
104 | }
105 |
106 | public void RequestPayment()
107 | {
108 | _playDeckBridge.RequestPayment(new PlayDeckBridge.PaymentRequestData()
109 | {
110 | amount = Convert.ToInt32(_paymentRequestAmountValue),
111 | description = _paymentRequestDescriptionValue,
112 | externalId = _paymentRequestExternalIdValue,
113 | photoUrl = _paymentRequestPhotoUrlValue
114 | }, responseData =>
115 | {
116 | Debug.Log("[Unity] Request payment response: " + JsonUtility.ToJson(responseData));
117 |
118 | _messageViewer.Show($"Request payment response: " + JsonUtility.ToJson(responseData));
119 |
120 | _playDeckBridge.OpenTelegramLink(responseData.url);
121 | });
122 | }
123 |
124 | public void TrackInvoiceClosed()
125 | {
126 | _playDeckBridge.TrackInvoiceClosed(status =>
127 | {
128 | Debug.Log("[Unity] Invoice closed status: " + status);
129 |
130 | _messageViewer.Show($"Invoice closed status: " + status);
131 | });
132 | }
133 |
134 | public void GetPaymentInfo()
135 | {
136 | _playDeckBridge.GetPaymentInfo(new PlayDeckBridge.GetPaymentInfoRequestData()
137 | {
138 | externalId = _getPaymentInfoExternalIdValue,
139 | }, responseData =>
140 | {
141 | Debug.Log("[Unity] Get payment response: " + JsonUtility.ToJson(responseData));
142 |
143 | _messageViewer.Show($"Get payment response: " + JsonUtility.ToJson(responseData));
144 | });
145 | }
146 |
147 | public void CustomShare()
148 | {
149 | var @params = new Dictionary { { _customShareKeyValue, _customShareValueValue } };
150 |
151 | Debug.Log($"{_customShareKeyValue}:{_customShareValueValue}");
152 |
153 | _playDeckBridge.CustomShare(@params);
154 | }
155 |
156 | public void GetShareLink()
157 | {
158 | var @params = new Dictionary { { _getShareLinkKeyValue, _getShareLinkValueValue } };
159 |
160 | Debug.Log($"{_getShareLinkKeyValue}:{_getShareLinkValueValue}");
161 |
162 | _playDeckBridge.GetShareLink(@params, link =>
163 | {
164 | Debug.Log($"[Unity] Share Link: {link}");
165 |
166 | _messageViewer.Show($"Share Link: {link}");
167 | });
168 | }
169 |
170 | public void OpenTelegramLink()
171 | {
172 | _playDeckBridge.OpenTelegramLink(_openTelegramLinkValue);
173 | }
174 |
175 | public void GetPlaydeckState()
176 | {
177 | _playDeckBridge.GetPlaydeckState(state =>
178 | {
179 | Debug.Log($"[Unity] Get Playdeck State: {state}");
180 |
181 | _messageViewer.Show($"Get Playdeck State: {state}");
182 | });
183 | }
184 |
185 | public void GameEnd()
186 | {
187 | _playDeckBridge.GameEnd();
188 | }
189 |
190 | public void SendGameProgress()
191 | {
192 | _playDeckBridge.SendGameProgress(new PlayDeckBridge.AnalyticsGameProgress()
193 | {
194 | achievements = new List()
195 | {
196 | new PlayDeckBridge.AnalyticsAchievement()
197 | {
198 | name = "test",
199 | description = "test_description",
200 | points = 5,
201 | value = 6,
202 | additional_data = new Dictionary()
203 | {
204 | ["somekey"] = "somevalue"
205 | }
206 | }
207 | },
208 | progress = new PlayDeckBridge.AnalyticsProgress()
209 | {
210 | level = 1,
211 | xp = 3
212 | }
213 | });
214 | }
215 |
216 | public void SendAnalyticsNewSession()
217 | {
218 | _playDeckBridge.SendAnalyticsNewSession();
219 | }
220 |
221 | public void SendAnalytics()
222 | {
223 | _playDeckBridge.SendAnalytics(new PlayDeckBridge.AnalyticsEvent()
224 | {
225 | name = "test_event",
226 | type = "click",
227 | event_properties = new Dictionary()
228 | {
229 | ["some_event_property"] = "some_event_property_value"
230 | },
231 | user_properties = new Dictionary()
232 | {
233 | ["some_user_property"] = "some_user_property_value"
234 | }
235 | });
236 | }
237 |
238 | public void ShowAd()
239 | {
240 | _playDeckBridge.ShowAd(
241 | OnRewardedAd,
242 | OnErrAd,
243 | OnSkipAd,
244 | OnNotFoundAd,
245 | OnStartAd);
246 | }
247 |
248 | private void OnRewardedAd(string data)
249 | {
250 | Debug.Log($"[Unity] OnRewardedAd: {data}");
251 | _messageViewer.Show($"OnRewardedAd: {data}");
252 | }
253 |
254 | private void OnErrAd(string data)
255 | {
256 | Debug.Log($"[Unity] OnErrAd: {data}");
257 | _messageViewer.Show($"OnErrAd: {data}");
258 | }
259 |
260 | private void OnSkipAd(string data)
261 | {
262 | Debug.Log($"[Unity] OnSkipAd: {data}");
263 | _messageViewer.Show($"OnSkipAd: {data}");
264 | }
265 |
266 | private void OnNotFoundAd(string data)
267 | {
268 | Debug.Log($"[Unity] OnNotFoundAd: {data}");
269 | _messageViewer.Show($"OnNotFoundAd: {data}");
270 | }
271 |
272 | private void OnStartAd(string data)
273 | {
274 | Debug.Log($"[Unity] OnStartAd: {data}");
275 | _messageViewer.Show($"OnStartAd: {data}");
276 | }
277 | }
--------------------------------------------------------------------------------
/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: 3
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 | skinWeights: 1
22 | globalTextureMipmapLimit: 1
23 | textureMipmapLimitSettings: []
24 | anisotropicTextures: 0
25 | antiAliasing: 0
26 | softParticles: 0
27 | softVegetation: 0
28 | realtimeReflectionProbes: 0
29 | billboardsFaceCameraPosition: 0
30 | useLegacyDetailDistribution: 1
31 | vSyncCount: 0
32 | realtimeGICPUUsage: 25
33 | lodBias: 0.3
34 | maximumLODLevel: 0
35 | enableLODCrossFade: 1
36 | streamingMipmapsActive: 0
37 | streamingMipmapsAddAllCameras: 1
38 | streamingMipmapsMemoryBudget: 512
39 | streamingMipmapsRenderersPerFrame: 512
40 | streamingMipmapsMaxLevelReduction: 2
41 | streamingMipmapsMaxFileIORequests: 1024
42 | particleRaycastBudget: 4
43 | asyncUploadTimeSlice: 2
44 | asyncUploadBufferSize: 16
45 | asyncUploadPersistentBuffer: 1
46 | resolutionScalingFixedDPIFactor: 1
47 | customRenderPipeline: {fileID: 0}
48 | terrainQualityOverrides: 0
49 | terrainPixelError: 1
50 | terrainDetailDensityScale: 1
51 | terrainBasemapDistance: 1000
52 | terrainDetailDistance: 80
53 | terrainTreeDistance: 5000
54 | terrainBillboardStart: 50
55 | terrainFadeLength: 5
56 | terrainMaxTrees: 50
57 | excludedTargetPlatforms: []
58 | - serializedVersion: 3
59 | name: Low
60 | pixelLightCount: 0
61 | shadows: 0
62 | shadowResolution: 0
63 | shadowProjection: 1
64 | shadowCascades: 1
65 | shadowDistance: 20
66 | shadowNearPlaneOffset: 3
67 | shadowCascade2Split: 0.33333334
68 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
69 | shadowmaskMode: 0
70 | skinWeights: 2
71 | globalTextureMipmapLimit: 0
72 | textureMipmapLimitSettings: []
73 | anisotropicTextures: 0
74 | antiAliasing: 0
75 | softParticles: 0
76 | softVegetation: 0
77 | realtimeReflectionProbes: 0
78 | billboardsFaceCameraPosition: 0
79 | useLegacyDetailDistribution: 1
80 | vSyncCount: 0
81 | realtimeGICPUUsage: 25
82 | lodBias: 0.4
83 | maximumLODLevel: 0
84 | enableLODCrossFade: 1
85 | streamingMipmapsActive: 0
86 | streamingMipmapsAddAllCameras: 1
87 | streamingMipmapsMemoryBudget: 512
88 | streamingMipmapsRenderersPerFrame: 512
89 | streamingMipmapsMaxLevelReduction: 2
90 | streamingMipmapsMaxFileIORequests: 1024
91 | particleRaycastBudget: 16
92 | asyncUploadTimeSlice: 2
93 | asyncUploadBufferSize: 16
94 | asyncUploadPersistentBuffer: 1
95 | resolutionScalingFixedDPIFactor: 1
96 | customRenderPipeline: {fileID: 0}
97 | terrainQualityOverrides: 0
98 | terrainPixelError: 1
99 | terrainDetailDensityScale: 1
100 | terrainBasemapDistance: 1000
101 | terrainDetailDistance: 80
102 | terrainTreeDistance: 5000
103 | terrainBillboardStart: 50
104 | terrainFadeLength: 5
105 | terrainMaxTrees: 50
106 | excludedTargetPlatforms: []
107 | - serializedVersion: 3
108 | name: Medium
109 | pixelLightCount: 1
110 | shadows: 1
111 | shadowResolution: 0
112 | shadowProjection: 1
113 | shadowCascades: 1
114 | shadowDistance: 20
115 | shadowNearPlaneOffset: 3
116 | shadowCascade2Split: 0.33333334
117 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
118 | shadowmaskMode: 0
119 | skinWeights: 2
120 | globalTextureMipmapLimit: 0
121 | textureMipmapLimitSettings: []
122 | anisotropicTextures: 1
123 | antiAliasing: 0
124 | softParticles: 0
125 | softVegetation: 0
126 | realtimeReflectionProbes: 0
127 | billboardsFaceCameraPosition: 0
128 | useLegacyDetailDistribution: 1
129 | vSyncCount: 1
130 | realtimeGICPUUsage: 25
131 | lodBias: 0.7
132 | maximumLODLevel: 0
133 | enableLODCrossFade: 1
134 | streamingMipmapsActive: 0
135 | streamingMipmapsAddAllCameras: 1
136 | streamingMipmapsMemoryBudget: 512
137 | streamingMipmapsRenderersPerFrame: 512
138 | streamingMipmapsMaxLevelReduction: 2
139 | streamingMipmapsMaxFileIORequests: 1024
140 | particleRaycastBudget: 64
141 | asyncUploadTimeSlice: 2
142 | asyncUploadBufferSize: 16
143 | asyncUploadPersistentBuffer: 1
144 | resolutionScalingFixedDPIFactor: 1
145 | customRenderPipeline: {fileID: 0}
146 | terrainQualityOverrides: 0
147 | terrainPixelError: 1
148 | terrainDetailDensityScale: 1
149 | terrainBasemapDistance: 1000
150 | terrainDetailDistance: 80
151 | terrainTreeDistance: 5000
152 | terrainBillboardStart: 50
153 | terrainFadeLength: 5
154 | terrainMaxTrees: 50
155 | excludedTargetPlatforms: []
156 | - serializedVersion: 3
157 | name: High
158 | pixelLightCount: 2
159 | shadows: 2
160 | shadowResolution: 1
161 | shadowProjection: 1
162 | shadowCascades: 2
163 | shadowDistance: 40
164 | shadowNearPlaneOffset: 3
165 | shadowCascade2Split: 0.33333334
166 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
167 | shadowmaskMode: 1
168 | skinWeights: 2
169 | globalTextureMipmapLimit: 0
170 | textureMipmapLimitSettings: []
171 | anisotropicTextures: 1
172 | antiAliasing: 0
173 | softParticles: 0
174 | softVegetation: 1
175 | realtimeReflectionProbes: 1
176 | billboardsFaceCameraPosition: 1
177 | useLegacyDetailDistribution: 1
178 | vSyncCount: 1
179 | realtimeGICPUUsage: 50
180 | lodBias: 1
181 | maximumLODLevel: 0
182 | enableLODCrossFade: 1
183 | streamingMipmapsActive: 0
184 | streamingMipmapsAddAllCameras: 1
185 | streamingMipmapsMemoryBudget: 512
186 | streamingMipmapsRenderersPerFrame: 512
187 | streamingMipmapsMaxLevelReduction: 2
188 | streamingMipmapsMaxFileIORequests: 1024
189 | particleRaycastBudget: 256
190 | asyncUploadTimeSlice: 2
191 | asyncUploadBufferSize: 16
192 | asyncUploadPersistentBuffer: 1
193 | resolutionScalingFixedDPIFactor: 1
194 | customRenderPipeline: {fileID: 0}
195 | terrainQualityOverrides: 0
196 | terrainPixelError: 1
197 | terrainDetailDensityScale: 1
198 | terrainBasemapDistance: 1000
199 | terrainDetailDistance: 80
200 | terrainTreeDistance: 5000
201 | terrainBillboardStart: 50
202 | terrainFadeLength: 5
203 | terrainMaxTrees: 50
204 | excludedTargetPlatforms: []
205 | - serializedVersion: 3
206 | name: Very High
207 | pixelLightCount: 3
208 | shadows: 2
209 | shadowResolution: 2
210 | shadowProjection: 1
211 | shadowCascades: 2
212 | shadowDistance: 70
213 | shadowNearPlaneOffset: 3
214 | shadowCascade2Split: 0.33333334
215 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
216 | shadowmaskMode: 1
217 | skinWeights: 4
218 | globalTextureMipmapLimit: 0
219 | textureMipmapLimitSettings: []
220 | anisotropicTextures: 2
221 | antiAliasing: 2
222 | softParticles: 1
223 | softVegetation: 1
224 | realtimeReflectionProbes: 1
225 | billboardsFaceCameraPosition: 1
226 | useLegacyDetailDistribution: 1
227 | vSyncCount: 1
228 | realtimeGICPUUsage: 50
229 | lodBias: 1.5
230 | maximumLODLevel: 0
231 | enableLODCrossFade: 1
232 | streamingMipmapsActive: 0
233 | streamingMipmapsAddAllCameras: 1
234 | streamingMipmapsMemoryBudget: 512
235 | streamingMipmapsRenderersPerFrame: 512
236 | streamingMipmapsMaxLevelReduction: 2
237 | streamingMipmapsMaxFileIORequests: 1024
238 | particleRaycastBudget: 1024
239 | asyncUploadTimeSlice: 2
240 | asyncUploadBufferSize: 16
241 | asyncUploadPersistentBuffer: 1
242 | resolutionScalingFixedDPIFactor: 1
243 | customRenderPipeline: {fileID: 0}
244 | terrainQualityOverrides: 0
245 | terrainPixelError: 1
246 | terrainDetailDensityScale: 1
247 | terrainBasemapDistance: 1000
248 | terrainDetailDistance: 80
249 | terrainTreeDistance: 5000
250 | terrainBillboardStart: 50
251 | terrainFadeLength: 5
252 | terrainMaxTrees: 50
253 | excludedTargetPlatforms: []
254 | - serializedVersion: 3
255 | name: Ultra
256 | pixelLightCount: 4
257 | shadows: 2
258 | shadowResolution: 2
259 | shadowProjection: 1
260 | shadowCascades: 4
261 | shadowDistance: 150
262 | shadowNearPlaneOffset: 3
263 | shadowCascade2Split: 0.33333334
264 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
265 | shadowmaskMode: 1
266 | skinWeights: 255
267 | globalTextureMipmapLimit: 0
268 | textureMipmapLimitSettings: []
269 | anisotropicTextures: 2
270 | antiAliasing: 2
271 | softParticles: 1
272 | softVegetation: 1
273 | realtimeReflectionProbes: 1
274 | billboardsFaceCameraPosition: 1
275 | useLegacyDetailDistribution: 1
276 | vSyncCount: 1
277 | realtimeGICPUUsage: 100
278 | lodBias: 2
279 | maximumLODLevel: 0
280 | enableLODCrossFade: 1
281 | streamingMipmapsActive: 0
282 | streamingMipmapsAddAllCameras: 1
283 | streamingMipmapsMemoryBudget: 512
284 | streamingMipmapsRenderersPerFrame: 512
285 | streamingMipmapsMaxLevelReduction: 2
286 | streamingMipmapsMaxFileIORequests: 1024
287 | particleRaycastBudget: 4096
288 | asyncUploadTimeSlice: 2
289 | asyncUploadBufferSize: 16
290 | asyncUploadPersistentBuffer: 1
291 | resolutionScalingFixedDPIFactor: 1
292 | customRenderPipeline: {fileID: 0}
293 | terrainQualityOverrides: 0
294 | terrainPixelError: 1
295 | terrainDetailDensityScale: 1
296 | terrainBasemapDistance: 1000
297 | terrainDetailDistance: 80
298 | terrainTreeDistance: 5000
299 | terrainBillboardStart: 50
300 | terrainFadeLength: 5
301 | terrainMaxTrees: 50
302 | excludedTargetPlatforms: []
303 | m_TextureMipmapLimitGroupNames: []
304 | m_PerPlatformDefaultQuality:
305 | Android: 2
306 | GameCoreScarlett: 5
307 | GameCoreXboxOne: 5
308 | Lumin: 5
309 | Nintendo Switch: 5
310 | PS4: 5
311 | PS5: 5
312 | Server: 0
313 | Stadia: 5
314 | Standalone: 5
315 | WebGL: 3
316 | Windows Store Apps: 5
317 | XboxOne: 5
318 | iPhone: 2
319 | tvOS: 2
320 |
--------------------------------------------------------------------------------
/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 | - serializedVersion: 3
297 | m_Name: Enable Debug Button 1
298 | descriptiveName:
299 | descriptiveNegativeName:
300 | negativeButton:
301 | positiveButton: left ctrl
302 | altNegativeButton:
303 | altPositiveButton: joystick button 8
304 | gravity: 0
305 | dead: 0
306 | sensitivity: 0
307 | snap: 0
308 | invert: 0
309 | type: 0
310 | axis: 0
311 | joyNum: 0
312 | - serializedVersion: 3
313 | m_Name: Enable Debug Button 2
314 | descriptiveName:
315 | descriptiveNegativeName:
316 | negativeButton:
317 | positiveButton: backspace
318 | altNegativeButton:
319 | altPositiveButton: joystick button 9
320 | gravity: 0
321 | dead: 0
322 | sensitivity: 0
323 | snap: 0
324 | invert: 0
325 | type: 0
326 | axis: 0
327 | joyNum: 0
328 | - serializedVersion: 3
329 | m_Name: Debug Reset
330 | descriptiveName:
331 | descriptiveNegativeName:
332 | negativeButton:
333 | positiveButton: left alt
334 | altNegativeButton:
335 | altPositiveButton: joystick button 1
336 | gravity: 0
337 | dead: 0
338 | sensitivity: 0
339 | snap: 0
340 | invert: 0
341 | type: 0
342 | axis: 0
343 | joyNum: 0
344 | - serializedVersion: 3
345 | m_Name: Debug Next
346 | descriptiveName:
347 | descriptiveNegativeName:
348 | negativeButton:
349 | positiveButton: page down
350 | altNegativeButton:
351 | altPositiveButton: joystick button 5
352 | gravity: 0
353 | dead: 0
354 | sensitivity: 0
355 | snap: 0
356 | invert: 0
357 | type: 0
358 | axis: 0
359 | joyNum: 0
360 | - serializedVersion: 3
361 | m_Name: Debug Previous
362 | descriptiveName:
363 | descriptiveNegativeName:
364 | negativeButton:
365 | positiveButton: page up
366 | altNegativeButton:
367 | altPositiveButton: joystick button 4
368 | gravity: 0
369 | dead: 0
370 | sensitivity: 0
371 | snap: 0
372 | invert: 0
373 | type: 0
374 | axis: 0
375 | joyNum: 0
376 | - serializedVersion: 3
377 | m_Name: Debug Validate
378 | descriptiveName:
379 | descriptiveNegativeName:
380 | negativeButton:
381 | positiveButton: return
382 | altNegativeButton:
383 | altPositiveButton: joystick button 0
384 | gravity: 0
385 | dead: 0
386 | sensitivity: 0
387 | snap: 0
388 | invert: 0
389 | type: 0
390 | axis: 0
391 | joyNum: 0
392 | - serializedVersion: 3
393 | m_Name: Debug Persistent
394 | descriptiveName:
395 | descriptiveNegativeName:
396 | negativeButton:
397 | positiveButton: right shift
398 | altNegativeButton:
399 | altPositiveButton: joystick button 2
400 | gravity: 0
401 | dead: 0
402 | sensitivity: 0
403 | snap: 0
404 | invert: 0
405 | type: 0
406 | axis: 0
407 | joyNum: 0
408 | - serializedVersion: 3
409 | m_Name: Debug Multiplier
410 | descriptiveName:
411 | descriptiveNegativeName:
412 | negativeButton:
413 | positiveButton: left shift
414 | altNegativeButton:
415 | altPositiveButton: joystick button 3
416 | gravity: 0
417 | dead: 0
418 | sensitivity: 0
419 | snap: 0
420 | invert: 0
421 | type: 0
422 | axis: 0
423 | joyNum: 0
424 | - serializedVersion: 3
425 | m_Name: Debug Horizontal
426 | descriptiveName:
427 | descriptiveNegativeName:
428 | negativeButton: left
429 | positiveButton: right
430 | altNegativeButton:
431 | altPositiveButton:
432 | gravity: 1000
433 | dead: 0.001
434 | sensitivity: 1000
435 | snap: 0
436 | invert: 0
437 | type: 0
438 | axis: 0
439 | joyNum: 0
440 | - serializedVersion: 3
441 | m_Name: Debug Vertical
442 | descriptiveName:
443 | descriptiveNegativeName:
444 | negativeButton: down
445 | positiveButton: up
446 | altNegativeButton:
447 | altPositiveButton:
448 | gravity: 1000
449 | dead: 0.001
450 | sensitivity: 1000
451 | snap: 0
452 | invert: 0
453 | type: 0
454 | axis: 0
455 | joyNum: 0
456 | - serializedVersion: 3
457 | m_Name: Debug Vertical
458 | descriptiveName:
459 | descriptiveNegativeName:
460 | negativeButton: down
461 | positiveButton: up
462 | altNegativeButton:
463 | altPositiveButton:
464 | gravity: 1000
465 | dead: 0.001
466 | sensitivity: 1000
467 | snap: 0
468 | invert: 0
469 | type: 2
470 | axis: 6
471 | joyNum: 0
472 | - serializedVersion: 3
473 | m_Name: Debug Horizontal
474 | descriptiveName:
475 | descriptiveNegativeName:
476 | negativeButton: left
477 | positiveButton: right
478 | altNegativeButton:
479 | altPositiveButton:
480 | gravity: 1000
481 | dead: 0.001
482 | sensitivity: 1000
483 | snap: 0
484 | invert: 0
485 | type: 2
486 | axis: 5
487 | joyNum: 0
488 |
--------------------------------------------------------------------------------
/Packages/packages-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.2d.animation": {
4 | "version": "9.0.3",
5 | "depth": 1,
6 | "source": "registry",
7 | "dependencies": {
8 | "com.unity.2d.common": "8.0.1",
9 | "com.unity.2d.sprite": "1.0.0",
10 | "com.unity.collections": "1.1.0",
11 | "com.unity.modules.animation": "1.0.0",
12 | "com.unity.modules.uielements": "1.0.0"
13 | },
14 | "url": "https://packages.unity.com"
15 | },
16 | "com.unity.2d.aseprite": {
17 | "version": "1.0.1",
18 | "depth": 1,
19 | "source": "registry",
20 | "dependencies": {
21 | "com.unity.2d.sprite": "1.0.0",
22 | "com.unity.2d.common": "6.0.6",
23 | "com.unity.mathematics": "1.2.6",
24 | "com.unity.modules.animation": "1.0.0"
25 | },
26 | "url": "https://packages.unity.com"
27 | },
28 | "com.unity.2d.common": {
29 | "version": "8.0.1",
30 | "depth": 2,
31 | "source": "registry",
32 | "dependencies": {
33 | "com.unity.2d.sprite": "1.0.0",
34 | "com.unity.mathematics": "1.1.0",
35 | "com.unity.modules.uielements": "1.0.0",
36 | "com.unity.modules.animation": "1.0.0",
37 | "com.unity.burst": "1.7.3"
38 | },
39 | "url": "https://packages.unity.com"
40 | },
41 | "com.unity.2d.pixel-perfect": {
42 | "version": "5.0.3",
43 | "depth": 1,
44 | "source": "registry",
45 | "dependencies": {},
46 | "url": "https://packages.unity.com"
47 | },
48 | "com.unity.2d.psdimporter": {
49 | "version": "8.0.2",
50 | "depth": 1,
51 | "source": "registry",
52 | "dependencies": {
53 | "com.unity.2d.animation": "9.0.1",
54 | "com.unity.2d.common": "8.0.1",
55 | "com.unity.2d.sprite": "1.0.0"
56 | },
57 | "url": "https://packages.unity.com"
58 | },
59 | "com.unity.2d.sprite": {
60 | "version": "1.0.0",
61 | "depth": 1,
62 | "source": "builtin",
63 | "dependencies": {}
64 | },
65 | "com.unity.2d.spriteshape": {
66 | "version": "9.0.2",
67 | "depth": 1,
68 | "source": "registry",
69 | "dependencies": {
70 | "com.unity.mathematics": "1.1.0",
71 | "com.unity.2d.common": "8.0.1",
72 | "com.unity.modules.physics2d": "1.0.0"
73 | },
74 | "url": "https://packages.unity.com"
75 | },
76 | "com.unity.2d.tilemap": {
77 | "version": "1.0.0",
78 | "depth": 1,
79 | "source": "builtin",
80 | "dependencies": {
81 | "com.unity.modules.tilemap": "1.0.0",
82 | "com.unity.modules.uielements": "1.0.0"
83 | }
84 | },
85 | "com.unity.2d.tilemap.extras": {
86 | "version": "3.1.1",
87 | "depth": 1,
88 | "source": "registry",
89 | "dependencies": {
90 | "com.unity.modules.tilemap": "1.0.0",
91 | "com.unity.2d.tilemap": "1.0.0",
92 | "com.unity.ugui": "1.0.0",
93 | "com.unity.modules.jsonserialize": "1.0.0"
94 | },
95 | "url": "https://packages.unity.com"
96 | },
97 | "com.unity.burst": {
98 | "version": "1.8.8",
99 | "depth": 3,
100 | "source": "registry",
101 | "dependencies": {
102 | "com.unity.mathematics": "1.2.1"
103 | },
104 | "url": "https://packages.unity.com"
105 | },
106 | "com.unity.collab-proxy": {
107 | "version": "2.2.0",
108 | "depth": 0,
109 | "source": "registry",
110 | "dependencies": {},
111 | "url": "https://packages.unity.com"
112 | },
113 | "com.unity.collections": {
114 | "version": "1.2.4",
115 | "depth": 2,
116 | "source": "registry",
117 | "dependencies": {
118 | "com.unity.burst": "1.6.6",
119 | "com.unity.test-framework": "1.1.31"
120 | },
121 | "url": "https://packages.unity.com"
122 | },
123 | "com.unity.ext.nunit": {
124 | "version": "1.0.6",
125 | "depth": 1,
126 | "source": "registry",
127 | "dependencies": {},
128 | "url": "https://packages.unity.com"
129 | },
130 | "com.unity.feature.2d": {
131 | "version": "2.0.0",
132 | "depth": 0,
133 | "source": "builtin",
134 | "dependencies": {
135 | "com.unity.2d.animation": "9.0.3",
136 | "com.unity.2d.pixel-perfect": "5.0.3",
137 | "com.unity.2d.psdimporter": "8.0.2",
138 | "com.unity.2d.sprite": "1.0.0",
139 | "com.unity.2d.spriteshape": "9.0.2",
140 | "com.unity.2d.tilemap": "1.0.0",
141 | "com.unity.2d.tilemap.extras": "3.1.1",
142 | "com.unity.2d.aseprite": "1.0.1"
143 | }
144 | },
145 | "com.unity.ide.rider": {
146 | "version": "3.0.24",
147 | "depth": 0,
148 | "source": "registry",
149 | "dependencies": {
150 | "com.unity.ext.nunit": "1.0.6"
151 | },
152 | "url": "https://packages.unity.com"
153 | },
154 | "com.unity.ide.visualstudio": {
155 | "version": "2.0.18",
156 | "depth": 0,
157 | "source": "registry",
158 | "dependencies": {
159 | "com.unity.test-framework": "1.1.9"
160 | },
161 | "url": "https://packages.unity.com"
162 | },
163 | "com.unity.mathematics": {
164 | "version": "1.2.6",
165 | "depth": 2,
166 | "source": "registry",
167 | "dependencies": {},
168 | "url": "https://packages.unity.com"
169 | },
170 | "com.unity.nuget.newtonsoft-json": {
171 | "version": "3.2.1",
172 | "depth": 0,
173 | "source": "registry",
174 | "dependencies": {},
175 | "url": "https://packages.unity.com"
176 | },
177 | "com.unity.test-framework": {
178 | "version": "1.1.33",
179 | "depth": 0,
180 | "source": "registry",
181 | "dependencies": {
182 | "com.unity.ext.nunit": "1.0.6",
183 | "com.unity.modules.imgui": "1.0.0",
184 | "com.unity.modules.jsonserialize": "1.0.0"
185 | },
186 | "url": "https://packages.unity.com"
187 | },
188 | "com.unity.textmeshpro": {
189 | "version": "3.0.6",
190 | "depth": 0,
191 | "source": "registry",
192 | "dependencies": {
193 | "com.unity.ugui": "1.0.0"
194 | },
195 | "url": "https://packages.unity.com"
196 | },
197 | "com.unity.timeline": {
198 | "version": "1.7.5",
199 | "depth": 0,
200 | "source": "registry",
201 | "dependencies": {
202 | "com.unity.modules.director": "1.0.0",
203 | "com.unity.modules.animation": "1.0.0",
204 | "com.unity.modules.audio": "1.0.0",
205 | "com.unity.modules.particlesystem": "1.0.0"
206 | },
207 | "url": "https://packages.unity.com"
208 | },
209 | "com.unity.ugui": {
210 | "version": "1.0.0",
211 | "depth": 0,
212 | "source": "builtin",
213 | "dependencies": {
214 | "com.unity.modules.ui": "1.0.0",
215 | "com.unity.modules.imgui": "1.0.0"
216 | }
217 | },
218 | "com.unity.visualscripting": {
219 | "version": "1.9.0",
220 | "depth": 0,
221 | "source": "registry",
222 | "dependencies": {
223 | "com.unity.ugui": "1.0.0",
224 | "com.unity.modules.jsonserialize": "1.0.0"
225 | },
226 | "url": "https://packages.unity.com"
227 | },
228 | "com.unity.modules.ai": {
229 | "version": "1.0.0",
230 | "depth": 0,
231 | "source": "builtin",
232 | "dependencies": {}
233 | },
234 | "com.unity.modules.androidjni": {
235 | "version": "1.0.0",
236 | "depth": 0,
237 | "source": "builtin",
238 | "dependencies": {}
239 | },
240 | "com.unity.modules.animation": {
241 | "version": "1.0.0",
242 | "depth": 0,
243 | "source": "builtin",
244 | "dependencies": {}
245 | },
246 | "com.unity.modules.assetbundle": {
247 | "version": "1.0.0",
248 | "depth": 0,
249 | "source": "builtin",
250 | "dependencies": {}
251 | },
252 | "com.unity.modules.audio": {
253 | "version": "1.0.0",
254 | "depth": 0,
255 | "source": "builtin",
256 | "dependencies": {}
257 | },
258 | "com.unity.modules.cloth": {
259 | "version": "1.0.0",
260 | "depth": 0,
261 | "source": "builtin",
262 | "dependencies": {
263 | "com.unity.modules.physics": "1.0.0"
264 | }
265 | },
266 | "com.unity.modules.director": {
267 | "version": "1.0.0",
268 | "depth": 0,
269 | "source": "builtin",
270 | "dependencies": {
271 | "com.unity.modules.audio": "1.0.0",
272 | "com.unity.modules.animation": "1.0.0"
273 | }
274 | },
275 | "com.unity.modules.imageconversion": {
276 | "version": "1.0.0",
277 | "depth": 0,
278 | "source": "builtin",
279 | "dependencies": {}
280 | },
281 | "com.unity.modules.imgui": {
282 | "version": "1.0.0",
283 | "depth": 0,
284 | "source": "builtin",
285 | "dependencies": {}
286 | },
287 | "com.unity.modules.jsonserialize": {
288 | "version": "1.0.0",
289 | "depth": 0,
290 | "source": "builtin",
291 | "dependencies": {}
292 | },
293 | "com.unity.modules.particlesystem": {
294 | "version": "1.0.0",
295 | "depth": 0,
296 | "source": "builtin",
297 | "dependencies": {}
298 | },
299 | "com.unity.modules.physics": {
300 | "version": "1.0.0",
301 | "depth": 0,
302 | "source": "builtin",
303 | "dependencies": {}
304 | },
305 | "com.unity.modules.physics2d": {
306 | "version": "1.0.0",
307 | "depth": 0,
308 | "source": "builtin",
309 | "dependencies": {}
310 | },
311 | "com.unity.modules.screencapture": {
312 | "version": "1.0.0",
313 | "depth": 0,
314 | "source": "builtin",
315 | "dependencies": {
316 | "com.unity.modules.imageconversion": "1.0.0"
317 | }
318 | },
319 | "com.unity.modules.subsystems": {
320 | "version": "1.0.0",
321 | "depth": 1,
322 | "source": "builtin",
323 | "dependencies": {
324 | "com.unity.modules.jsonserialize": "1.0.0"
325 | }
326 | },
327 | "com.unity.modules.terrain": {
328 | "version": "1.0.0",
329 | "depth": 0,
330 | "source": "builtin",
331 | "dependencies": {}
332 | },
333 | "com.unity.modules.terrainphysics": {
334 | "version": "1.0.0",
335 | "depth": 0,
336 | "source": "builtin",
337 | "dependencies": {
338 | "com.unity.modules.physics": "1.0.0",
339 | "com.unity.modules.terrain": "1.0.0"
340 | }
341 | },
342 | "com.unity.modules.tilemap": {
343 | "version": "1.0.0",
344 | "depth": 0,
345 | "source": "builtin",
346 | "dependencies": {
347 | "com.unity.modules.physics2d": "1.0.0"
348 | }
349 | },
350 | "com.unity.modules.ui": {
351 | "version": "1.0.0",
352 | "depth": 0,
353 | "source": "builtin",
354 | "dependencies": {}
355 | },
356 | "com.unity.modules.uielements": {
357 | "version": "1.0.0",
358 | "depth": 0,
359 | "source": "builtin",
360 | "dependencies": {
361 | "com.unity.modules.ui": "1.0.0",
362 | "com.unity.modules.imgui": "1.0.0",
363 | "com.unity.modules.jsonserialize": "1.0.0"
364 | }
365 | },
366 | "com.unity.modules.umbra": {
367 | "version": "1.0.0",
368 | "depth": 0,
369 | "source": "builtin",
370 | "dependencies": {}
371 | },
372 | "com.unity.modules.unityanalytics": {
373 | "version": "1.0.0",
374 | "depth": 0,
375 | "source": "builtin",
376 | "dependencies": {
377 | "com.unity.modules.unitywebrequest": "1.0.0",
378 | "com.unity.modules.jsonserialize": "1.0.0"
379 | }
380 | },
381 | "com.unity.modules.unitywebrequest": {
382 | "version": "1.0.0",
383 | "depth": 0,
384 | "source": "builtin",
385 | "dependencies": {}
386 | },
387 | "com.unity.modules.unitywebrequestassetbundle": {
388 | "version": "1.0.0",
389 | "depth": 0,
390 | "source": "builtin",
391 | "dependencies": {
392 | "com.unity.modules.assetbundle": "1.0.0",
393 | "com.unity.modules.unitywebrequest": "1.0.0"
394 | }
395 | },
396 | "com.unity.modules.unitywebrequestaudio": {
397 | "version": "1.0.0",
398 | "depth": 0,
399 | "source": "builtin",
400 | "dependencies": {
401 | "com.unity.modules.unitywebrequest": "1.0.0",
402 | "com.unity.modules.audio": "1.0.0"
403 | }
404 | },
405 | "com.unity.modules.unitywebrequesttexture": {
406 | "version": "1.0.0",
407 | "depth": 0,
408 | "source": "builtin",
409 | "dependencies": {
410 | "com.unity.modules.unitywebrequest": "1.0.0",
411 | "com.unity.modules.imageconversion": "1.0.0"
412 | }
413 | },
414 | "com.unity.modules.unitywebrequestwww": {
415 | "version": "1.0.0",
416 | "depth": 0,
417 | "source": "builtin",
418 | "dependencies": {
419 | "com.unity.modules.unitywebrequest": "1.0.0",
420 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
421 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
422 | "com.unity.modules.audio": "1.0.0",
423 | "com.unity.modules.assetbundle": "1.0.0",
424 | "com.unity.modules.imageconversion": "1.0.0"
425 | }
426 | },
427 | "com.unity.modules.vehicles": {
428 | "version": "1.0.0",
429 | "depth": 0,
430 | "source": "builtin",
431 | "dependencies": {
432 | "com.unity.modules.physics": "1.0.0"
433 | }
434 | },
435 | "com.unity.modules.video": {
436 | "version": "1.0.0",
437 | "depth": 0,
438 | "source": "builtin",
439 | "dependencies": {
440 | "com.unity.modules.audio": "1.0.0",
441 | "com.unity.modules.ui": "1.0.0",
442 | "com.unity.modules.unitywebrequest": "1.0.0"
443 | }
444 | },
445 | "com.unity.modules.vr": {
446 | "version": "1.0.0",
447 | "depth": 0,
448 | "source": "builtin",
449 | "dependencies": {
450 | "com.unity.modules.jsonserialize": "1.0.0",
451 | "com.unity.modules.physics": "1.0.0",
452 | "com.unity.modules.xr": "1.0.0"
453 | }
454 | },
455 | "com.unity.modules.wind": {
456 | "version": "1.0.0",
457 | "depth": 0,
458 | "source": "builtin",
459 | "dependencies": {}
460 | },
461 | "com.unity.modules.xr": {
462 | "version": "1.0.0",
463 | "depth": 0,
464 | "source": "builtin",
465 | "dependencies": {
466 | "com.unity.modules.physics": "1.0.0",
467 | "com.unity.modules.jsonserialize": "1.0.0",
468 | "com.unity.modules.subsystems": "1.0.0"
469 | }
470 | }
471 | }
472 | }
473 |
--------------------------------------------------------------------------------
/Assets/PlayDeck/Runtime/PlayDeckBridge.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using System.Runtime.InteropServices;
5 | using Newtonsoft.Json;
6 | using UnityEngine;
7 | using UnityEngine.Serialization;
8 | using UnityEngine.UI;
9 |
10 | namespace PlayDeck
11 | {
12 | public class PlayDeckBridge : MonoBehaviour
13 | {
14 | [DllImport("__Internal")]
15 | private static extern void PlayDeckBridge_PostMessage(string method);
16 |
17 | [DllImport("__Internal")]
18 | private static extern void PlayDeckBridge_PostMessage_IntValue(string method, int value);
19 |
20 | [DllImport("__Internal")]
21 | private static extern void PlayDeckBridge_PostMessage_StringValue(string method, string value);
22 |
23 | [DllImport("__Internal")]
24 | private static extern void PlayDeckBridge_PostMessage_SetData(string key, string value);
25 |
26 | [DllImport("__Internal")]
27 | private static extern void PlayDeckBridge_PostMessage_GetData(string key);
28 |
29 | [DllImport("__Internal")]
30 | private static extern void PlayDeckBridge_PostMessage_RequestPayment(string data);
31 |
32 | [DllImport("__Internal")]
33 | private static extern void PlayDeckBridge_PostMessage_GetPaymentInfo(string data);
34 |
35 | [DllImport("__Internal")]
36 | private static extern void PlayDeckBridge_PostMessage_CustomShare(string data);
37 |
38 | [DllImport("__Internal")]
39 | private static extern void PlayDeckBridge_PostMessage_GetShareLink(string data);
40 |
41 | [DllImport("__Internal")]
42 | private static extern void PlayDeckBridge_PostMessage_OpenTelegramLink(string data);
43 |
44 | [DllImport("__Internal")]
45 | private static extern void PlayDeckBridge_PostMessage_GetPlaydeckState();
46 |
47 | [DllImport("__Internal")]
48 | private static extern void PlayDeckBridge_PostMessage_GameEnd();
49 |
50 | [DllImport("__Internal")]
51 | private static extern void PlayDeckBridge_PostMessage_SendGameProgress(string data);
52 |
53 | [DllImport("__Internal")]
54 | private static extern void PlayDeckBridge_PostMessage_SendAnalytics(string data);
55 |
56 | [DllImport("__Internal")]
57 | private static extern void PlayDeckBridge_PostMessage_SendAnalyticsNewSession();
58 |
59 | [DllImport("__Internal")]
60 | private static extern void PlayDeckBridge_PostMessage_ShowAd();
61 |
62 | [SerializeField] private long _debugTelegramId;
63 | [SerializeField] private string _debugUsername;
64 | [SerializeField] private string _debugReferralId;
65 | [SerializeField] private PaymentResponseData _debugPaymentResponse;
66 | [SerializeField] private GetPaymentInfoResponseData _debugGetPaymentInfoResponse;
67 | [SerializeField] private bool _debugPlaydeckState;
68 |
69 | private UserData _userData;
70 | private string _dataJson;
71 | private PaymentResponseData _paymentResponseJson;
72 | private GetPaymentInfoResponseData _getPaymentInfoResponseJson;
73 |
74 | private Action _getUserCallback;
75 | private Action _getDataCallback;
76 | private Action _paymentRequestCallback;
77 | private Action _getPaymentInfoRequestCallback;
78 | private Action _invoiceClosedCallback;
79 | private Action _getShareLinkCallback;
80 | private Action _getPlaydeckStateCallback;
81 |
82 | private Action _rewardedAdCallback;
83 | private Action _errAdCallback;
84 | private Action _skipAdCallback;
85 | private Action _notFoundAdCallback;
86 | private Action _startAdCallback;
87 |
88 | public UserData User => _userData;
89 |
90 | private void Start()
91 | {
92 | DontDestroyOnLoad(gameObject);
93 | }
94 |
95 | public void GetData(string key, Action callback)
96 | {
97 | #if UNITY_EDITOR
98 | Debug.Log($"[PlayDeckBridge]: Fake GetData[{key}]");
99 | #else
100 | _getDataCallback = callback;
101 |
102 | Debug.Log($"[PlayDeckBridge]: GetData {key}");
103 |
104 | PlayDeckBridge_PostMessage_GetData(key);
105 | #endif
106 | }
107 |
108 | public void SetData(string key, string data)
109 | {
110 | #if UNITY_EDITOR
111 | Debug.Log($"[PlayDeckBridge]: Fake SetData[{key}]: {data}");
112 | #else
113 | Debug.Log($"[PlayDeckBridge]: SetData [{key}]: {data}");
114 |
115 | PlayDeckBridge_PostMessage_SetData(key, data);
116 | #endif
117 | }
118 |
119 | public void GetUserProfile(Action callback)
120 | {
121 | #if UNITY_EDITOR
122 | Debug.Log($"[PlayDeckBridge]: Fake GetUserProfile");
123 |
124 | _userData = new UserData()
125 | {
126 | telegramId = _debugTelegramId,
127 | username = _debugUsername
128 | };
129 |
130 | Debug.Log(JsonConvert.SerializeObject(_userData));
131 |
132 | callback?.Invoke(_userData);
133 | #else
134 | _getUserCallback = callback;
135 |
136 | PlayDeckBridge_PostMessage(Constants.GET_USER_PROFILE);
137 | #endif
138 | }
139 |
140 | public void RequestPayment(PaymentRequestData requestData, Action callback)
141 | {
142 | #if UNITY_EDITOR
143 | Debug.Log($"[PlayDeckBridge]: Fake RequestPayment");
144 |
145 | callback?.Invoke(_debugPaymentResponse);
146 | #else
147 | _paymentRequestCallback = callback;
148 |
149 | var json = JsonConvert.SerializeObject(requestData);
150 |
151 | Debug.Log($"[PlayDeckBridge]: RequestPayment {json}");
152 | PlayDeckBridge_PostMessage_RequestPayment(json);
153 | #endif
154 | }
155 |
156 | public void TrackInvoiceClosed(Action callback)
157 | {
158 | #if UNITY_EDITOR
159 | Debug.Log($"[PlayDeckBridge]: Fake TrackInvoiceClosed");
160 | #else
161 | _invoiceClosedCallback = callback;
162 |
163 | Debug.Log($"[PlayDeckBridge]: TrackInvoiceClosed");
164 | #endif
165 | }
166 |
167 | public void GetPaymentInfo(GetPaymentInfoRequestData requestData, Action callback)
168 | {
169 | #if UNITY_EDITOR
170 | Debug.Log($"[PlayDeckBridge]: Fake GetPaymentInfo");
171 |
172 | callback?.Invoke(_debugGetPaymentInfoResponse);
173 | #else
174 | _getPaymentInfoRequestCallback = callback;
175 |
176 | var json = JsonConvert.SerializeObject(requestData);
177 |
178 | Debug.Log($"[PlayDeckBridge]: GetPaymentInfo {json}");
179 | PlayDeckBridge_PostMessage_GetPaymentInfo(json);
180 | #endif
181 | }
182 |
183 | public void CustomShare(Dictionary @params)
184 | {
185 | #if UNITY_EDITOR
186 | Debug.Log($"[PlayDeckBridge]: Fake CustomShare");
187 | #else
188 | var json = JsonConvert.SerializeObject(@params);
189 |
190 | Debug.Log($"[PlayDeckBridge]: CustomShare {json}");
191 | PlayDeckBridge_PostMessage_CustomShare(json);
192 | #endif
193 | }
194 |
195 | public void GetShareLink(Dictionary @params, Action callback)
196 | {
197 | #if UNITY_EDITOR
198 | Debug.Log($"[PlayDeckBridge]: Fake GetShareLink");
199 |
200 | callback?.Invoke("some_query");
201 | #else
202 | var json = JsonConvert.SerializeObject(@params);
203 |
204 | Debug.Log($"[PlayDeckBridge]: GetShareLink {json}");
205 | PlayDeckBridge_PostMessage_GetShareLink(json);
206 |
207 | _getShareLinkCallback = callback;
208 | #endif
209 | }
210 |
211 | public void OpenTelegramLink(string link)
212 | {
213 | #if UNITY_EDITOR
214 | Debug.Log($"[PlayDeckBridge]: Fake OpenTelegramLink");
215 | #else
216 | Debug.Log($"[PlayDeckBridge]: OpenTelegramLink {link}");
217 | PlayDeckBridge_PostMessage_OpenTelegramLink(link);
218 | #endif
219 | }
220 |
221 | public void GetPlaydeckState(Action callback)
222 | {
223 | #if UNITY_EDITOR
224 | Debug.Log($"[PlayDeckBridge]: Fake GetPlaydeckState");
225 |
226 | callback?.Invoke(_debugPlaydeckState);
227 | #else
228 | Debug.Log($"[PlayDeckBridge]: GetPlaydeckState");
229 | PlayDeckBridge_PostMessage_GetPlaydeckState();
230 |
231 | _getPlaydeckStateCallback = callback;
232 | #endif
233 | }
234 |
235 | public void GameEnd()
236 | {
237 | #if UNITY_EDITOR
238 | Debug.Log($"[PlayDeckBridge]: Fake GameEnd");
239 | #else
240 | Debug.Log($"[PlayDeckBridge]: GameEnd");
241 | PlayDeckBridge_PostMessage_GameEnd();
242 | #endif
243 | }
244 |
245 | public void SendGameProgress(AnalyticsGameProgress analyticsGameProgress)
246 | {
247 |
248 | var json = JsonConvert.SerializeObject(analyticsGameProgress);
249 | #if UNITY_EDITOR
250 | Debug.Log($"[PlayDeckBridge]: Fake SendGameProgress {json}");
251 | #else
252 | Debug.Log($"[PlayDeckBridge]: SendGameProgress {json}");
253 | PlayDeckBridge_PostMessage_SendGameProgress(json);
254 | #endif
255 | }
256 |
257 | public void SendAnalyticsNewSession()
258 | {
259 | #if UNITY_EDITOR
260 | Debug.Log($"[PlayDeckBridge]: Fake SendAnalyticsNewSession");
261 | #else
262 | Debug.Log($"[PlayDeckBridge]: SendAnalyticsNewSession");
263 | PlayDeckBridge_PostMessage_SendAnalyticsNewSession();
264 | #endif
265 | }
266 |
267 | public void SendAnalytics(AnalyticsEvent analyticsEvent)
268 | {
269 | var json = JsonConvert.SerializeObject(analyticsEvent);
270 | #if UNITY_EDITOR
271 | Debug.Log($"[PlayDeckBridge]: Fake SendAnalytics {json}");
272 | #else
273 | Debug.Log($"[PlayDeckBridge]: SendAnalytics {json}");
274 | PlayDeckBridge_PostMessage_SendAnalytics(json);
275 | #endif
276 | }
277 |
278 | public void ShowAd(
279 | Action rewardedAdCallback,
280 | Action errAdCallback,
281 | Action skipAdCallback,
282 | Action notFoundAdCallback,
283 | Action startAdCallback)
284 | {
285 | #if UNITY_EDITOR
286 | Debug.Log($"[PlayDeckBridge]: Fake ShowAd");
287 |
288 | rewardedAdCallback?.Invoke("");
289 | #else
290 | Debug.Log($"[PlayDeckBridge]: ShowAd");
291 |
292 | _rewardedAdCallback = rewardedAdCallback;
293 | _errAdCallback = errAdCallback;
294 | _skipAdCallback = skipAdCallback;
295 | _notFoundAdCallback = notFoundAdCallback;
296 | _startAdCallback = startAdCallback;
297 |
298 | PlayDeckBridge_PostMessage_ShowAd();
299 | #endif
300 | }
301 |
302 | private void GetUserHandler(string userJson)
303 | {
304 | var converted = JsonConvert.DeserializeObject(userJson);
305 | _userData = converted;
306 | _getUserCallback?.Invoke(converted);
307 | }
308 |
309 | private void GetDataHandler(string dataJson)
310 | {
311 | _dataJson = dataJson;
312 | _getDataCallback?.Invoke(_dataJson);
313 | }
314 |
315 | private void RequestPaymentHandler(string paymentRequestJson)
316 | {
317 | var converted = JsonConvert.DeserializeObject(paymentRequestJson);
318 | _paymentResponseJson = converted;
319 | _paymentRequestCallback?.Invoke(converted);
320 | }
321 |
322 | private void GetPaymentInfoHandler(string getPaymentInfoJson)
323 | {
324 | var settings = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
325 | var converted = JsonConvert.DeserializeObject(getPaymentInfoJson, settings);
326 | _getPaymentInfoResponseJson = converted;
327 | _getPaymentInfoRequestCallback?.Invoke(converted);
328 | }
329 |
330 | private void InvoiceClosedHandler(string status)
331 | {
332 | _invoiceClosedCallback?.Invoke(status);
333 | }
334 |
335 | private void GetShareLinkHandler(string shareLink)
336 | {
337 | _getShareLinkCallback?.Invoke(shareLink);
338 | }
339 |
340 | private void GetPlaydeckStateHandler(int state)
341 | {
342 | _getPlaydeckStateCallback?.Invoke(state != 0);
343 | }
344 |
345 | private void RewardedAdHandler(string data)
346 | {
347 | _rewardedAdCallback?.Invoke(data);
348 | }
349 |
350 | private void ErrAdHandler(string data)
351 | {
352 | _errAdCallback?.Invoke(data);
353 | }
354 |
355 | private void SkipAdHandler(string data)
356 | {
357 | _skipAdCallback?.Invoke(data);
358 | }
359 |
360 | private void NotFoundAdHandler(string data)
361 | {
362 | _notFoundAdCallback?.Invoke(data);
363 | }
364 |
365 | private void StartAdHandler(string data)
366 | {
367 | _startAdCallback?.Invoke(data);
368 | }
369 |
370 | [Serializable]
371 | public class UserData
372 | {
373 | public string avatar;
374 | public string username;
375 | public string firstName;
376 | public string lastName;
377 | public long telegramId;
378 | public string locale;
379 | public string token;
380 | public string sessionId;
381 | public ulong currentGameStarted;
382 |
383 | public Dictionary @params;
384 | }
385 |
386 | public class GetScoreData
387 | {
388 | public long position;
389 | public int score;
390 | }
391 |
392 | public class Wallet
393 | {
394 | public string type;
395 | public float balance;
396 | }
397 |
398 | [Serializable]
399 | public class PaymentRequestData
400 | {
401 | ///
402 | /// The amount is represented as an integer.
403 | ///
404 | public int amount;
405 |
406 | ///
407 | /// The description of the payment order.
408 | ///
409 | public string description;
410 |
411 | ///
412 | /// A unique order identifier in your system, which you can use to check in postback that payment was successful.
413 | ///
414 | public string externalId;
415 |
416 | ///
417 | /// The photo URL is an optional field.
418 | ///
419 | public string photoUrl;
420 | }
421 |
422 | ///
423 | /// Represents the response data for a payment request.
424 | ///
425 | [Serializable]
426 | public class PaymentResponseData
427 | {
428 | ///
429 | /// The URL for the purchase via Telegram.
430 | ///
431 | public string url;
432 | }
433 |
434 | [Serializable]
435 | public class GetPaymentInfoRequestData
436 | {
437 | ///
438 | /// A unique order identifier in your system, which you can use to check in postback that payment was successful.
439 | ///
440 | public string externalId;
441 | }
442 |
443 | ///
444 | /// Represents the response data for concrete payment.
445 | ///
446 | [Serializable]
447 | public class GetPaymentInfoResponseData
448 | {
449 | ///
450 | /// The URL for the purchase via Telegram.
451 | ///
452 | public bool paid;
453 |
454 | public long telegramId;
455 |
456 | public long dateTime;
457 | }
458 |
459 | ///
460 | /// Represents an achievement to be sent in the game progress analytics event.
461 | ///
462 | [Serializable]
463 | public class AnalyticsAchievement
464 | {
465 | ///
466 | /// The name of the achievement.
467 | ///
468 | public string name;
469 |
470 | ///
471 | /// The description of the achievement.
472 | ///
473 | public string description;
474 |
475 | ///
476 | /// The points awarded for achieving the achievement.
477 | ///
478 | public int points;
479 |
480 | ///
481 | /// The value associated with the achievement.
482 | ///
483 | public int value;
484 |
485 | ///
486 | /// Additional data related to the achievement.
487 | ///
488 | public Dictionary additional_data;
489 | }
490 |
491 | ///
492 | /// Represents the player's progress to be sent in the game progress analytics event.
493 | ///
494 | [Serializable]
495 | public class AnalyticsProgress
496 | {
497 | ///
498 | /// The current level of the player's progress.
499 | ///
500 | public int level;
501 |
502 | ///
503 | /// The current experience points of the player's progress.
504 | ///
505 | public int xp;
506 | }
507 |
508 | ///
509 | /// Represents the overall game progress data to be sent in the analytics event.
510 | ///
511 | [Serializable]
512 | public class AnalyticsGameProgress
513 | {
514 | ///
515 | /// A list of achievements to be included in the game progress analytics event.
516 | ///
517 | public List achievements;
518 |
519 | ///
520 | /// The player's progress data to be included in the game progress analytics event.
521 | ///
522 | public AnalyticsProgress progress;
523 | }
524 |
525 | ///
526 | /// Represents an analytics event.
527 | ///
528 | [Serializable]
529 | public class AnalyticsEvent
530 | {
531 | ///
532 | /// The name of the event.
533 | ///
534 | public string name;
535 |
536 | ///
537 | /// The type of the event.
538 | ///
539 | public string type;
540 |
541 | ///
542 | /// A dictionary of user properties associated with the event.
543 | ///
544 | public Dictionary user_properties;
545 |
546 | ///
547 | /// A dictionary of event properties associated with the event.
548 | ///
549 | public Dictionary event_properties;
550 | }
551 | }
552 | }
--------------------------------------------------------------------------------
/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: 26
7 | productGUID: 926934cd5e667f042a8195bc0eb4ed1d
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: PlayDeck
16 | productName: Sample Bridge
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: 1920
46 | defaultScreenHeight: 1080
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 1
51 | m_SpriteBatchVertexThreshold: 300
52 | m_MTRendering: 1
53 | mipStripping: 0
54 | numberOfMipsStripped: 0
55 | numberOfMipsStrippedPerMipmapLimitGroup: {}
56 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
57 | iosShowActivityIndicatorOnLoading: -1
58 | androidShowActivityIndicatorOnLoading: -1
59 | iosUseCustomAppBackgroundBehavior: 0
60 | allowedAutorotateToPortrait: 1
61 | allowedAutorotateToPortraitUpsideDown: 1
62 | allowedAutorotateToLandscapeRight: 1
63 | allowedAutorotateToLandscapeLeft: 1
64 | useOSAutorotation: 1
65 | use32BitDisplayBuffer: 1
66 | preserveFramebufferAlpha: 0
67 | disableDepthAndStencilBuffers: 0
68 | androidStartInFullscreen: 1
69 | androidRenderOutsideSafeArea: 1
70 | androidUseSwappy: 1
71 | androidBlitType: 0
72 | androidResizableWindow: 0
73 | androidDefaultWindowWidth: 1920
74 | androidDefaultWindowHeight: 1080
75 | androidMinimumWindowWidth: 400
76 | androidMinimumWindowHeight: 300
77 | androidFullscreenMode: 1
78 | defaultIsNativeResolution: 1
79 | macRetinaSupport: 1
80 | runInBackground: 0
81 | captureSingleScreen: 0
82 | muteOtherAudioSources: 0
83 | Prepare IOS For Recording: 0
84 | Force IOS Speakers When Recording: 0
85 | deferSystemGesturesMode: 0
86 | hideHomeButton: 0
87 | submitAnalytics: 1
88 | usePlayerLog: 1
89 | dedicatedServerOptimizations: 0
90 | bakeCollisionMeshes: 0
91 | forceSingleInstance: 0
92 | useFlipModelSwapchain: 1
93 | resizableWindow: 0
94 | useMacAppStoreValidation: 0
95 | macAppStoreCategory: public.app-category.games
96 | gpuSkinning: 0
97 | xboxPIXTextureCapture: 0
98 | xboxEnableAvatar: 0
99 | xboxEnableKinect: 0
100 | xboxEnableKinectAutoTracking: 0
101 | xboxEnableFitness: 0
102 | visibleInBackground: 1
103 | allowFullscreenSwitch: 1
104 | fullscreenMode: 1
105 | xboxSpeechDB: 0
106 | xboxEnableHeadOrientation: 0
107 | xboxEnableGuest: 0
108 | xboxEnablePIXSampling: 0
109 | metalFramebufferOnly: 0
110 | xboxOneResolution: 0
111 | xboxOneSResolution: 0
112 | xboxOneXResolution: 3
113 | xboxOneMonoLoggingLevel: 0
114 | xboxOneLoggingLevel: 1
115 | xboxOneDisableEsram: 0
116 | xboxOneEnableTypeOptimization: 0
117 | xboxOnePresentImmediateThreshold: 0
118 | switchQueueCommandMemory: 1048576
119 | switchQueueControlMemory: 16384
120 | switchQueueComputeMemory: 262144
121 | switchNVNShaderPoolsGranularity: 33554432
122 | switchNVNDefaultPoolsGranularity: 16777216
123 | switchNVNOtherPoolsGranularity: 16777216
124 | switchGpuScratchPoolGranularity: 2097152
125 | switchAllowGpuScratchShrinking: 0
126 | switchNVNMaxPublicTextureIDCount: 0
127 | switchNVNMaxPublicSamplerIDCount: 0
128 | switchNVNGraphicsFirmwareMemory: 32
129 | switchMaxWorkerMultiple: 8
130 | stadiaPresentMode: 0
131 | stadiaTargetFramerate: 0
132 | vulkanNumSwapchainBuffers: 3
133 | vulkanEnableSetSRGBWrite: 0
134 | vulkanEnablePreTransform: 0
135 | vulkanEnableLateAcquireNextImage: 0
136 | vulkanEnableCommandBufferRecycling: 1
137 | loadStoreDebugModeEnabled: 0
138 | bundleVersion: 0.1
139 | preloadedAssets: []
140 | metroInputSource: 0
141 | wsaTransparentSwapchain: 0
142 | m_HolographicPauseOnTrackingLoss: 1
143 | xboxOneDisableKinectGpuReservation: 1
144 | xboxOneEnable7thCore: 1
145 | vrSettings:
146 | enable360StereoCapture: 0
147 | isWsaHolographicRemotingEnabled: 0
148 | enableFrameTimingStats: 0
149 | enableOpenGLProfilerGPURecorders: 1
150 | useHDRDisplay: 0
151 | hdrBitDepth: 0
152 | m_ColorGamuts: 00000000
153 | targetPixelDensity: 30
154 | resolutionScalingMode: 0
155 | resetResolutionOnWindowResize: 0
156 | androidSupportedAspectRatio: 1
157 | androidMaxAspectRatio: 2.1
158 | applicationIdentifier:
159 | Standalone: io.playdeck.sample-api
160 | buildNumber:
161 | Standalone: 0
162 | VisionOS: 0
163 | iPhone: 0
164 | tvOS: 0
165 | overrideDefaultApplicationIdentifier: 1
166 | AndroidBundleVersionCode: 1
167 | AndroidMinSdkVersion: 22
168 | AndroidTargetSdkVersion: 0
169 | AndroidPreferredInstallLocation: 1
170 | aotOptions:
171 | stripEngineCode: 1
172 | iPhoneStrippingLevel: 0
173 | iPhoneScriptCallOptimization: 0
174 | ForceInternetPermission: 0
175 | ForceSDCardPermission: 0
176 | CreateWallpaper: 0
177 | APKExpansionFiles: 0
178 | keepLoadedShadersAlive: 0
179 | StripUnusedMeshComponents: 0
180 | strictShaderVariantMatching: 0
181 | VertexChannelCompressionMask: 4054
182 | iPhoneSdkVersion: 988
183 | iOSTargetOSVersionString: 12.0
184 | tvOSSdkVersion: 0
185 | tvOSRequireExtendedGameController: 0
186 | tvOSTargetOSVersionString: 12.0
187 | VisionOSSdkVersion: 0
188 | VisionOSTargetOSVersionString: 1.0
189 | uIPrerenderedIcon: 0
190 | uIRequiresPersistentWiFi: 0
191 | uIRequiresFullScreen: 1
192 | uIStatusBarHidden: 1
193 | uIExitOnSuspend: 0
194 | uIStatusBarStyle: 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 | iOSLaunchScreenCustomStoryboardPath:
223 | iOSLaunchScreeniPadCustomStoryboardPath:
224 | iOSDeviceRequirements: []
225 | iOSURLSchemes: []
226 | macOSURLSchemes: []
227 | iOSBackgroundModes: 0
228 | iOSMetalForceHardShadows: 0
229 | metalEditorSupport: 1
230 | metalAPIValidation: 1
231 | iOSRenderExtraFrameOnPause: 0
232 | iosCopyPluginsCodeInsteadOfSymlink: 0
233 | appleDeveloperTeamID:
234 | iOSManualSigningProvisioningProfileID:
235 | tvOSManualSigningProvisioningProfileID:
236 | VisionOSManualSigningProvisioningProfileID:
237 | iOSManualSigningProvisioningProfileType: 0
238 | tvOSManualSigningProvisioningProfileType: 0
239 | VisionOSManualSigningProvisioningProfileType: 0
240 | appleEnableAutomaticSigning: 0
241 | iOSRequireARKit: 0
242 | iOSAutomaticallyDetectAndAddCapabilities: 1
243 | appleEnableProMotion: 0
244 | shaderPrecisionModel: 0
245 | clonedFromGUID: 10ad67313f4034357812315f3c407484
246 | templatePackageId: com.unity.template.2d@7.0.3
247 | templateDefaultScene: Assets/Scenes/SampleScene.unity
248 | useCustomMainManifest: 0
249 | useCustomLauncherManifest: 0
250 | useCustomMainGradleTemplate: 0
251 | useCustomLauncherGradleManifest: 0
252 | useCustomBaseGradleTemplate: 0
253 | useCustomGradlePropertiesTemplate: 0
254 | useCustomGradleSettingsTemplate: 0
255 | useCustomProguardFile: 0
256 | AndroidTargetArchitectures: 1
257 | AndroidTargetDevices: 0
258 | AndroidSplashScreenScale: 0
259 | androidSplashScreen: {fileID: 0}
260 | AndroidKeystoreName:
261 | AndroidKeyaliasName:
262 | AndroidEnableArmv9SecurityFeatures: 0
263 | AndroidBuildApkPerCpuArchitecture: 0
264 | AndroidTVCompatibility: 0
265 | AndroidIsGame: 1
266 | AndroidEnableTango: 0
267 | androidEnableBanner: 1
268 | androidUseLowAccuracyLocation: 0
269 | androidUseCustomKeystore: 0
270 | m_AndroidBanners:
271 | - width: 320
272 | height: 180
273 | banner: {fileID: 0}
274 | androidGamepadSupportLevel: 0
275 | chromeosInputEmulation: 1
276 | AndroidMinifyRelease: 0
277 | AndroidMinifyDebug: 0
278 | AndroidValidateAppBundleSize: 1
279 | AndroidAppBundleSizeToValidate: 150
280 | m_BuildTargetIcons: []
281 | m_BuildTargetPlatformIcons:
282 | - m_BuildTarget: iPhone
283 | m_Icons:
284 | - m_Textures: []
285 | m_Width: 180
286 | m_Height: 180
287 | m_Kind: 0
288 | m_SubKind: iPhone
289 | - m_Textures: []
290 | m_Width: 120
291 | m_Height: 120
292 | m_Kind: 0
293 | m_SubKind: iPhone
294 | - m_Textures: []
295 | m_Width: 167
296 | m_Height: 167
297 | m_Kind: 0
298 | m_SubKind: iPad
299 | - m_Textures: []
300 | m_Width: 152
301 | m_Height: 152
302 | m_Kind: 0
303 | m_SubKind: iPad
304 | - m_Textures: []
305 | m_Width: 76
306 | m_Height: 76
307 | m_Kind: 0
308 | m_SubKind: iPad
309 | - m_Textures: []
310 | m_Width: 120
311 | m_Height: 120
312 | m_Kind: 3
313 | m_SubKind: iPhone
314 | - m_Textures: []
315 | m_Width: 80
316 | m_Height: 80
317 | m_Kind: 3
318 | m_SubKind: iPhone
319 | - m_Textures: []
320 | m_Width: 80
321 | m_Height: 80
322 | m_Kind: 3
323 | m_SubKind: iPad
324 | - m_Textures: []
325 | m_Width: 40
326 | m_Height: 40
327 | m_Kind: 3
328 | m_SubKind: iPad
329 | - m_Textures: []
330 | m_Width: 87
331 | m_Height: 87
332 | m_Kind: 1
333 | m_SubKind: iPhone
334 | - m_Textures: []
335 | m_Width: 58
336 | m_Height: 58
337 | m_Kind: 1
338 | m_SubKind: iPhone
339 | - m_Textures: []
340 | m_Width: 29
341 | m_Height: 29
342 | m_Kind: 1
343 | m_SubKind: iPhone
344 | - m_Textures: []
345 | m_Width: 58
346 | m_Height: 58
347 | m_Kind: 1
348 | m_SubKind: iPad
349 | - m_Textures: []
350 | m_Width: 29
351 | m_Height: 29
352 | m_Kind: 1
353 | m_SubKind: iPad
354 | - m_Textures: []
355 | m_Width: 60
356 | m_Height: 60
357 | m_Kind: 2
358 | m_SubKind: iPhone
359 | - m_Textures: []
360 | m_Width: 40
361 | m_Height: 40
362 | m_Kind: 2
363 | m_SubKind: iPhone
364 | - m_Textures: []
365 | m_Width: 40
366 | m_Height: 40
367 | m_Kind: 2
368 | m_SubKind: iPad
369 | - m_Textures: []
370 | m_Width: 20
371 | m_Height: 20
372 | m_Kind: 2
373 | m_SubKind: iPad
374 | - m_Textures: []
375 | m_Width: 1024
376 | m_Height: 1024
377 | m_Kind: 4
378 | m_SubKind: App Store
379 | - m_BuildTarget: Android
380 | m_Icons:
381 | - m_Textures: []
382 | m_Width: 432
383 | m_Height: 432
384 | m_Kind: 2
385 | m_SubKind:
386 | - m_Textures: []
387 | m_Width: 324
388 | m_Height: 324
389 | m_Kind: 2
390 | m_SubKind:
391 | - m_Textures: []
392 | m_Width: 216
393 | m_Height: 216
394 | m_Kind: 2
395 | m_SubKind:
396 | - m_Textures: []
397 | m_Width: 162
398 | m_Height: 162
399 | m_Kind: 2
400 | m_SubKind:
401 | - m_Textures: []
402 | m_Width: 108
403 | m_Height: 108
404 | m_Kind: 2
405 | m_SubKind:
406 | - m_Textures: []
407 | m_Width: 81
408 | m_Height: 81
409 | m_Kind: 2
410 | m_SubKind:
411 | - m_Textures: []
412 | m_Width: 192
413 | m_Height: 192
414 | m_Kind: 1
415 | m_SubKind:
416 | - m_Textures: []
417 | m_Width: 144
418 | m_Height: 144
419 | m_Kind: 1
420 | m_SubKind:
421 | - m_Textures: []
422 | m_Width: 96
423 | m_Height: 96
424 | m_Kind: 1
425 | m_SubKind:
426 | - m_Textures: []
427 | m_Width: 72
428 | m_Height: 72
429 | m_Kind: 1
430 | m_SubKind:
431 | - m_Textures: []
432 | m_Width: 48
433 | m_Height: 48
434 | m_Kind: 1
435 | m_SubKind:
436 | - m_Textures: []
437 | m_Width: 36
438 | m_Height: 36
439 | m_Kind: 1
440 | m_SubKind:
441 | - m_Textures: []
442 | m_Width: 192
443 | m_Height: 192
444 | m_Kind: 0
445 | m_SubKind:
446 | - m_Textures: []
447 | m_Width: 144
448 | m_Height: 144
449 | m_Kind: 0
450 | m_SubKind:
451 | - m_Textures: []
452 | m_Width: 96
453 | m_Height: 96
454 | m_Kind: 0
455 | m_SubKind:
456 | - m_Textures: []
457 | m_Width: 72
458 | m_Height: 72
459 | m_Kind: 0
460 | m_SubKind:
461 | - m_Textures: []
462 | m_Width: 48
463 | m_Height: 48
464 | m_Kind: 0
465 | m_SubKind:
466 | - m_Textures: []
467 | m_Width: 36
468 | m_Height: 36
469 | m_Kind: 0
470 | m_SubKind:
471 | m_BuildTargetBatching: []
472 | m_BuildTargetShaderSettings: []
473 | m_BuildTargetGraphicsJobs:
474 | - m_BuildTarget: MacStandaloneSupport
475 | m_GraphicsJobs: 0
476 | - m_BuildTarget: Switch
477 | m_GraphicsJobs: 0
478 | - m_BuildTarget: MetroSupport
479 | m_GraphicsJobs: 0
480 | - m_BuildTarget: AppleTVSupport
481 | m_GraphicsJobs: 0
482 | - m_BuildTarget: BJMSupport
483 | m_GraphicsJobs: 0
484 | - m_BuildTarget: LinuxStandaloneSupport
485 | m_GraphicsJobs: 0
486 | - m_BuildTarget: PS4Player
487 | m_GraphicsJobs: 0
488 | - m_BuildTarget: iOSSupport
489 | m_GraphicsJobs: 0
490 | - m_BuildTarget: WindowsStandaloneSupport
491 | m_GraphicsJobs: 0
492 | - m_BuildTarget: XboxOnePlayer
493 | m_GraphicsJobs: 0
494 | - m_BuildTarget: LuminSupport
495 | m_GraphicsJobs: 0
496 | - m_BuildTarget: AndroidPlayer
497 | m_GraphicsJobs: 0
498 | - m_BuildTarget: WebGLSupport
499 | m_GraphicsJobs: 0
500 | m_BuildTargetGraphicsJobMode: []
501 | m_BuildTargetGraphicsAPIs:
502 | - m_BuildTarget: AndroidPlayer
503 | m_APIs: 150000000b000000
504 | m_Automatic: 1
505 | - m_BuildTarget: iOSSupport
506 | m_APIs: 10000000
507 | m_Automatic: 1
508 | m_BuildTargetVRSettings: []
509 | m_DefaultShaderChunkSizeInMB: 16
510 | m_DefaultShaderChunkCount: 0
511 | openGLRequireES31: 0
512 | openGLRequireES31AEP: 0
513 | openGLRequireES32: 0
514 | m_TemplateCustomTags:
515 | PRODUCT_DESCRIPTION:
516 | mobileMTRendering:
517 | Android: 1
518 | iPhone: 1
519 | tvOS: 1
520 | m_BuildTargetGroupLightmapEncodingQuality: []
521 | m_BuildTargetGroupHDRCubemapEncodingQuality: []
522 | m_BuildTargetGroupLightmapSettings: []
523 | m_BuildTargetGroupLoadStoreDebugModeSettings: []
524 | m_BuildTargetNormalMapEncoding: []
525 | m_BuildTargetDefaultTextureCompressionFormat:
526 | - m_BuildTarget: Android
527 | m_Format: 3
528 | - m_BuildTarget: WebGL
529 | m_Format: 3
530 | playModeTestRunnerEnabled: 0
531 | runPlayModeTestAsEditModeTest: 0
532 | actionOnDotNetUnhandledException: 1
533 | enableInternalProfiler: 0
534 | logObjCUncaughtExceptions: 1
535 | enableCrashReportAPI: 0
536 | cameraUsageDescription:
537 | locationUsageDescription:
538 | microphoneUsageDescription:
539 | bluetoothUsageDescription:
540 | macOSTargetOSVersion: 10.13.0
541 | switchNMETAOverride:
542 | switchNetLibKey:
543 | switchSocketMemoryPoolSize: 6144
544 | switchSocketAllocatorPoolSize: 128
545 | switchSocketConcurrencyLimit: 14
546 | switchScreenResolutionBehavior: 2
547 | switchUseCPUProfiler: 0
548 | switchEnableFileSystemTrace: 0
549 | switchUseGOLDLinker: 0
550 | switchLTOSetting: 0
551 | switchApplicationID: 0x01004b9000490000
552 | switchNSODependencies:
553 | switchCompilerFlags:
554 | switchTitleNames_0:
555 | switchTitleNames_1:
556 | switchTitleNames_2:
557 | switchTitleNames_3:
558 | switchTitleNames_4:
559 | switchTitleNames_5:
560 | switchTitleNames_6:
561 | switchTitleNames_7:
562 | switchTitleNames_8:
563 | switchTitleNames_9:
564 | switchTitleNames_10:
565 | switchTitleNames_11:
566 | switchTitleNames_12:
567 | switchTitleNames_13:
568 | switchTitleNames_14:
569 | switchTitleNames_15:
570 | switchPublisherNames_0:
571 | switchPublisherNames_1:
572 | switchPublisherNames_2:
573 | switchPublisherNames_3:
574 | switchPublisherNames_4:
575 | switchPublisherNames_5:
576 | switchPublisherNames_6:
577 | switchPublisherNames_7:
578 | switchPublisherNames_8:
579 | switchPublisherNames_9:
580 | switchPublisherNames_10:
581 | switchPublisherNames_11:
582 | switchPublisherNames_12:
583 | switchPublisherNames_13:
584 | switchPublisherNames_14:
585 | switchPublisherNames_15:
586 | switchIcons_0: {fileID: 0}
587 | switchIcons_1: {fileID: 0}
588 | switchIcons_2: {fileID: 0}
589 | switchIcons_3: {fileID: 0}
590 | switchIcons_4: {fileID: 0}
591 | switchIcons_5: {fileID: 0}
592 | switchIcons_6: {fileID: 0}
593 | switchIcons_7: {fileID: 0}
594 | switchIcons_8: {fileID: 0}
595 | switchIcons_9: {fileID: 0}
596 | switchIcons_10: {fileID: 0}
597 | switchIcons_11: {fileID: 0}
598 | switchIcons_12: {fileID: 0}
599 | switchIcons_13: {fileID: 0}
600 | switchIcons_14: {fileID: 0}
601 | switchIcons_15: {fileID: 0}
602 | switchSmallIcons_0: {fileID: 0}
603 | switchSmallIcons_1: {fileID: 0}
604 | switchSmallIcons_2: {fileID: 0}
605 | switchSmallIcons_3: {fileID: 0}
606 | switchSmallIcons_4: {fileID: 0}
607 | switchSmallIcons_5: {fileID: 0}
608 | switchSmallIcons_6: {fileID: 0}
609 | switchSmallIcons_7: {fileID: 0}
610 | switchSmallIcons_8: {fileID: 0}
611 | switchSmallIcons_9: {fileID: 0}
612 | switchSmallIcons_10: {fileID: 0}
613 | switchSmallIcons_11: {fileID: 0}
614 | switchSmallIcons_12: {fileID: 0}
615 | switchSmallIcons_13: {fileID: 0}
616 | switchSmallIcons_14: {fileID: 0}
617 | switchSmallIcons_15: {fileID: 0}
618 | switchManualHTML:
619 | switchAccessibleURLs:
620 | switchLegalInformation:
621 | switchMainThreadStackSize: 1048576
622 | switchPresenceGroupId:
623 | switchLogoHandling: 0
624 | switchReleaseVersion: 0
625 | switchDisplayVersion: 1.0.0
626 | switchStartupUserAccount: 0
627 | switchSupportedLanguagesMask: 0
628 | switchLogoType: 0
629 | switchApplicationErrorCodeCategory:
630 | switchUserAccountSaveDataSize: 0
631 | switchUserAccountSaveDataJournalSize: 0
632 | switchApplicationAttribute: 0
633 | switchCardSpecSize: -1
634 | switchCardSpecClock: -1
635 | switchRatingsMask: 0
636 | switchRatingsInt_0: 0
637 | switchRatingsInt_1: 0
638 | switchRatingsInt_2: 0
639 | switchRatingsInt_3: 0
640 | switchRatingsInt_4: 0
641 | switchRatingsInt_5: 0
642 | switchRatingsInt_6: 0
643 | switchRatingsInt_7: 0
644 | switchRatingsInt_8: 0
645 | switchRatingsInt_9: 0
646 | switchRatingsInt_10: 0
647 | switchRatingsInt_11: 0
648 | switchRatingsInt_12: 0
649 | switchLocalCommunicationIds_0:
650 | switchLocalCommunicationIds_1:
651 | switchLocalCommunicationIds_2:
652 | switchLocalCommunicationIds_3:
653 | switchLocalCommunicationIds_4:
654 | switchLocalCommunicationIds_5:
655 | switchLocalCommunicationIds_6:
656 | switchLocalCommunicationIds_7:
657 | switchParentalControl: 0
658 | switchAllowsScreenshot: 1
659 | switchAllowsVideoCapturing: 1
660 | switchAllowsRuntimeAddOnContentInstall: 0
661 | switchDataLossConfirmation: 0
662 | switchUserAccountLockEnabled: 0
663 | switchSystemResourceMemory: 16777216
664 | switchSupportedNpadStyles: 22
665 | switchNativeFsCacheSize: 32
666 | switchIsHoldTypeHorizontal: 0
667 | switchSupportedNpadCount: 8
668 | switchEnableTouchScreen: 1
669 | switchSocketConfigEnabled: 0
670 | switchTcpInitialSendBufferSize: 32
671 | switchTcpInitialReceiveBufferSize: 64
672 | switchTcpAutoSendBufferSizeMax: 256
673 | switchTcpAutoReceiveBufferSizeMax: 256
674 | switchUdpSendBufferSize: 9
675 | switchUdpReceiveBufferSize: 42
676 | switchSocketBufferEfficiency: 4
677 | switchSocketInitializeEnabled: 1
678 | switchNetworkInterfaceManagerInitializeEnabled: 1
679 | switchPlayerConnectionEnabled: 1
680 | switchUseNewStyleFilepaths: 0
681 | switchUseLegacyFmodPriorities: 0
682 | switchUseMicroSleepForYield: 1
683 | switchEnableRamDiskSupport: 0
684 | switchMicroSleepForYieldTime: 25
685 | switchRamDiskSpaceSize: 12
686 | ps4NPAgeRating: 12
687 | ps4NPTitleSecret:
688 | ps4NPTrophyPackPath:
689 | ps4ParentalLevel: 11
690 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
691 | ps4Category: 0
692 | ps4MasterVersion: 01.00
693 | ps4AppVersion: 01.00
694 | ps4AppType: 0
695 | ps4ParamSfxPath:
696 | ps4VideoOutPixelFormat: 0
697 | ps4VideoOutInitialWidth: 1920
698 | ps4VideoOutBaseModeInitialWidth: 1920
699 | ps4VideoOutReprojectionRate: 60
700 | ps4PronunciationXMLPath:
701 | ps4PronunciationSIGPath:
702 | ps4BackgroundImagePath:
703 | ps4StartupImagePath:
704 | ps4StartupImagesFolder:
705 | ps4IconImagesFolder:
706 | ps4SaveDataImagePath:
707 | ps4SdkOverride:
708 | ps4BGMPath:
709 | ps4ShareFilePath:
710 | ps4ShareOverlayImagePath:
711 | ps4PrivacyGuardImagePath:
712 | ps4ExtraSceSysFile:
713 | ps4NPtitleDatPath:
714 | ps4RemotePlayKeyAssignment: -1
715 | ps4RemotePlayKeyMappingDir:
716 | ps4PlayTogetherPlayerCount: 0
717 | ps4EnterButtonAssignment: 2
718 | ps4ApplicationParam1: 0
719 | ps4ApplicationParam2: 0
720 | ps4ApplicationParam3: 0
721 | ps4ApplicationParam4: 0
722 | ps4DownloadDataSize: 0
723 | ps4GarlicHeapSize: 2048
724 | ps4ProGarlicHeapSize: 2560
725 | playerPrefsMaxSize: 32768
726 | ps4Passcode: bi9UOuSpM2Tlh01vOzwvSikHFswuzleh
727 | ps4pnSessions: 1
728 | ps4pnPresence: 1
729 | ps4pnFriends: 1
730 | ps4pnGameCustomData: 1
731 | playerPrefsSupport: 0
732 | enableApplicationExit: 0
733 | resetTempFolder: 1
734 | restrictedAudioUsageRights: 0
735 | ps4UseResolutionFallback: 0
736 | ps4ReprojectionSupport: 0
737 | ps4UseAudio3dBackend: 0
738 | ps4UseLowGarlicFragmentationMode: 1
739 | ps4SocialScreenEnabled: 0
740 | ps4ScriptOptimizationLevel: 2
741 | ps4Audio3dVirtualSpeakerCount: 14
742 | ps4attribCpuUsage: 0
743 | ps4PatchPkgPath:
744 | ps4PatchLatestPkgPath:
745 | ps4PatchChangeinfoPath:
746 | ps4PatchDayOne: 0
747 | ps4attribUserManagement: 0
748 | ps4attribMoveSupport: 0
749 | ps4attrib3DSupport: 0
750 | ps4attribShareSupport: 0
751 | ps4attribExclusiveVR: 0
752 | ps4disableAutoHideSplash: 0
753 | ps4videoRecordingFeaturesUsed: 0
754 | ps4contentSearchFeaturesUsed: 0
755 | ps4CompatibilityPS5: 0
756 | ps4AllowPS5Detection: 0
757 | ps4GPU800MHz: 1
758 | ps4attribEyeToEyeDistanceSettingVR: 0
759 | ps4IncludedModules: []
760 | ps4attribVROutputEnabled: 0
761 | monoEnv:
762 | splashScreenBackgroundSourceLandscape: {fileID: 0}
763 | splashScreenBackgroundSourcePortrait: {fileID: 0}
764 | blurSplashScreenBackground: 1
765 | spritePackerPolicy:
766 | webGLMemorySize: 32
767 | webGLExceptionSupport: 1
768 | webGLNameFilesAsHashes: 1
769 | webGLShowDiagnostics: 0
770 | webGLDataCaching: 1
771 | webGLDebugSymbols: 0
772 | webGLEmscriptenArgs:
773 | webGLModulesDirectory:
774 | webGLTemplate: PROJECT:CustomTemplate
775 | webGLAnalyzeBuildSize: 0
776 | webGLUseEmbeddedResources: 0
777 | webGLCompressionFormat: 2
778 | webGLWasmArithmeticExceptions: 0
779 | webGLLinkerTarget: 1
780 | webGLThreadsSupport: 0
781 | webGLDecompressionFallback: 0
782 | webGLInitialMemorySize: 32
783 | webGLMaximumMemorySize: 2048
784 | webGLMemoryGrowthMode: 2
785 | webGLMemoryLinearGrowthStep: 16
786 | webGLMemoryGeometricGrowthStep: 0.2
787 | webGLMemoryGeometricGrowthCap: 96
788 | webGLPowerPreference: 2
789 | scriptingDefineSymbols: {}
790 | additionalCompilerArguments: {}
791 | platformArchitecture: {}
792 | scriptingBackend: {}
793 | il2cppCompilerConfiguration: {}
794 | il2cppCodeGeneration: {}
795 | managedStrippingLevel:
796 | EmbeddedLinux: 1
797 | GameCoreScarlett: 1
798 | GameCoreXboxOne: 1
799 | Nintendo Switch: 1
800 | PS4: 1
801 | PS5: 1
802 | QNX: 1
803 | Stadia: 1
804 | VisionOS: 1
805 | WebGL: 1
806 | Windows Store Apps: 1
807 | XboxOne: 1
808 | iPhone: 1
809 | tvOS: 1
810 | incrementalIl2cppBuild: {}
811 | suppressCommonWarnings: 1
812 | allowUnsafeCode: 0
813 | useDeterministicCompilation: 1
814 | additionalIl2CppArgs:
815 | scriptingRuntimeVersion: 1
816 | gcIncremental: 1
817 | gcWBarrierValidation: 0
818 | apiCompatibilityLevelPerPlatform: {}
819 | m_RenderingPath: 1
820 | m_MobileRenderingPath: 1
821 | metroPackageName: My project
822 | metroPackageVersion:
823 | metroCertificatePath:
824 | metroCertificatePassword:
825 | metroCertificateSubject:
826 | metroCertificateIssuer:
827 | metroCertificateNotAfter: 0000000000000000
828 | metroApplicationDescription: My project
829 | wsaImages: {}
830 | metroTileShortName:
831 | metroTileShowName: 0
832 | metroMediumTileShowName: 0
833 | metroLargeTileShowName: 0
834 | metroWideTileShowName: 0
835 | metroSupportStreamingInstall: 0
836 | metroLastRequiredScene: 0
837 | metroDefaultTileSize: 1
838 | metroTileForegroundText: 2
839 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
840 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
841 | metroSplashScreenUseBackgroundColor: 0
842 | platformCapabilities: {}
843 | metroTargetDeviceFamilies: {}
844 | metroFTAName:
845 | metroFTAFileTypes: []
846 | metroProtocolName:
847 | vcxProjDefaultLanguage:
848 | XboxOneProductId:
849 | XboxOneUpdateKey:
850 | XboxOneSandboxId:
851 | XboxOneContentId:
852 | XboxOneTitleId:
853 | XboxOneSCId:
854 | XboxOneGameOsOverridePath:
855 | XboxOnePackagingOverridePath:
856 | XboxOneAppManifestOverridePath:
857 | XboxOneVersion: 1.0.0.0
858 | XboxOnePackageEncryption: 0
859 | XboxOnePackageUpdateGranularity: 2
860 | XboxOneDescription:
861 | XboxOneLanguage:
862 | - enus
863 | XboxOneCapability: []
864 | XboxOneGameRating: {}
865 | XboxOneIsContentPackage: 0
866 | XboxOneEnhancedXboxCompatibilityMode: 0
867 | XboxOneEnableGPUVariability: 1
868 | XboxOneSockets: {}
869 | XboxOneSplashScreen: {fileID: 0}
870 | XboxOneAllowedProductIds: []
871 | XboxOnePersistentLocalStorageSize: 0
872 | XboxOneXTitleMemory: 8
873 | XboxOneOverrideIdentityName:
874 | XboxOneOverrideIdentityPublisher:
875 | vrEditorSettings: {}
876 | cloudServicesEnabled: {}
877 | luminIcon:
878 | m_Name:
879 | m_ModelFolderPath:
880 | m_PortalFolderPath:
881 | luminCert:
882 | m_CertPath:
883 | m_SignPackage: 1
884 | luminIsChannelApp: 0
885 | luminVersion:
886 | m_VersionCode: 1
887 | m_VersionName:
888 | hmiPlayerDataPath:
889 | hmiForceSRGBBlit: 1
890 | embeddedLinuxEnableGamepadInput: 1
891 | hmiLogStartupTiming: 0
892 | hmiCpuConfiguration:
893 | apiCompatibilityLevel: 6
894 | activeInputHandler: 0
895 | windowsGamepadBackendHint: 0
896 | cloudProjectId:
897 | framebufferDepthMemorylessMode: 0
898 | qualitySettingsNames: []
899 | projectName:
900 | organizationId:
901 | cloudEnabled: 0
902 | legacyClampBlendShapeWeights: 0
903 | hmiLoadingImage: {fileID: 0}
904 | platformRequiresReadableAssets: 0
905 | virtualTexturingSupportEnabled: 0
906 | insecureHttpOption: 0
907 |
--------------------------------------------------------------------------------