chicken_dy/Assets/WX-WASM-SDK/wechat-default/game.js

185 lines
5.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import './weapp-adapter'
import unityNamespace from './unity-namespace'
import './$GAME_NAME.wasm.framework.unityweb'
import "./unity-sdk/index.js"
import checkVersion, {canUseCoverview} from './check-version'
import "texture-config.js";
import {launchEventType} from './plugin-config'
function checkUpdate() {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
// console.log(res.hasUpdate)
})
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新版本下载失败
})
}
if ($NEED_CHECK_UPDATE) {
checkUpdate()
}
let managerConfig = {
DATA_FILE_MD5: "$DATA_MD5",
CODE_FILE_MD5: "$CODE_MD5",
GAME_NAME: "$GAME_NAME",
APPID: "$APP_ID",
// DATA_FILE_SIZE: "$DATA_FILE_SIZE",
LOADING_VIDEO_URL: "$LOADING_VIDEO_URL",
DATA_CDN: "$DEPLOY_URL",
// 资源包是否作为小游戏分包加载
loadDataPackageFromSubpackage: $LOAD_DATA_FROM_SUBPACKAGE,
// 需要在网络空闲时预加载的资源,支持如下形式的路径
preloadDataList: [
// 'DATA_CDN/StreamingAssets/WebGL/textures_8d265a9dfd6cb7669cdb8b726f0afb1e',
// '/WebGL/sounds_97cd953f8494c3375312e75a29c34fc2'
"$PRELOAD_LIST"
],
contextConfig: {
contextType: $WEBGL_VERSION // 1=>webgl1 2=>webgl2 3=>auto
}
};
GameGlobal.managerConfig = managerConfig;
// 版本检查
checkVersion().then(enable => {
if (enable) {
const UnityManager = requirePlugin('UnityPlugin', {
enableRequireHostModule: true,
customEnv: {
wx,
unityNamespace,
document,
canvas
}
}).default
// JS堆栈能显示更完整
Error.stackTraceLimit = Infinity;
// 是否使用coverview作为启动页
let USE_COVER_VIEW
if (canUseCoverview()) {
USE_COVER_VIEW = true
} else {
USE_COVER_VIEW = false
}
if (USE_COVER_VIEW) {
managerConfig = {
...managerConfig,
useCoverView: true,
// callmain结束后立即隐藏封面视频
hideAfterCallmain: $HIDE_AFTER_CALLMAIN,
loadingPageConfig: {
// 背景图或背景视频,两者都填时,先展示背景图,视频可播放后,播放视频
backgroundImage: '$BACKGROUND_IMAGE', // 不使用默认背景图可将此图片删除
backgroundVideo: '$LOADING_VIDEO_URL',
// 以下是默认值
barWidth: $LOADING_BAR_WIDTH, // 加载进度条宽度默认240
totalLaunchTime: 15000, // 默认总启动耗时,即加载动画默认播放时间,可根据游戏实际情况进行调整
textDuration: 1500, // 当downloadingText有多个文案时每个文案展示时间
firstStartText: '首次加载请耐心等待', // 首次启动时提示文案
downloadingText: ['正在加载资源'], // 加载阶段循环展示的文案
compilingText: '编译中', // 编译阶段文案
initText: '初始化中', // 初始化阶段文案
completeText: '开始游戏', // 初始化完成
}
}
GameGlobal.managerConfig = managerConfig;
}
const gameManager = new UnityManager(managerConfig);
gameManager.onLaunchProgress((e) => {
// e: LaunchEvent
// interface LaunchEvent {
// type: LaunchEventType;
// data: {
// costTimeMs: number; // 阶段耗时
// runTimeMs: number; // 总耗时
// loadDataPackageFromSubpackage: boolean; // 首包资源是否通过小游戏分包加载
// isVisible: boolean; // 当前是否处于前台onShow/onHide
// useCodeSplit: boolean; // 是否使用代码分包
// isHighPerformance: boolean; // 是否iOS高性能模式
// needDownloadDataPackage: boolean; // 本次启动是否需要下载资源包
// };
// }
if (e.type === launchEventType.launchPlugin) {
}
if (e.type === launchEventType.loadWasm) {
}
if (e.type === launchEventType.compileWasm) {
}
if (e.type === launchEventType.loadAssets) {
}
if (e.type === launchEventType.readAssets) {
}
if (e.type === launchEventType.prepareGame) {
}
})
gameManager.assetPath = (managerConfig.DATA_CDN|| '').replace(/\/$/,'') + '/Assets';
gameManager.onModulePrepared(() => {
for(let key in unityNamespace) {
if (!GameGlobal.hasOwnProperty(key)) {
GameGlobal[key] = unityNamespace[key]
} else {
}
}
})
// 上报初始化信息
const systeminfo = wx.getSystemInfoSync();
let bootinfo = {
'renderer':systeminfo.renderer || '',
'abi': systeminfo.ebi || '',
'brand': systeminfo.brand,
'model':systeminfo.model,
'platform':systeminfo.platform,
'system':systeminfo.system,
'version':systeminfo.version,
'SDKVersion':systeminfo.SDKVersion,
'benchmarkLevel':systeminfo.benchmarkLevel,
};
wx.getRealtimeLogManager().info('game starting', bootinfo);
wx.getLogManager().info('game starting', bootinfo);
console.info('game starting', bootinfo);
// 默认上报小游戏实时日志与用户反馈日志(所有error日志+小程序框架异常)
wx.onError((result) => {gameManager.printErr(result.message)});
gameManager.onLogError = function(err){
GameGlobal.realtimeLogManager.error(err)
GameGlobal.logmanager.warn(err)
}
gameManager.startGame();
GameGlobal.manager = gameManager;
}
})