@@ -1,6 +1,7 @@
< template >
< div vertical class = "material-adjuster" >
< div class = "adjust-section" >
<!-- 新增模式下 , 隐藏材质名输入框 -- >
< div v-if = "ignoreTexture" class="adjust-section" >
< h3 > 操作 < / h3 >
< fieldset v-if = "debugMode" style="margin: 1em 0;" >
< legend > DEBUG < / legend >
@@ -59,7 +60,8 @@
< label > 高光 < / label >
< CfFlex gap = "1em" class = "input-range" >
< input v-model = "emissiveIntensity" type="range" min="0" max="1" step="0.01" / >
< input v-model = "emissiveIntensity" type="number" @change="ClampNumericValue" min="0" max="1" step="0.01" / >
< input v-model = "emissiveIntensity" type="number" @change="ClampNumericValue" min="0" max="1"
step = "0.01" / >
< / CfFlex >
< / div >
@@ -135,7 +137,7 @@ const { Material, CurrGeometry, Geometries } = storeToRefs(scene);
const props = defineProps < {
name ? : string ;
textures ? : { name : string , src : string } [ ] ;
textures ? : { name : string , src : string } [ ] ;
/** 忽略纹理参数,提交时直接输出场景内的材质,用于某些在组件外对场景进行编辑的特殊情况(例如材质编辑模式) */
ignoreTexture ? : boolean ;
} > ( ) ;
@@ -198,7 +200,7 @@ const uploading = ref(false);
// });
const materialInfo = reactive ( {
dirId : DirectoryId . MaterialDir , // 正常来说是2
materialName : props . name || '材质' ,
materialName : props . name || Textures . value ? . [ 0 ] . name || '材质' ,
inputText : '' ,
} ) ;
@@ -208,7 +210,7 @@ watch(Textures, async (val) => {
} ) ;
watch ( ( ) => props . name , ( ) => {
materialInfo . materialName = props . name || '材质' ;
materialInfo . materialName = props . name || Textures . value ? . [ 0 ] . name || '材质' ;
} ) ;
watch ( textureAdjustment , async ( val ) => {
@@ -287,10 +289,10 @@ async function HandleUpload() {
} ;
result . push ( mat ) ;
}
// 还原场景纹理
await scene . ChangeTextureFromUrlAsync ( Textures . value [ 0 ] . src ) ;
}
// 还原场景纹理
await scene . ChangeTextureFromUrlAsync ( Textures . value [ 0 ] . src ) ;
emits ( 'submit' , result ) ;
return result ;
} finally {