新问题:切换尺寸,在放置配件会重叠
This commit is contained in:
@ -268,9 +268,9 @@ export class AppModel extends Monobehiver {
|
||||
*/
|
||||
private async addSingle(modelName: string, modelId: string, modelUrl: string, modelControlType?: ModelControlType, drag?: DragConfig, transform?: ModelTransform): Promise<LoadResult> {
|
||||
// 检查是否已存在
|
||||
const existingMeshes = this.modelDic.Get(modelId);
|
||||
const existingMeshes = this.modelDic.Get(modelName+'_'+modelId);
|
||||
if (existingMeshes?.length && !existingMeshes[0].isDisposed()) {
|
||||
console.log(`模型 ${modelName} 已存在,直接显示`);
|
||||
console.log(`模型 ${modelName+modelId} 已存在,直接显示`);
|
||||
this.showMeshes(existingMeshes);
|
||||
return { success: true, meshes: existingMeshes };
|
||||
}
|
||||
@ -284,11 +284,12 @@ export class AppModel extends Monobehiver {
|
||||
// 克隆材质,确保每个模型有独立的材质
|
||||
this.cloneMaterials(result.meshes, modelId);
|
||||
|
||||
result.meshes = this.createModelRoot(modelId, result.meshes);
|
||||
this.modelDic.Set(modelId, result.meshes);
|
||||
// 存储模型
|
||||
result.meshes = this.createModelRoot(modelName+'_'+modelId, result.meshes);
|
||||
this.modelDic.Set(modelName+'_'+modelId, result.meshes);
|
||||
|
||||
// 存储元数据
|
||||
this.modelMetadataDic.Set(modelId, {
|
||||
this.modelMetadataDic.Set(modelName+'_'+modelId, {
|
||||
modelName: modelName,
|
||||
modelId: modelId,
|
||||
modelUrl: modelUrl,
|
||||
@ -299,12 +300,12 @@ export class AppModel extends Monobehiver {
|
||||
|
||||
// 应用 transform
|
||||
if (transform) {
|
||||
this.applyTransform(modelId, transform);
|
||||
this.applyTransform(modelName+'_'+modelId, transform);
|
||||
}
|
||||
|
||||
// 配置拖拽功能
|
||||
if (drag) {
|
||||
this.mainApp.appModelDrag?.configureDrag(modelId, drag);
|
||||
this.mainApp.appModelDrag?.configureDrag(modelName+'_'+modelId, drag);
|
||||
}
|
||||
|
||||
// 更新 GameManager 的字典
|
||||
@ -338,11 +339,11 @@ export class AppModel extends Monobehiver {
|
||||
// 克隆材质,确保每个模型有独立的材质
|
||||
this.cloneMaterials(result.meshes, modelId);
|
||||
|
||||
result.meshes = this.createModelRoot(modelId, result.meshes);
|
||||
this.modelDic.Set(modelId, result.meshes);
|
||||
result.meshes = this.createModelRoot(modelName, result.meshes);
|
||||
this.modelDic.Set(modelName+'_'+modelId, result.meshes);
|
||||
|
||||
// 存储元数据
|
||||
this.modelMetadataDic.Set(modelId, {
|
||||
this.modelMetadataDic.Set(modelName+'_'+modelId, {
|
||||
modelName: modelName,
|
||||
modelId: modelId,
|
||||
modelUrl: modelUrl,
|
||||
@ -353,12 +354,12 @@ export class AppModel extends Monobehiver {
|
||||
|
||||
// 应用 transform
|
||||
if (transform) {
|
||||
this.applyTransform(modelId, transform);
|
||||
this.applyTransform(modelName+'_'+modelId, transform);
|
||||
}
|
||||
|
||||
// 配置拖拽功能
|
||||
if (drag) {
|
||||
this.mainApp.appModelDrag?.configureDrag(modelId, drag);
|
||||
this.mainApp.appModelDrag?.configureDrag(modelName+'_'+modelId, drag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user