This commit is contained in:
2026-05-18 12:13:34 +08:00
parent 8d784c2939
commit fdc031673f
12 changed files with 361672 additions and 297926 deletions

View File

@ -168,9 +168,7 @@ export class AppModel extends Monobehiver {
const newName = `${originalName}_${modelId}`;
const clonedMaterial = originalMaterial.clone(newName);
clonedMaterials.set(originalName, clonedMaterial);
console.log(`[cloneMaterials] 克隆材质: ${originalName} -> ${newName}`);
console.log(`[cloneMaterials] 克隆后的材质名称: ${clonedMaterial.name}`);
console.log(`[cloneMaterials] 材质是否在场景中:`, scene.materials.includes(clonedMaterial));
}
// 应用克隆的材质
@ -178,8 +176,7 @@ export class AppModel extends Monobehiver {
}
});
console.log(`已为模型 ${modelId} 克隆 ${clonedMaterials.size} 个材质`);
console.log(`[cloneMaterials] 场景中的所有材质:`, scene.materials.map(m => m.name));
}
/** 为网格设置阴影(投射和接收) */
@ -430,10 +427,18 @@ export class AppModel extends Monobehiver {
* @returns 模型名称,未找到返回 undefined
*/
findModelNameByMesh(mesh: AbstractMesh): string | undefined {
console.log(111111111111);
const keys = this.modelDic.Keys();
for (const key of keys) {
const meshes = this.modelDic.Get(key);
meshes.forEach(mesh => {
console.log(mesh.uniqueId);
console.log(mesh.name);
});
if (meshes?.some(m => m === mesh || m.uniqueId === mesh.uniqueId)) {
return key;
}
}
@ -447,6 +452,7 @@ export class AppModel extends Monobehiver {
*/
remove(meshOrName: AbstractMesh | string): boolean {
let mesh: AbstractMesh | undefined;
// 判断传入的是对象还是字符串
if (typeof meshOrName === 'string') {
@ -473,7 +479,8 @@ export class AppModel extends Monobehiver {
* @param modelConfig 模型配置对象
*/
async replaceModel(modelConfig: ModelMetadata): Promise<LoadResult> {
console.log(modelConfig.modelId, this.modelDic);
this.removeByName(modelConfig.modelId);
return await this.addSingle(
@ -500,7 +507,8 @@ export class AppModel extends Monobehiver {
this.modelDic.Remove(modelName);
this.modelMetadataDic.Remove(modelName);
this.mainApp.gameManager?.updateDictionaries();
console.log(`Model removed: ${modelName}`);
}
/**
@ -509,7 +517,8 @@ export class AppModel extends Monobehiver {
*/
removeAll(): void {
const modelNames = this.modelDic.Keys();
console.log(`开始清除所有模型,共 ${modelNames.length} 个模型`);
modelNames.forEach(modelName => {
const meshes = this.modelDic.Get(modelName);