ThemeManager()

ThemeManager效果模板管理器 - 用于管理、注册、应用和切换场景效果模板

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
name string 主题名称,必须是已注册的主题
Returns:
void
Example
// 应用名为 '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
name string 效果模板名称,必须是已注册的效果模板
rootNode Object3D 要应用效果模板的根节点对象
traverse boolean <optional>
true 是否遍历子节点并应用效果模板,默认为true
Returns:
void
Example
// 应用名为 '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
rootNode Object3D 要清除样式的根节点对象
Returns:
void
Example
// 清除指定对象及其子对象的效果模版样式
	app.themeManager.clearStyles(myEntity);

createEffectGrounds(name, rootNode, onCreateThemeObjectsopt) → {Array.<EffectGroundObject>|undefined}

创建主题地面特效 - 根据主题配置创建地面特效对象【功能说明】根据主题中定义的地面特效配置创建地面特效,如水面反射、地面流动纹理等。地面特效可以包含水面反射效果,支持动态更新和反射因子配置。【使用时机】在应用渲染设置和样式后调用,通常在主题初始化阶段。【参数说明】
Parameters:
Name Type Attributes Description
name string 主题名称,必须是已注册的主题
rootNode Object3D 地面特效的父节点
onCreateThemeObjects function <optional>
创建主题对象时的回调函数,可用于修改地面特效参数
Returns:
Array.<EffectGroundObject> | undefined - 返回创建的地面特效对象数组,如果主题不存在或未启用地面特效则返回undefined
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
name string 主题名称,必须是已注册的主题
rootNode Object3D 粒子系统的父节点
onCreateThemeObjects function <optional>
创建主题对象时的回调函数,可用于修改粒子参数
Returns:
Array.<ParticleSystem> | undefined - 返回创建的粒子系统数组,如果主题不存在或未启用粒子则返回undefined
Example
// 创建主题粒子特效
	const particles = app.themeManager.createEffectParticles('snow', campus);

	// 销毁创建的粒子特效
	if (particles) {
		particles.forEach(particle => {
			particle.destroy();
		});
	}

onAdd(object)

当添加组件时。
Parameters:
Name Type Description
object THING.BaseObject 对象。
Overrides:

onRemove()

当移除组件时。
Overrides: