问题 用PakTools插件打包出来的pak文件,打包运行挂载pak文件后(使用PakLoader插件加载),有的pak文件系统无法加载指定路径的资产。
原因分析: 使用cmd命令查看pak文件,得到如下输出:
1 2 3 4 5 6 cmd:UnrealPak.exe F:\00_Imrcao\01_MyProject\PreviewTools\Saved\DownloadedPaks\Models\chair_P.pak -List Mount point ../../../PreviewTool/ LogPakFile: Display: "AssetRegistry.bin" offset: 0, size: 3948 bytes, LogPakFile: Display: "Content/Assets/Materials/Models/Fabric_3.uasset" LogPakFile: Display: "Content/Assets/Materials/Models/Fabric_3.uexp" LogPakFile: Display: "Content/Assets/Materials/Models/Metal_2.uasset" 1 2 3 4 5 6 7 cmd:UnrealPak.exe F:\00_Imrcao\01_MyProject\PreviewTools\Saved\DownloadedPaks\Models\Bed_P.pak -List Mount point ../../../ PreviewTool/Content/Assets/Texture/UMG/Thumbnails/Models/Bed.ubulk" LogPakFile: Display: "PreviewTool/Content/Assets/Texture/UMG/Thumbnails/Models/Bed.uexp" LogPakFile: Display: "PreviewTool/Content/Blueprints/Sku/Models/Bed.uasset" LogPakFile: Display: "PreviewTool/Content/Blueprints/Sku/Models/Bed.uexp" 可以发现两个pak文件的mountPoint不一样,默认mountPoint系统自己计算,但也可以自己设置。那么mountPoint不一致会有什么问题呢?先看我的挂载代码。
1 UPakLoaderLibrary::MountPakFile(PakPaths, "") 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 //挂载pak UPakLoaderLibrary::MountPakFile(PakPaths, "") //注册挂载点,这个是核心 UPakLoaderLibrary::RegisterMountPoint("/PTPakDLC/", "....