2 Commits

Author SHA1 Message Date
CZY
ae9d88c6d7 修复纹理参数无法序列化到服务端的问题 2026-04-28 15:12:58 +08:00
CZY
7e4b09133d 修复纹理调节项不生效的问题 2026-04-28 13:43:02 +08:00
5 changed files with 26 additions and 7 deletions

View File

@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"mcp__ide__getDiagnostics"
]
}
}

View File

@@ -1,7 +1,7 @@
{ {
"name": "material-editor", "name": "material-editor",
"private": true, "private": true,
"version": "1.0.34", "version": "1.0.36",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -214,7 +214,7 @@ watch(() => props.name, () => {
}); });
watch(textureAdjustment, async (val) => { watch(textureAdjustment, async (val) => {
scene.UpdateTexture(); scene.UpdateTexture(val);
}, { deep: true }); }, { deep: true });
// 监听纹理更新 // 监听纹理更新

View File

@@ -55,10 +55,12 @@ async function HandleUpdateConfig() {
await scene.ImportMaterialAsync(json); await scene.ImportMaterialAsync(json);
editMode.value = true; editMode.value = true;
} }
else { editMode.value = false; } else {
if (config.textures && config.textures.length > 0) { editMode.value = false;
textures.value = Array.from(config.textures); if (config.textures && config.textures.length > 0) {
await scene.ChangeTextureFromUrlAsync(textures.value[0].src); // 这一行是保证首次Mount组件时纹理能够立刻刷新 textures.value = Array.from(config.textures);
await scene.ChangeTextureFromUrlAsync(textures.value[0].src);
}
} }
} }

View File

@@ -85,8 +85,18 @@ const sceneSetup = () => {
/** 这是自定义材质更新方法WebCAD库中的TextureTableRecord.TextureUpdate方法在导出的时候被删除了所以需要自己实现 */ /** 这是自定义材质更新方法WebCAD库中的TextureTableRecord.TextureUpdate方法在导出的时候被删除了所以需要自己实现 */
function UpdateTexture() { function UpdateTexture(adjustment?: Partial<TextureAdjustment>) {
const record = _currTexture.value; const record = _currTexture.value;
if (adjustment) {
// 将用户修改的纹理配置项同步写回 TextureTableRecord确保序列化时数据不丢失
if (adjustment.wrapS !== undefined) record.WrapS = adjustment.wrapS;
if (adjustment.wrapT !== undefined) record.WrapT = adjustment.wrapT;
if (adjustment.rotation !== undefined) record.rotation = adjustment.rotation;
if (adjustment.repeatX !== undefined) record.repeatX = adjustment.repeatX;
if (adjustment.repeatY !== undefined) record.repeatY = adjustment.repeatY;
if (adjustment.moveX !== undefined) record.moveX = adjustment.moveX;
if (adjustment.moveY !== undefined) record.moveY = adjustment.moveY;
}
const texture = record['texture'] as Texture; const texture = record['texture'] as Texture;
texture.wrapS = record.WrapS; texture.wrapS = record.WrapS;
texture.wrapT = record.WrapT; texture.wrapT = record.WrapT;