Auto-publish release WXSDK.

This commit is contained in:
nebulaliu 2024-08-13 15:19:37 +08:00
parent 0b60ea5a61
commit e62f6b2b72
106 changed files with 294 additions and 152 deletions

View File

@ -10,6 +10,7 @@ using UnityEngine.Rendering;
using LitJson;
using UnityEditor.Build;
using System.Linq;
using System.Net;
using static WeChatWASM.LifeCycleEvent;
namespace WeChatWASM
@ -937,6 +938,7 @@ namespace WeChatWASM
ModifyWeChatConfigs(isFromConvert);
ModifySDKFile();
ClearFriendRelationCode();
GameJsPlugins();
// 如果没有StreamingAssets目录默认生成
if (!Directory.Exists(Path.Combine(config.ProjectConf.DST, webglDir, "StreamingAssets")))
@ -970,7 +972,7 @@ namespace WeChatWASM
}
}
}
if(config.CompileOptions.brotliMT)
if (config.CompileOptions.brotliMT)
{
MultiThreadBrotliCompress(sourcePath, targetPath);
}
@ -992,7 +994,7 @@ namespace WeChatWASM
var sourceBuffer = File.ReadAllBytes(sourcePath);
byte[] outputBuffer = new byte[0];
int ret = 0;
if (sourceBuffer.Length > 50 * 1024 * 1024 && Path.GetExtension(sourcePath) == "wasm") // 50MB以上的wasm压缩率低了可能导致小游戏包超过20MB需提高压缩率
if (sourceBuffer.Length > 50 * 1024 * 1024 && Path.GetExtension(sourcePath) == ".wasm") // 50MB以上的wasm压缩率低了可能导致小游戏包超过20MB需提高压缩率
{
ret = BrotliEnc.CompressWasmMT(sourceBuffer, ref outputBuffer, quality, window, maxCpuThreads);
}
@ -1001,11 +1003,13 @@ namespace WeChatWASM
ret = BrotliEnc.CompressBufferMT(sourceBuffer, ref outputBuffer, quality, window, maxCpuThreads);
}
if (ret == 0) {
using (FileStream fileStream = new FileStream(dstPath, FileMode.Create, FileAccess.Write)) {
fileStream.Write(outputBuffer, 0, outputBuffer.Length);
if (ret == 0)
{
using (FileStream fileStream = new FileStream(dstPath, FileMode.Create, FileAccess.Write))
{
fileStream.Write(outputBuffer, 0, outputBuffer.Length);
}
return true;
return true;
}
else
{
@ -1016,7 +1020,7 @@ namespace WeChatWASM
/// <summary>
/// 如果没有使用好友关系链的话,自动删掉无用代码
/// 更新game.json
/// </summary>
private static void ClearFriendRelationCode()
{
@ -1025,7 +1029,7 @@ namespace WeChatWASM
string content = File.ReadAllText(filePath, Encoding.UTF8);
JsonData gameJson = JsonMapper.ToObject(content);
if (!config.SDKOptions.UseFriendRelation || !config.SDKOptions.UseMiniGameChat)
if (!config.SDKOptions.UseFriendRelation || !config.SDKOptions.UseMiniGameChat || config.CompileOptions.autoAdaptScreen)
{
JsonWriter writer = new JsonWriter();
writer.IndentValue = 2;
@ -1049,12 +1053,66 @@ namespace WeChatWASM
UnityEngine.Debug.Log(gameJson["plugins"]);
}
if (config.CompileOptions.autoAdaptScreen)
{
gameJson["displayMode"] = "desktop";
}
// 将配置写回到文件夹
gameJson.ToJson(writer);
File.WriteAllText(filePath, writer.TextWriter.ToString());
}
}
/// <summary>
/// 更新game.js
/// </summary>
private static void GameJsPlugins()
{
var filePath = Path.Combine(config.ProjectConf.DST, miniGameDir, "game.js");
string content = File.ReadAllText(filePath, Encoding.UTF8);
Regex regex = new Regex(@"^import .*;$", RegexOptions.Multiline);
MatchCollection matches = regex.Matches(content);
int lastIndex = 0;
if (matches.Count > 0)
{
lastIndex = matches[matches.Count - 1].Index + matches[matches.Count - 1].Length;
}
bool changed = false;
StringBuilder sb = new StringBuilder(content);
if (config.ProjectConf.needCheckUpdate)
{
sb.Insert(lastIndex, Environment.NewLine + "import './plugins/check-update';");
changed = true;
}
else
{
File.Delete(Path.Combine(config.ProjectConf.DST, miniGameDir, "plugins", "check-update.js"));
}
if (config.CompileOptions.autoAdaptScreen)
{
sb.Insert(lastIndex, Environment.NewLine + "import './plugins/screen-adapter';");
changed = true;
}
else
{
File.Delete(Path.Combine(config.ProjectConf.DST, miniGameDir, "plugins", "screen-adapter.js"));
}
if (changed)
{
File.WriteAllText(filePath, sb.ToString(), Encoding.UTF8);
}
else
{
Directory.Delete(Path.Combine(config.ProjectConf.DST, miniGameDir, "plugins"), true);
}
}
private static void ModifySDKFile()
{
@ -1245,6 +1303,26 @@ namespace WeChatWASM
return ret.ToString();
}
/// <summary>
/// 生成Unitynamespace下的bootconfig
/// </summary>
private static string GenerateBootInfo()
{
StringBuilder sb = new StringBuilder();
// 添加player-connection-ip信息
var host = Dns.GetHostEntry(Dns.GetHostName());
foreach (var ip in host.AddressList)
{
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
sb.Append($"player-connection-ip={ip.ToString()}");
break;
}
}
return sb.ToString();
}
public static void ModifyWeChatConfigs(bool isFromConvert = false)
{
UnityEngine.Debug.LogFormat("[Converter] Starting to modify configs");
@ -1262,6 +1340,8 @@ namespace WeChatWASM
var customUnicodeRange = GetCustomUnicodeRange(config.FontOptions.CustomUnicode);
Debug.Log("customUnicodeRange: " + customUnicodeRange);
var boolConfigInfo = GenerateBootInfo();
Rule[] replaceArrayList = ReplaceRules.GenRules(new string[] {
config.ProjectConf.projectName == string.Empty ? "webgl" : config.ProjectConf.projectName,
config.ProjectConf.Appid,
@ -1288,7 +1368,6 @@ namespace WeChatWASM
config.ProjectConf.texturesPath,
config.ProjectConf.needCacheTextures ? "true" : "false",
config.ProjectConf.loadingBarWidth.ToString(),
config.ProjectConf.needCheckUpdate ? "true" : "false",
GetColorSpace(),
config.ProjectConf.disableHighPerformanceFallback ? "true" : "false",
config.SDKOptions.PreloadWXFont ? "true" : "false",
@ -1322,6 +1401,7 @@ namespace WeChatWASM
config.FontOptions.Geometric_Shapes ? "true" : "false",
config.FontOptions.Mathematical_Operators ? "true" : "false",
customUnicodeRange,
boolConfigInfo,
});
List<Rule> replaceList = new List<Rule>(replaceArrayList);

View File

@ -189,6 +189,7 @@ namespace WeChatWASM
fbWin.minSize = new Vector2(680, 350);
fbWin.Show();
});
this.formCheckbox("autoAdaptScreen", "自适应屏幕尺寸(?)", "移动端旋转屏幕和PC端拉伸窗口时自动调整画布尺寸");
this.formCheckbox("showMonitorSuggestModal", "显示优化建议弹窗");
this.formCheckbox("enableProfileStats", "显示性能面板");
this.formCheckbox("enableRenderAnalysis", "显示渲染日志(dev only)");
@ -449,6 +450,7 @@ namespace WeChatWASM
this.setData("loadingBarWidth", config.ProjectConf.loadingBarWidth.ToString());
this.setData("needCheckUpdate", config.ProjectConf.needCheckUpdate);
this.setData("disableHighPerformanceFallback", config.ProjectConf.disableHighPerformanceFallback);
this.setData("autoAdaptScreen", config.CompileOptions.autoAdaptScreen);
this.setData("showMonitorSuggestModal", config.CompileOptions.showMonitorSuggestModal);
this.setData("enableProfileStats", config.CompileOptions.enableProfileStats);
this.setData("enableRenderAnalysis", config.CompileOptions.enableRenderAnalysis);
@ -518,6 +520,7 @@ namespace WeChatWASM
config.ProjectConf.loadingBarWidth = int.Parse(this.getDataInput("loadingBarWidth"));
config.ProjectConf.needCheckUpdate = this.getDataCheckbox("needCheckUpdate");
config.ProjectConf.disableHighPerformanceFallback = this.getDataCheckbox("disableHighPerformanceFallback");
config.CompileOptions.autoAdaptScreen = this.getDataCheckbox("autoAdaptScreen");
config.CompileOptions.showMonitorSuggestModal = this.getDataCheckbox("showMonitorSuggestModal");
config.CompileOptions.enableProfileStats = this.getDataCheckbox("enableProfileStats");
config.CompileOptions.enableRenderAnalysis = this.getDataCheckbox("enableRenderAnalysis");

View File

@ -2,7 +2,7 @@
{
public class WXPluginVersion
{
public static string pluginVersion = "202407090855"; // 这一行不要改他,导出的时候会自动替换
public static string pluginVersion = "202408130719"; // 这一行不要改他,导出的时候会自动替换
}
public class WXPluginConf

Binary file not shown.

View File

@ -598,6 +598,11 @@
CustomNodePath
</summary>
</member>
<member name="F:WeChatWASM.CompileOptions.autoAdaptScreen">
<summary>
是否自适应屏幕尺寸变化
</summary>
</member>
<member name="F:WeChatWASM.CompileOptions.showMonitorSuggestModal">
<summary>
是否显示最佳实践检测弹框

View File

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: c29a7ef69f21a4d3f98e8ae4e5c78c8c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
guid: b30bbae6b56387c30e9c01eb8f1c6bc4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -8200,6 +8200,11 @@
分区 ID
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentOption.extraInfo">
<summary>
其他参数
</summary>
</member>
<member name="F:WeChatWASM.MidasPaymentError.errMsg">
<summary>
错误信息
@ -9726,6 +9731,11 @@
用户态签名
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentGameItemOption.extraInfo">
<summary>
其他参数
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentGameItemOption.complete">
<summary>
接口调用结束的回调函数(调用成功、失败都会执行)

View File

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 229920fab178543bf84dadc7c49ba67f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
guid: 6e0fe7d5455b6791c4d801acffd76f2c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -8200,6 +8200,11 @@
分区 ID
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentOption.extraInfo">
<summary>
其他参数
</summary>
</member>
<member name="F:WeChatWASM.MidasPaymentError.errMsg">
<summary>
错误信息
@ -9726,6 +9731,11 @@
用户态签名
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentGameItemOption.extraInfo">
<summary>
其他参数
</summary>
</member>
<member name="F:WeChatWASM.RequestMidasPaymentGameItemOption.complete">
<summary>
接口调用结束的回调函数(调用成功、失败都会执行)

View File

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 58f6f9f7425c24e2588bba8cb3973eb2
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
guid: 7778811782bbb2b02b542404a8d5067e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -106,6 +106,16 @@ if (isIOS && typeof $IOS_DEVICE_PIXEL_RATIO === 'number' && $IOS_DEVICE_PIXEL_RA
// @ts-ignore
window.devicePixelRatio = $IOS_DEVICE_PIXEL_RATIO;
}
else if (isPc) {
try {
if (window.devicePixelRatio < 2) {
window.devicePixelRatio = 2;
}
}
catch (e) {
console.warn(e);
}
}
export default () => new Promise((resolve) => {
if (!isDevtools) {
if (isPcInvalid

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ef1e05774b412733a889d665fe2a1e7f
guid: ec0866ffff83550534a97ed488594001
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f1e0c064017999785ab61a303b1ab9bf
guid: fff65068a8cb2a0fcaece97325e75772
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e3aadc5b1afc92786b01ffda7268f8fd
guid: 4c43c69948f021a90cea719225137540
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,41 +1,13 @@
// @ts-nocheck
/* eslint-disable no-prototype-builtins */
/* eslint-disable no-unused-vars */
/* eslint-disable no-undef */
import './weapp-adapter';
import './events';
import 'texture-config.js';
import './texture-config';
import unityNamespace from './unity-namespace';
import '.$DOTNET_RUNTIME_FOLD/$GAME_NAME.wasm.framework.unityweb';
import './unity-sdk/index.js';
import './unity-sdk/index';
import checkVersion from './check-version';
import { launchEventType, scaleMode } from './plugin-config';
import { preloadWxCommonFont } from './unity-sdk/font/index';
function checkUpdate() {
const updateManager = wx.getUpdateManager();
updateManager.onCheckForUpdate(() => {
// 请求完新版本信息的回调
// console.log(res.hasUpdate)
});
updateManager.onUpdateReady(() => {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
},
});
});
updateManager.onUpdateFailed(() => {
// 新版本下载失败
});
}
if ($NEED_CHECK_UPDATE) {
checkUpdate();
}
const managerConfig = {
DATA_FILE_MD5: '$DATA_MD5',
CODE_FILE_MD5: '$CODE_MD5',

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d2e8bf463176e9978ecd0b82ddeeed2c
guid: 4e9c0a50391e9417b0a905a38fe4e7a4
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b12932d880a4639e2e38dd2029b833b3
guid: dbba4c0263b3cfbfa657f3aaba82d3f6
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c5d57a3019fcd9baa08adce3a8f3b3df
guid: 9a7e4d5b8324b8298fc67e8c32ed51cd
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f59a3250e317dff4c9e9dfee14b6d5ef
guid: 139388bac2416bdd9c125bc0cbfa8b40
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 25b2278361ff40cc8c2f1c588e247206
guid: 67a45c002afdf4d6b3a2b19efc5df095
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 54bc0baec6d9e4865afe1115290b3a04
guid: ac5ca57abd608430319bdcfcb3928d0a
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9df2e9117c9824506c55dbe16032524f
guid: 822aad16f03f2cc8aff6ed76eb6c93cd
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f8ebd603489f43a3719b4ce8b85e6020
guid: 8f3e6be3b4bfaf1f90ce36d054449510
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5ef0f4c12904864831c830490c7669e2
guid: e785b48b5c28dd75ca4750d66cbe9a1e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 270e5285cd720d27c65310bc71ac06a5
guid: 0090feabbdfb7402b1038c2d49364c44
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5e2cb9e7271c0fe8045f18be94df5305
guid: 2d8ba2e59af124aeea32144b04dabe3f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 952547e88dfd81ebb71334f8045f0096
guid: e67652c317dd3371b249d69581e5a96d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 99c588e770fbf36ec61e5ede6b5e79d0
guid: 7f77c13104f64ecd2744d127bc010d33
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3d7560e20aa29667f1fbff12a3ddf653
guid: 1a6829574a4edc81d19aa53d4e69a5bf
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 978111221b303d88333534756fdb0faf
guid: d6d881ad79c7c488a1f639bab3f2d6c1
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 05f26105d156e58ca85e72a1fbfe4848
guid: bb49e265e57f97528505d890fee8a484
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ea131b33657841c7fd108d04cb3f6378
guid: 767eaf55c07047dd8bc1245fed636e2b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3c6387c3f8edc113fdfb050df73111db
guid: 26c690e29270f0013ff360c367d7dc60
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f82ce62a9a39759dd82c32576cb948c6
guid: 8c038276fd34326aa23dfbce9bbfe12f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: df27f41ea72568476ae114439699ff1e
guid: 18d7df3ca95ecaa1c26450207b6f911a
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7bebdf36fcef92da9351c4b2791367c2
guid: 2a4135f2feb5cf0b600aab9192df1a92
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 65eed8270a046d1377d0317834b884f0
guid: 1cf87b79222b89625405206c42404457
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bddc28bb29db8d87b73f947745cbbf4d
guid: 88f55401ef5d3eacdddad9dbe25922f8
DefaultImporter:
externalObjects: {}
userData:

View File

@ -0,0 +1,23 @@
function checkUpdate() {
const updateManager = wx.getUpdateManager();
updateManager.onCheckForUpdate(() => {
// 请求完新版本信息的回调
// console.log(res.hasUpdate)
});
updateManager.onUpdateReady(() => {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
},
});
});
updateManager.onUpdateFailed(() => {
// 新版本下载失败
});
}
checkUpdate();

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ff2c7a9bd8dc0307e3db42e910e50f19
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
wx.onWindowResize((res) => {
window.innerWidth = res.windowWidth;
window.innerHeight = res.windowHeight;
});
wx.onDeviceOrientationChange(() => {
const info = wx.getWindowInfo ? wx.getWindowInfo() : wx.getSystemInfoSync();
window.innerWidth = info.screenWidth;
window.innerHeight = info.screenHeight;
});

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b62746af426016b452af3752e1de4e14
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -33,7 +33,7 @@
"packNpmRelationList": []
},
"compileType": "game",
"libVersion": "3.2.5",
"libVersion": "3.5.1",
"appid": "$APP_ID",
"projectname": "$PROJECT_NAME",
"simulatorType": "wechat",

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ff83841af267b7c1ac9265dbff653414
guid: f3139808756e282e4c0cb02e3b35576b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 41d5fe449fa202e94f320aaaa5534373
guid: 780ad9065e8d46c54a20c30223d73a33
DefaultImporter:
externalObjects: {}
userData:

View File

@ -51,6 +51,8 @@ const unityNamespace = {
useDotnetRuntime: $USE_DOTNET_RUNTIME,
// 是否用了多线程brotli压缩
useBrotliMT: $USE_BROTLI_MT,
// Boot config配置包含例如wait-for-native-debugger、player-connection-ip等信息
bootConfig: '$BOOT_CONFIG_INFO',
};
// 最佳实践检测配置
unityNamespace.monitorConfig = {

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0c1b5f8f4f2ebaf26a64486efb12b5c2
guid: b4597c91b97c9f7fded2df0352ea56fb
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d6234c76e3da63550189a594744521c7
guid: b82a90b1fe901491e223529c5b95f4e5
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e19a5df2519a8f3e0316df4a5ad50f35
guid: a2a4e3bfd84f239d311e539eee194b78
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0c0af3e59778cb19bd5f681910a80b39
guid: f91414089c098abca04a7f781dab2587
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5a663dfab9a0254bb34b5518b6e1b1b2
guid: 482037e18c7ff696ad24da8e86bb9f70
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ff33b5ab6f7d8defab1e6e2a379de8d3
guid: 032b63ca2f3d057eae02bfb3ae42b56d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6875bb1305b63e68ff1c5ef071e67648
guid: c60c3dcf3becf03a44b452976ea56675
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 52c5044bebe9d29e1372c94ee55096f0
guid: 4bb8f2bc78dff5c2c3828484e8061fda
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5ff433e1c227f4c43ff31879fb4fcea0
guid: 23d040392e73b91536f53eef6eecc2b7
DefaultImporter:
externalObjects: {}
userData:

View File

@ -16,7 +16,7 @@ function jsAudioCreateUncompressedSoundClip(buffer, error, length) {
},
getLength() {
if (!this.buffer) {
console.log('Trying to get length of sound which is not loaded.');
return 0;
}
const sampleRateRatio = 44100 / this.buffer.sampleRate;
@ -157,6 +157,7 @@ export class AudioChannelInstance {
loopStart = 0;
loopEnd = 0;
deleyTime = 0;
deleyOffset = 0;
constructor(callback, userData) {
if (WEBAudio.audioContext) {
this.gain = WEBAudio.audioContext.createGain();
@ -292,6 +293,7 @@ export class AudioChannelInstance {
this.source.mediaElement.onCanplay(fn);
this.source.mediaElement.loop = this.loop;
this.deleyTime = startTime;
this.deleyOffset = startOffset;
this.source.start(startTime, startOffset);
this.source.playbackStartTime = startTime - startOffset / this.source.playbackRateValue;
}
@ -426,8 +428,9 @@ export class AudioChannelInstance {
return;
}
if (this.source.mediaElement) {
this.source.start(this.deleyTime);
this.source.start(this.deleyTime, this.deleyOffset);
delete this.deleyTime;
delete this.deleyOffset;
return;
}
const pausedSource = this.source;

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a0ed3d76b35ec064690eac5bd6392934
guid: 89699662ceb95db59a5a098c2ff63f9f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8fd89a583d0c3722daef35746a4c490c
guid: e2476f6f9a4c94a27bd2178f4a507ee6
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7e34ae191c36201bfa651ba9d61c92e8
guid: 4f9312fa76de85868e34d2367c24c1a2
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3cc69f207ffe533fb1dd21f5b392cc73
guid: 8290ff59b40ed2f343c5accae58ba367
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 048dce3511a995c3ec8b05e825854abd
guid: 35226d5ce1f1b47f5e7570c6c4f6d31e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 474d26287484fca66d4be3177a4ba764
guid: 4482b82c4ce275f0afda4b7f9f981ba0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7b4c5581af30639a14d8af49919871c2
guid: a8e1a8000529385d0c11d2278ae5fa0b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d9326af94c682af91644b67086f0d3f0
guid: d417fb70586cf0964a0a0c8288603213
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c286ed9a8c5afe3d53d29594b1302ab6
guid: 7756de5e38476121913cedc1af7de6e2
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8610febb4006de328d42233330bf20a8
guid: bea163bf1096d68983607fcbb580cfff
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 70a500cddb8fbacd1f31c00961a3f578
guid: 0d37b75d5b23e62e3796dd44ba480751
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bd3b09e41050f8ed146ce307c7ccfd40
guid: 81193fc853faff828207c667c43932fb
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 916b0449cd9060e6d054d5ad3828330a
guid: 7c3746722f427b907df1bfabaa8090bc
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d3912a68d8b848831b119018390b60b8
guid: e0fed3da0a1e3da34d7196c9827cd24e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c708723af593ab14bb881e5316a0ff40
guid: b623046ac9bb1b98865a5e875d417523
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 29996be1d858a84fdb0d5c3f3e834693
guid: ab60ebea6b96120967bc0f508b4f7e92
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f7043b95c5a326d4da423b3fb59b32d8
guid: 1f0c909b1f71ead9f9b5dce6fe59ff4f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2a51bb7c7f15449fac0dc9bedd289c6d
guid: 2c6b226268cd8cc08ae625a16ca6657d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6e3a6dc48d3bf4a038ea6ff49aefc620
guid: 00f79fe8e05d7c35df8e01714f644b6a
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 60635ffb7b8c9b6b0e5c741463b2d3b6
guid: e599ae5ffd44cf66c835f151f0d6f525
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cdd65501cbf1aae76a23408d9c0c3c2d
guid: 750cb6c90d5bba81dc6951dc2acc3343
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0361edb442abba14478c4071497df4f6
guid: 2603c04cfef21d653fba3506f2d02337
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6026a42438747bd9fc13130cfee5aefc
guid: 0d8579b4f1206596d7c6d813a30b9a9a
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ee00e7218296806dced2b0583058ed84
guid: 41877fbdf2033be7ffb6316dc14ff48d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 313a43b01b2c92c3f22f0951abbe30fb
guid: 760a6e7336c024d477254ca8bab5a8e3
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 75ce46f306e8b61b1c331096c0e2ff38
guid: 4c38faac6860be324af6ecbd453f5ed4
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: eb155f6c5b430d27e5531ae8aed32cd9
guid: 295f3b8c536e85017490e183832aea17
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8a8e1c92cbbd05376929664303f8c81d
guid: 26a3ad56079cdb62abca33a8496de95e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1624a43ad63a6f3f6612d7240cca767d
guid: 05a13f7c0071e4e20904fa7c4e29efdb
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 727d001b99acea03fb7a1ad7838b7d4a
guid: 61f7fae5a7a1265899d9bf633032cf24
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 07107145bb96bb65d83959e91308bf4c
guid: bec5c579b585f0209e42a59cb336f6e3
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ce748c50d77531fabda542f383f1b810
guid: 569d4521115fd975031aa15f4088f245
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ca56775df93651e3865b2fcc0f3c7ca7
guid: 65dd406a591aa089de338d82864c6bfc
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d776fbd7b720a70b3e6db35c6d9a959c
guid: 455f16dd478afbe75a28ec7228211c1e
DefaultImporter:
externalObjects: {}
userData:

View File

@ -6,7 +6,7 @@ let wxOnTouchStartCallback;
function handleTouchEvent(res, callback) {
const dataPtr = convertOnTouchStartListenerResultToPointer({
touches: res.touches.map(v => formatTouchEvent(v, res.type)),
changedTouches: res.changedTouches.map(v => formatTouchEvent(v, res.type)),
changedTouches: res.changedTouches.map(v => formatTouchEvent(v, res.type, 1)),
timeStamp: parseInt(res.timeStamp.toString(), 10),
});
GameGlobal.Module.dynCall_viii(callback, dataPtr, res.touches.length, res.changedTouches.length);

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3d18e551a93d8a46a9aabb23b002e0af
guid: 9a8ff8cd09a3a8c45bd92f8b882ade4b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c85f7ab7471c36deec7ad0f034324dd3
guid: c725eb8541e693c9181c10800170da9d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c41c7a4aef98e941c9fdf0f5bc32b43a
guid: cfe6971a4fd2d591bc15b5688d942a13
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 639b9f3533adb6d485e67cd47c1afd85
guid: 945bfc0566e291be37956bbb002ad06f
DefaultImporter:
externalObjects: {}
userData:

View File

@ -31,9 +31,10 @@ const interfaceTypeMap = {
object: 'object',
};
export const uid = () => realUid(20, true);
export function formatIdentifier(identifier, eventType) {
if (clearIdTicker[identifier]) {
export function formatIdentifier(identifier, eventType, changed) {
if (changed && clearIdTicker[identifier]) {
clearTimeout(clearIdTicker[identifier]);
delete clearIdTicker[identifier];
}
let id = identifierCache.indexOf(identifier);
if (id <= -1) {
@ -49,7 +50,7 @@ export function formatIdentifier(identifier, eventType) {
identifierCache.push(identifier);
id = identifierCache.length - 1;
}
if (eventType === 'touchend' || eventType === 'touchcancel') {
if (changed && (eventType === 'touchend' || eventType === 'touchcancel')) {
clearIdTicker[identifier] = setTimeout(() => {
identifierCache[id] = null;
delete clearIdTicker[identifier];
@ -57,12 +58,12 @@ export function formatIdentifier(identifier, eventType) {
}
return id;
}
export function formatTouchEvent(v, type) {
export function formatTouchEvent(v, type, changed) {
return {
clientX: v.clientX * window.devicePixelRatio,
clientY: (window.innerHeight - v.clientY) * window.devicePixelRatio,
force: v.force,
identifier: formatIdentifier(v.identifier, type),
identifier: formatIdentifier(v.identifier, type, changed),
pageX: v.pageX * window.devicePixelRatio,
pageY: (window.innerHeight - v.pageY) * window.devicePixelRatio,
};

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 50f25d1bf930a4138ee02b546a0a13a1
guid: e6efaa2251c24a414d2452c14b0043fc
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 91056eef69ebecd3bf93114483cbe303
guid: 8ebc42cef7902e0b535a087372f30745
DefaultImporter:
externalObjects: {}
userData:

Some files were not shown because too many files have changed in this diff Show More