feat(engine): 添加编辑器模式标志控制编辑器UI显示 (#274)
* feat(engine): 添加编辑器模式标志控制编辑器UI显示 - 在 Rust 引擎中添加 isEditor 标志,控制网格、gizmos、坐标轴指示器的显示 - 运行时模式下自动隐藏所有编辑器专用 UI - 编辑器预览和浏览器运行时通过 setEditorMode(false) 禁用编辑器 UI - 添加 Scene.isEditorMode 延迟组件生命周期回调,直到 begin() 调用 - 修复用户组件注册到 Core ComponentRegistry 以支持序列化 - 修复 Run in Browser 时用户组件加载问题 * fix: 复制引擎模块的类型定义文件到 dist/engine * fix: 修复用户项目 tsconfig paths 类型定义路径 - 从 module.json 读取实际包名而不是使用目录名 - 修复 .d.ts 文件复制逻辑,支持 .mjs 扩展名
This commit is contained in:
@@ -598,6 +598,28 @@ export class EngineBridge implements IEngineBridge {
|
||||
this.getEngine().setShowGizmos(show);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set editor mode.
|
||||
* 设置编辑器模式。
|
||||
*
|
||||
* When false (runtime mode), editor-only UI like grid, gizmos,
|
||||
* and axis indicator are automatically hidden.
|
||||
* 当为 false(运行时模式)时,编辑器专用 UI 会自动隐藏。
|
||||
*/
|
||||
setEditorMode(isEditor: boolean): void {
|
||||
if (!this.initialized) return;
|
||||
this.getEngine().setEditorMode(isEditor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get editor mode.
|
||||
* 获取编辑器模式。
|
||||
*/
|
||||
isEditorMode(): boolean {
|
||||
if (!this.initialized) return true;
|
||||
return this.getEngine().isEditorMode();
|
||||
}
|
||||
|
||||
// ===== Multi-viewport API =====
|
||||
// ===== 多视口 API =====
|
||||
|
||||
|
||||
@@ -117,6 +117,11 @@ export class GameEngine {
|
||||
* The shader ID for referencing this shader | 用于引用此着色器的ID
|
||||
*/
|
||||
compileShader(vertex_source: string, fragment_source: string): number;
|
||||
/**
|
||||
* Get editor mode.
|
||||
* 获取编辑器模式。
|
||||
*/
|
||||
isEditorMode(): boolean;
|
||||
/**
|
||||
* Render sprites as overlay (without clearing screen).
|
||||
* 渲染精灵作为叠加层(不清除屏幕)。
|
||||
@@ -156,6 +161,15 @@ export class GameEngine {
|
||||
* * `r`, `g`, `b`, `a` - Color components (0.0-1.0) | 颜色分量 (0.0-1.0)
|
||||
*/
|
||||
setClearColor(r: number, g: number, b: number, a: number): void;
|
||||
/**
|
||||
* Set editor mode.
|
||||
* 设置编辑器模式。
|
||||
*
|
||||
* When false (runtime mode), editor-only UI like grid, gizmos,
|
||||
* and axis indicator are automatically hidden.
|
||||
* 当为 false(运行时模式)时,编辑器专用 UI(如网格、gizmos、坐标轴指示器)会自动隐藏。
|
||||
*/
|
||||
setEditorMode(is_editor: boolean): void;
|
||||
/**
|
||||
* Set gizmo visibility.
|
||||
* 设置辅助工具可见性。
|
||||
@@ -374,6 +388,7 @@ export interface InitOutput {
|
||||
readonly gameengine_hasMaterial: (a: number, b: number) => number;
|
||||
readonly gameengine_hasShader: (a: number, b: number) => number;
|
||||
readonly gameengine_height: (a: number) => number;
|
||||
readonly gameengine_isEditorMode: (a: number) => number;
|
||||
readonly gameengine_isKeyDown: (a: number, b: number, c: number) => number;
|
||||
readonly gameengine_loadTexture: (a: number, b: number, c: number, d: number) => [number, number];
|
||||
readonly gameengine_loadTextureByPath: (a: number, b: number, c: number) => [number, number, number];
|
||||
@@ -389,6 +404,7 @@ export interface InitOutput {
|
||||
readonly gameengine_setActiveViewport: (a: number, b: number, c: number) => number;
|
||||
readonly gameengine_setCamera: (a: number, b: number, c: number, d: number, e: number) => void;
|
||||
readonly gameengine_setClearColor: (a: number, b: number, c: number, d: number, e: number) => void;
|
||||
readonly gameengine_setEditorMode: (a: number, b: number) => void;
|
||||
readonly gameengine_setMaterialBlendMode: (a: number, b: number, c: number) => number;
|
||||
readonly gameengine_setMaterialColor: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
||||
readonly gameengine_setMaterialFloat: (a: number, b: number, c: number, d: number, e: number) => number;
|
||||
|
||||
Reference in New Issue
Block a user