new ThemeManager()
效果模板管理器 - 用于管理、注册、应用和切换场景效果模板
Example
const manager = app.themeManager;
Extends
Members
-
active :boolean
-
激活或停用组件。
- Overrides:
-
app :THING.App
-
获取应用程序。
- Overrides:
-
object :THING.BaseObject
-
获取对象。
- Overrides:
-
onActiveChange :OnActiveChangeComponentCallback
-
活动状态改变时的回调函数。
- Overrides:
-
onAfterAdd :OnAfterAddComponentCallback
-
添加之后。
- Overrides:
-
onAfterAddChild :OnAddChildComponentCallback
-
添加子对象之后的回调函数。
- Overrides:
-
onAfterRemove :OnAfterRemoveComponentCallback
-
移除之后。
- Overrides:
-
onAfterRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之后的回调函数。
- Overrides:
-
onBeforeAdd :OnBeforeAddComponentCallback
-
添加之前。
- Overrides:
-
onBeforeAddChild :OnAddChildComponentCallback
-
添加子对象之前的回调函数。
- Overrides:
-
onBeforeRemove :OnBeforeRemoveComponentCallback
-
移除之前。
- Overrides:
-
onBeforeRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之前的回调函数。
- Overrides:
-
onCopy :OnCopyComponentCallback
-
复制时的回调函数。
- Overrides:
-
onExport :OnExportComponentCallback
-
导出数据时。
- Overrides:
-
onImport :OnImportComponentCallback
-
导入数据时。
- Overrides:
-
onInit :OnInitComponentCallback
-
初始化时的回调函数。
- Overrides:
-
onLoadResource :OnLoadResourceComponentCallback
-
加载资源时的回调函数。
- Overrides:
-
onParentChange :OnParentChangeComponentCallback
-
改变父对象时的回调函数。
- Overrides:
-
onRefresh :OnRefreshComponentCallback
-
刷新时的回调函数。
- Overrides:
-
onResize :OnResizeComponentCallback
-
调整大小时的回调函数。
- Overrides:
-
onUnloadResource :OnUnloadResourceComponentCallback
-
卸载资源时的回调函数。
- Overrides:
-
onUpdate :OnUpdateComponentCallback
-
更新时的回调函数。
- Overrides:
-
onVisibleChange :OnVisibleChangeComponentCallback
-
可见性改变时的回调函数。
- Overrides:
Methods
-
applyRenderSettings(name) → {void}
-
应用效果模版的全局设置
Parameters:
Name Type Description namestring 主题名称,必须是已注册的主题 Returns:
voidExample
// 应用名为 'night' 的主题渲染设置 app.themeManager.applyRenderSettings('night'); // 保存当前渲染设置以便后续还原 const config = app.renderSettings; // 应用主题渲染设置 app.themeManager.applyRenderSettings('night'); // 还原之前保存的渲染设置 app.renderSettings = config; -
applyStyles(name, rootNode, traverseopt) → {void}
-
应用效果模版样式 - 将效果模版样式应用到指定的根节点及其子节点【功能说明】这是应用效果模板的核心方法,将主题中定义的样式配置应用到场景对象上。样式包括颜色、透明度、线框模式、环境光贴图、边缘效果、反射效果、滚动纹理、高光因子、菲涅尔效果、自发光等多种视觉效果。【样式匹配规则】1. 优先匹配 internalData._styleTag_ 指定的样式类2. 其次匹配 userData._styleTag_ 指定的样式类3. 再次匹配对象类型(node.type)4. 最后匹配对象的原型类名【使用时机】在应用渲染设置后调用,通常在场景加载完成或切换效果模版时调用。【参数说明】
Parameters:
Name Type Attributes Default Description namestring 效果模板名称,必须是已注册的效果模板 rootNodeObject3D 要应用效果模板的根节点对象 traverseboolean <optional>
true 是否遍历子节点并应用效果模板,默认为true Returns:
voidExample
// 应用名为 'dark' 的主题到场景中的所有对象 app.themeManager.applyStyles('dark', app.root); // 仅应用主题到指定对象,不遍历子节点 app.themeManager.applyStyles('dark', myEntity, false); -
clearStyles(rootNode) → {void}
-
清除效果模版样式 - 清除指定节点及其子节点的效果模版样式【功能说明】移除对象上应用的效果模版样式,恢复到默认状态。通常在切换效果模版或不再需要效果样式时调用。清除整个场景的主题样式app.themeManager.clearStyles(app.root);【相关方法】- applyStyles: 应用效果模版样式【关键词】清除样式、clearStyles、移除样式、清除效果模版样式、应用效果模板【参数说明】
Parameters:
Name Type Description rootNodeObject3D 要清除样式的根节点对象 Returns:
voidExample
// 清除指定对象及其子对象的效果模版样式 app.themeManager.clearStyles(myEntity); -
createEffectGrounds(name, rootNode, onCreateThemeObjectsopt) → {Array.<EffectGroundObject>|undefined}
-
创建主题地面特效 - 根据主题配置创建地面特效对象【功能说明】根据主题中定义的地面特效配置创建地面特效,如水面反射、地面流动纹理等。地面特效可以包含水面反射效果,支持动态更新和反射因子配置。【使用时机】在应用渲染设置和样式后调用,通常在主题初始化阶段。【参数说明】
Parameters:
Name Type Attributes Description namestring 主题名称,必须是已注册的主题 rootNodeObject3D 地面特效的父节点 onCreateThemeObjectsfunction <optional>
创建主题对象时的回调函数,可用于修改地面特效参数 Example
// 创建主题地面特效 const grounds = app.themeManager.createEffectGrounds('water', campus); // 销毁创建的地面特效 if (grounds) { grounds.forEach(ground => { ground.destroy(); }); } -
createEffectParticles(name, rootNode, onCreateThemeObjectsopt) → {Array.<ParticleSystem>|undefined}
-
创建主题粒子特效 - 根据主题配置创建粒子系统【功能说明】根据主题中定义的粒子配置创建粒子系统特效,如雨雪天气、烟雾等。创建前必须先调用 loadParticles 加载粒子数据。【使用时机】在应用渲染设置和样式后调用,通常在主题初始化的最后阶段。【参数说明】
Parameters:
Name Type Attributes Description namestring 主题名称,必须是已注册的主题 rootNodeObject3D 粒子系统的父节点 onCreateThemeObjectsfunction <optional>
创建主题对象时的回调函数,可用于修改粒子参数 Example
// 创建主题粒子特效 const particles = app.themeManager.createEffectParticles('snow', campus); // 销毁创建的粒子特效 if (particles) { particles.forEach(particle => { particle.destroy(); }); } -
onAdd(object)
-
当添加组件时。
Parameters:
Name Type Description objectTHING.BaseObject 对象。 - Overrides:
-
onRemove()
-
当移除组件时。
- Overrides: