From 99da97fcb41e874598f22f611e47b7a8470cbaa3 Mon Sep 17 00:00:00 2001 From: yinsx Date: Mon, 5 Jan 2026 16:40:08 +0800 Subject: [PATCH] 1 --- .env.production | 2 +- examples/global-demo.html | 42 +++++++++++++++++++++++--------------- index.html | 2 +- src/babylonjs/AppCamera.ts | 3 ++- src/babylonjs/AppConfig.ts | 2 +- src/babylonjs/AppEngin.ts | 3 ++- src/babylonjs/MainApp.ts | 2 +- src/main.ts | 15 +------------- 8 files changed, 35 insertions(+), 36 deletions(-) diff --git a/.env.production b/.env.production index aeb8fd9..5134857 100644 --- a/.env.production +++ b/.env.production @@ -1 +1 @@ -VITE_PUBLIC = https://cdn.files.zguiy.com/studio/ \ No newline at end of file +VITE_PUBLIC = ./ \ No newline at end of file diff --git a/examples/global-demo.html b/examples/global-demo.html index c2e14c9..749d170 100644 --- a/examples/global-demo.html +++ b/examples/global-demo.html @@ -1,10 +1,12 @@ + SDK 全局挂载加载示例 + @@ -16,24 +18,32 @@ container: 'renderDom', modelUrlList: ['./public/model/model.glb'], env: { hdrPath: '/hdr/my.env', intensity: 1.2, rotationY: 0.3 }, - onSuccess: () => console.log('SDK initialized (global)'), - onError: (err) => console.error('SDK init error', err), }; - function startSdk() { - const kernel = window.faceSDK && window.faceSDK.kernel; - if (!kernel) { - console.error('SDK kernel not loaded'); - return; - } - kernel.init(config); - } + console.log(window.faceSDK , window.faceSDK.kernel); + + const kernel = window.faceSDK && window.faceSDK.kernel; + kernel.init(config); + + + kernel.on('model:load:progress', (data) => { + console.log('模型加载事件', data); + }); + + + + kernel.on('model:loaded', (data) => { + console.log('模型加载完成', data); + }); + + + + kernel.on('model:click', (data) => { + console.log('模型点击事件', data); + }); + - if (document.readyState === 'complete') { - startSdk(); - } else { - window.addEventListener('load', startSdk); - } - + + \ No newline at end of file diff --git a/index.html b/index.html index aca3388..c5acf87 100644 --- a/index.html +++ b/index.html @@ -43,7 +43,7 @@ // import { kernel } from 'https://sdk.zguiy.com/zt/assets/index.js'; const config = { - container: 'renderDom', + container: document.querySelector('#renderDom'), modelUrlList: ['/public/model/model.glb'], env: { envPath: '/public/hdr/hdr.env', intensity: 1.2, rotationY: 0.3 }, }; diff --git a/src/babylonjs/AppCamera.ts b/src/babylonjs/AppCamera.ts index bff9595..464aac0 100644 --- a/src/babylonjs/AppCamera.ts +++ b/src/babylonjs/AppCamera.ts @@ -2,6 +2,7 @@ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera'; import { Vector3 } from '@babylonjs/core/Maths/math.vector'; import { Tools } from '@babylonjs/core/Misc/tools'; import { Monobehiver } from '../base/Monobehiver'; +import { AppConfig } from './AppConfig'; /** * 相机控制类- 负责创建和控制弧形旋转相机 @@ -17,7 +18,7 @@ export class AppCamera extends Monobehiver { /** 初始化相机 */ Awake(): void { const scene = this.mainApp.appScene.object; - const canvas = this.mainApp.appDom.renderDom; + const canvas = AppConfig.container; if (!scene || !canvas) return; // 创建弧形旋转相机:水平角70度,垂直角80度,距离5,目标点(0,1,0) diff --git a/src/babylonjs/AppConfig.ts b/src/babylonjs/AppConfig.ts index a1c056c..058831d 100644 --- a/src/babylonjs/AppConfig.ts +++ b/src/babylonjs/AppConfig.ts @@ -6,7 +6,7 @@ type ErrorCallback = ((error?: unknown) => void) | null | undefined; * 共享运行时配置对象 */ export const AppConfig = { - container: 'renderDom', + container: document.querySelector('#renderDom') as HTMLCanvasElement, modelUrlList: [] as string[], env: { envPath: '/hdr/sanGiuseppeBridge.env', diff --git a/src/babylonjs/AppEngin.ts b/src/babylonjs/AppEngin.ts index 3ce00c8..204bc19 100644 --- a/src/babylonjs/AppEngin.ts +++ b/src/babylonjs/AppEngin.ts @@ -1,5 +1,6 @@ import { Engine } from '@babylonjs/core/Engines/engine'; import { Monobehiver } from '../base/Monobehiver'; +import { AppConfig } from './AppConfig'; /** * 渲染引擎管理类 - 负责创建和管理3D渲染引擎 @@ -15,7 +16,7 @@ export class AppEngin extends Monobehiver { } Awake(): void { - this.canvas = this.mainApp.appDom.renderDom; + this.canvas = AppConfig.container; if (!this.canvas) { throw new Error('Render canvas not found'); } diff --git a/src/babylonjs/MainApp.ts b/src/babylonjs/MainApp.ts index 2e612a7..f51cb82 100644 --- a/src/babylonjs/MainApp.ts +++ b/src/babylonjs/MainApp.ts @@ -44,7 +44,7 @@ export class MainApp { * @param config 配置对象 */ loadAConfig(config: any): void { - AppConfig.container = config.container || 'renderDom'; + AppConfig.container = config.container ; AppConfig.modelUrlList = config.modelUrlList || []; AppConfig.env = config.env; } diff --git a/src/main.ts b/src/main.ts index 5000392..9414f80 100644 --- a/src/main.ts +++ b/src/main.ts @@ -37,23 +37,10 @@ const kernel = { init: async function (params: InitParams): Promise { if (!params) { console.error('params is required'); return; } - if (params.apiConfig) { - await configurator.init(params.apiConfig); - if (params.apiConfig.name) { - const userInfo = await auth.login(params.apiConfig.name); - if (!userInfo) { - console.error('failed to fetch user'); - return; - } - } - } - mainApp = new MainApp(); mainApp.loadAConfig({ - container: params.container || 'renderDom', + container: params.container || document.querySelector(params.container), modelUrlList: params.modelUrlList || [], - success: params.onSuccess ?? null, - error: params.onError ?? null, env: params.env });