一、Unity3D优化技巧
1、静态资源优化方案
2、多线程加载
3、资源动态更新
4、资源管理
5、场景加载
Unity3D优化技巧
资源优化主要是也是围绕上面框架图介绍,游戏中的场景会摆放很多静态的物体,静态的物体,我们可以通过编码将其重新组装成一个大的物体,在组装成一个大物体之前,有个问题大家要思考一下,对于静态物体的摆放有几种情况,一是合并的物体可能有相同的,完全一样;二是合并的物体有不同的,对于相同的物体可以共用一种材质球,而不同的物体就按照不同的处理即可,核心代码如下:
1. for (int s = 0; s < meshFilter.sharedMesh.subMeshCount; s++)
2. {
3. int materialArrayIndex = Contains(materials, meshRenderer.sharedMaterials[s].name);
4. if (materialArrayIndex == -1)
5. {
6. materials.Add(meshRenderer.sharedMaterials[s]);
7. materialArrayIndex = materials.Count - 1;
8. }
9. combineInstanceArrays.Add(new ArrayList());
10. CombineInstance combineInstance = new CombineInstance();
11. combineInstance.transform = meshRenderer.transform.localToWorldMatrix;
12. combineInstance.subMeshIndex = s;
13. combineInstance.mesh = meshFilter.sharedMesh;
14. (combineInstanceArrays[materialArrayIndex] as ArrayList).Add(combineInstance);
15. }
我们看到上面有个函数Contains它就是用于判断是否有相同的材质,如果有就作为一张材质,Contains函数代码如下所示:
1. private int Contains(ArrayList searchList, string searchName)
2. {
3. for (int i = 0; i < searchList.Count; i++)
4. {
5. if (((Material)searchList[i]).name == searchName)
6. {
7. return i;
8. }
9. }
10.
11. return -1;
12. }
这样就可以将静态物体组装成一个大的Mesh,这个Mesh包含一个或多个材质球。
教程名称:Unity3D优化技巧 | 语 言:中文 | 页数/时长: 8页 |
软件版本: unity | 上传时间:2018/03/06 | 价格:¥0 |
文件格式: docx | 文件大小:131kb |
您还未登录
全部评论: 0条