README_TreeReplacement.md 3.7 KB

Stage_Item.prefab 树木模型替换指南

概述

本指南将帮助您在 Stage_Item.prefab 中替换树木模型,使用 Fantasy Building Pack 中的新树木模型。

当前环境模型

Stage_Item.prefab 中发现的环境模型:

  • Pine_04 (4) - 松树模型
  • Rock_A_01 - 岩石模型
  • Herb_A_01 - 草药模型

可用的新树木模型

位置:Assets/Fantasy_Buildig_Pack/Prefabs/Props/

  • Tree_1.prefab
  • Tree_2.prefab
  • Tree_3.prefab
  • Tree_4.prefab
  • Tree_5.prefab
  • Tree_7.prefab

替换方法

方法一:使用TreeModelReplacer脚本(推荐)

  1. 创建替换器对象

    • 在场景中创建一个空的GameObject
    • 添加 TreeModelReplacer 脚本组件
  2. 配置脚本

    • 将可用的树木模型拖拽到 Available Tree Models 数组中
    • 设置替换选项:
      • Replace Pine Trees: 是否替换松树
      • Replace Rocks: 是否替换岩石
      • Replace Herbs: 是否替换草药
      • Scale Multiplier: 缩放倍数
  3. 执行替换

    • 右键点击脚本组件
    • 选择 "替换树木模型"
    • 脚本会自动备份原始Prefab并执行替换
  4. 恢复原始模型

    • 右键点击脚本组件
    • 选择 "恢复原始模型"

方法二:手动修改Prefab文件

  1. 备份原始文件

    cp "Assets/GAME/Prefabs/Stages/Stage_Item.prefab" "Assets/GAME/Prefabs/Stages/Stage_Item_backup.prefab"
    
  2. 修改Prefab文件

    • 打开 Stage_Item.prefab 文件
    • 找到 Pine_04 相关的配置
    • 替换 Mesh 和 Material 的 GUID
  3. 具体修改内容

    # 原始Pine_04配置
    - target: {fileID: 1130470249581900, guid: 47a70469d8b90494cbe9b69fa5177b0b, type: 3}
     propertyPath: m_Name
     value: Pine_04 (4)
       
    # 替换为Tree_1
    - target: {fileID: 1130470249581900, guid: bbb532c5530721e4b9d0372cd0c8475b, type: 3}
     propertyPath: m_Name
     value: Tree_1
    

方法三:通过Unity编辑器

  1. 打开Prefab

    • 在Project窗口中找到 Stage_Item.prefab
    • 双击打开Prefab编辑器
  2. 替换模型

    • 在Hierarchy中找到 Pine_04 (4) 对象
    • 在Inspector中修改MeshFilter的Mesh
    • 修改MeshRenderer的Material
  3. 保存修改

    • 点击Apply按钮保存修改

注意事项

  1. 备份重要

    • 执行替换前务必备份原始Prefab
    • 使用脚本会自动创建备份
  2. 材质兼容性

    • 确保新模型的材质与场景光照兼容
    • 可能需要调整材质参数
  3. 性能考虑

    • 新模型的复杂度可能影响性能
    • 建议测试替换后的性能表现
  4. 缩放调整

    • 不同模型的原始大小可能不同
    • 使用 Scale Multiplier 调整大小

故障排除

常见问题

  1. 模型不显示

    • 检查MeshFilter和MeshRenderer组件
    • 确认材质是否正确加载
  2. 材质丢失

    • 检查材质文件的GUID是否正确
    • 确认材质文件存在于项目中
  3. 缩放异常

    • 调整 Scale Multiplier 参数
    • 检查Transform的localScale值

调试命令

在TreeModelReplacer脚本中:

  • "预览可用树木模型" - 查看配置的模型列表
  • "恢复原始模型" - 从备份恢复原始Prefab

扩展功能

添加更多模型类型

ReplaceModel 方法中添加新的case:

case "NewType":
    newModel = Resources.Load<GameObject>("Props/NewModel");
    break;

随机化替换

脚本支持从多个模型中选择:

newModel = availableTreeModels[Random.Range(0, availableTreeModels.Length)];

批量处理

可以修改脚本以处理多个Prefab文件:

string[] prefabPaths = {"path1", "path2", "path3"};
foreach (string path in prefabPaths)
{
    // 处理每个Prefab
}