+ vsWZ0Eu/pLeJblZfeAQ7p+KWQHqiJnp9UNwfHLW8Ev2EI9Kg2aPiB/DGmhPab8yCfuQuZIqJSwcCX1XzVvtIOoeeKy53VHOity0oxADtoY+TZSbJraG0+kEwE+S8HZ8u8xAoVg1xcI1a/wnS2CmZSvoqwpOFKufcosyZZeWTyQXhTipLIudmmA+KFWxRjXzcigE/46fA76MzSoH9WUaIq+d8DPJMQwURZcxmMRwIkSmzz6rss10uSdTGqM7VmewDkqeWugIjS0wzSMBKQYgv1rxbMO38hd58J0mygKtjMRdm38MUaPfm2fYCFhqRBuUXnLZ992NHpUNsXesSzlLlyw==
+ AQAB
+ +JTwTuuxi9suxLj+qVfpWwYQ7VIpG5EubZoZrFeHNynysgTbJuSvuujN7rgpT3uejxBbUMjxaOlikECKpTdGs6gyNaAKce6SA+4xobbWmFUS4uE7RBbIXefq/jof0V/etBW4eXwG2IiB2IKhVbPyq3lVmbZcQr3Matm9oEu+H6E=
+ xHcEu0QIDKgxNYLgsmq7i+P+vLGCTXs+8EVNkBKMoyRpLpP+TPCcKnHRK7+j0Od4tD1yYNk/IGPOojjdwzouSDGpIpHNNHOwUOr/n0DVwTWIs8kTRDDVa8al+ptaD8cfssbfbdgs8QkvloX09YLZpZ5dfeKrBH3ZpEtqtjwyves=
+ buhEr3GJLZUFMNA5DuUiQHJcawYVQS9tP4lZmwMSWRJmLfbssFWn8gScnL2d8NB+1eW+WDTPQLegOiwRr9URvmZ0wGg/QMXob8h+bGBfLmgGnSNQhfiEPSGUPwk/2PKlMkPeopUrmMCO7kKaKNq4krj38DTkxQJZifLMIBCrKwE=
+ gSyIDeCTMk8726Uru+N1YGsNyF8l/2+zWCMY9ktb8MA18AwaPdhNtZKUJyGfwfEPaeKk24y7dr5o1DxzgrM0Tv9n53TZ6UzPdsSsQbdNU/Ww5hSk+EbrbCt2YinWs10HOHKN4Rkro2eYxG1bPDlGhSB09Boeu5tLiDyV8y/tZPU=
+ FZzsXZ8ReLoBF9hYAaxP4/41uvReXoYVi3AcJrTwtC3a3fBKGAfXB+6oMbVtU9iPOWD1C7I0ZZh3A8xhQp730bLvbbdZWrpR4eY2RnefAW9EJESHfdDCxnsAIiH7+V/gAieF7bN0G5uifx/OxQl5pogovrLWLmZ+cw3QnMLX1kY=
+ trGx7eK881e5S2t4Hg2fu9WpIrLOmp7vaAKF4Q7BwEX8x/mshQEHM6eH6oJczHhD+JU5QJvTg4CA6x/63C/lKfg6pwvmx3++MkITKjHhYLmI5HPS7G9SS98l1cdVx+BsK+YrWs2g97LHlDqqKs0busv9Kz3vZ/mIOHhL52OGthk7SBSL0Nbq5rCCyErQEKPk3HmVmF2nJTam3d1PK0OT7I4IH5Szn9CXt1R3kk1Y2NZb3GIrcPUaQ7+75/DlVL05Leabc/eMi/ghhyCqOotHnLw8uNf3kK6QvD/bv3C4Ikdy1ZYBpENz74OMeINWAEXZyARLgs4EryA+6F7Fw3magQ==
+
\ No newline at end of file
diff --git a/Assets/WebPlatform/LaiYiTe/Resrouces/RSA.Private.meta b/Assets/WebPlatform/LaiYiTe/Resrouces/RSA.Private.meta
new file mode 100644
index 00000000..288425aa
--- /dev/null
+++ b/Assets/WebPlatform/LaiYiTe/Resrouces/RSA.Private.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 72fe0ae24cde45946914fa10b54896b0
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WebPlatform/Plugins.meta b/Assets/WebPlatform/Plugins.meta
new file mode 100644
index 00000000..83ed0eb0
--- /dev/null
+++ b/Assets/WebPlatform/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4a5ff23952c587c48ab012049e07df51
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WebPlatform/Plugins/WebGL.meta b/Assets/WebPlatform/Plugins/WebGL.meta
new file mode 100644
index 00000000..3a9a3ea3
--- /dev/null
+++ b/Assets/WebPlatform/Plugins/WebGL.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 23a14a5f29ce27c4dab61a5fe698a2e9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib b/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib
new file mode 100644
index 00000000..a460273f
--- /dev/null
+++ b/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib
@@ -0,0 +1,9 @@
+// 名为 "URLParameters.jslib" 的插件文件
+mergeInto(LibraryManager.library, {
+ GetURLParameter: function (name) {
+ var search = window.location.search.substring(1);
+ var params = new URLSearchParams(search);
+ var value = params.get(name);
+ return value ? Pointer_stringify(value) : null;
+ }
+});
\ No newline at end of file
diff --git a/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib.meta b/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib.meta
new file mode 100644
index 00000000..8e6335ec
--- /dev/null
+++ b/Assets/WebPlatform/Plugins/WebGL/GetParameters.jslib.meta
@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: af1b30451ed743d4f81b3f9c8c15baeb
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ WebGL: WebGL
+ second:
+ enabled: 1
+ settings: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WebPlatform/Scripts.meta b/Assets/WebPlatform/Scripts.meta
new file mode 100644
index 00000000..978d3f73
--- /dev/null
+++ b/Assets/WebPlatform/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b8dbba4c57255fc4495c422b41445cbe
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WebPlatform/Scripts/WebGLHelper.cs b/Assets/WebPlatform/Scripts/WebGLHelper.cs
new file mode 100644
index 00000000..ad0d032f
--- /dev/null
+++ b/Assets/WebPlatform/Scripts/WebGLHelper.cs
@@ -0,0 +1,189 @@
+using Newtonsoft.Json;
+using QFramework;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Security.Cryptography;
+using System.Text;
+using UnityEngine;
+using UnityEngine.Events;
+using UnityEngine.Networking;
+
+public class WebGLHelper : Singleton