1.TerrainData文件切割成小块以后,分别打包成单独的AssetsBundle文件,如果不对依赖的资源进行bundleName进行设置,就会出现这部分依赖资源重复打包的问题。单独设置bundleName以后,所有依赖的资源都打包成了单独的文件。解决了资源重复打包的问题。
2.资源依赖的信息是记录在.manifest文件里的,但是记录的是绝对路径。因为项目制作过程中是分为1:资源整合项目,2正式工程项目,两个项目来使用的。所以,自动生成的依赖信息不能直接使用。(暂时还没有测试在同一个工程下的自动加载依赖资源的功能。)所以,加载后的地形丢失了所有的贴图和模型资源。为了解决这个问题,先使用了一个最简单粗暴的方式。
将所有的依赖资源设置为相同的bundleName,这样所有的依赖资源就直接打包到了同一个文件中。然后,在地图初始化的时候,首先将依赖资源的ab包读取到内存中。代码如下
private void LoadWorldMapDepend()
{
string url = Application.dataPath + "/Resources/WorldMap/ABS/Windows/worldmapdepend";
AssetBundle assetBundle = AssetBundle.LoadFromFile(url);
string[] assetsName = assetBundle.GetAllAssetNames();
for (int i = 0; i < assetsName.Length; i++)
{
assetBundle.LoadAsset(assetsName[i]);
}
}
这种方式解决了依赖资源无法加载的问题,但是存在的问题也很明显。首先地图切割本身就是因为地图规模的庞大,