修复纹理参数无法序列化到服务端的问题
This commit is contained in:
@@ -87,13 +87,23 @@ const sceneSetup = () => {
|
||||
/** 这是自定义材质更新方法,WebCAD库中的TextureTableRecord.TextureUpdate方法在导出的时候被删除了,所以需要自己实现 */
|
||||
function UpdateTexture(adjustment?: Partial<TextureAdjustment>) {
|
||||
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;
|
||||
texture.wrapS = adjustment?.wrapS ?? record.WrapS;
|
||||
texture.wrapT = adjustment?.wrapT ?? record.WrapT;
|
||||
texture.wrapS = record.WrapS;
|
||||
texture.wrapT = record.WrapT;
|
||||
texture.anisotropy = 16;
|
||||
texture.rotation = adjustment?.rotation ?? record.rotation;
|
||||
texture.repeat.set(adjustment?.repeatX ?? record.repeatX, adjustment?.repeatY ?? record.repeatY);
|
||||
texture.offset.set(adjustment?.moveX ?? record.moveX, adjustment?.moveY ?? record.moveY);
|
||||
texture.rotation = record.rotation;
|
||||
texture.repeat.set(record.repeatX, record.repeatY);
|
||||
texture.offset.set(record.moveX, record.moveY);
|
||||
texture.needsUpdate = true;
|
||||
Update();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user