# terrain_proj **Repository Path**: test001/terrain_proj ## Basic Information - **Project Name**: terrain_proj - **Description**: unity 大地形切割、加载、AB - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-08-12 - **Last Updated**: 2021-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Unity 大地形研究 1. 切割大地形 打开 unity, 在菜单栏点击 Terrain->Slicing 即可以切割大地形,代码会自动遍历 Hirerachy 里的地形,切割4X4的16块,切割好的地形默认会存在 Resources 目录下,生成一个地形 gameobject 同名的文件夹。 除了地形分片资源,这里还会生成地形和物件相关的数据信息,保存成二进制文件,保存在同一目录下。 2. 分段加载地形和物件。 点击 Terrain->Load 会加载分片地形, 并且根据地形分片生成一个对应的 collider. collider 的 triger 会触发地形的加载和卸载,实现过程类似于 Unreal引擎实现的Level Streaming Volume。 3. 部件的加载 部件如场景里的石头这个物件,他的加载跟着地形分片一同加载、卸载。而不是以 player 为中心做四叉树来管理场景的加载卸载。 4. 地形lightmap生成assetbundle 点击 Terrain->生成lightmap资源,即可以把当前场景的lightmap 贴图全部达成assetbundle. 在打包lightmap贴图的同时,会生成一个二进制文件被打到同一个assetbundle中,这个二进制文件记录了当前场景里所有render的lightmap的index索引和offsetscale偏移。 我们使用AssetStudio 来查看assetbundle 里的内容,可以清楚看到资源的分布: