Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration. Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
/**
|
||
* 对应 Unity Application.ExternalCall
|
||
* Web 环境下调用 window 上的全局回调
|
||
*/
|
||
|
||
/** 对齐 Unity GameManager.ExternalLevelInfo(关卡加载完成时回传) */
|
||
export interface ExternalLevelInfo {
|
||
LevelID: number;
|
||
PlayerName: string;
|
||
VehicleName: string;
|
||
}
|
||
|
||
declare global {
|
||
interface Window {
|
||
processData?: (json: string) => void;
|
||
processVehicleData?: (json: string) => void;
|
||
externalResult?: (json: string) => void;
|
||
externalLevelInfo?: (json: string) => void;
|
||
coinsData?: (json: string) => void;
|
||
/** 主站对接:cocos-bridge.js 可选钩子 */
|
||
__tfrhOnExternalLevelInfo?: (json: string) => void;
|
||
[key: string]: unknown;
|
||
}
|
||
}
|
||
|
||
export class JsBridge {
|
||
static call(callbackName: string, jsonData: string) {
|
||
if (typeof window !== 'undefined') {
|
||
const fn = window[callbackName];
|
||
if (typeof fn === 'function') {
|
||
(fn as (json: string) => void)(jsonData);
|
||
return;
|
||
}
|
||
}
|
||
console.log(`[JsBridge] ${callbackName}`, jsonData);
|
||
}
|
||
|
||
/** Unity ExternalCallLevelInfo → Application.ExternalCall("externalLevelInfo", json) */
|
||
static notifyExternalLevelInfo(info: ExternalLevelInfo) {
|
||
const json = JSON.stringify(info);
|
||
this.call('externalLevelInfo', json);
|
||
}
|
||
}
|