实习两周总结-Unity

来源:互联网 发布:张予曦淘宝店质量 编辑:程序博客网 时间:2024/05/19 12:14

实习差不多两周了,从一开始的学习Unity到我接一些小任务,当然核心代码接触不到

两周做了两个小任务:

1)美术工具

2)优化


先讲一个第一个,比较简单:

===========

功能:美术将模型FBX拖入到Hierarchy视图,程序设置模型的参数,比如position为0,并将所有的材质球的颜色设置成白色,最后生成预设并存储到指定位置

解决思路:1)先通过Selection 获取获取gameObject

                    2)设置基本的参数,材质球要先获取MeshRenderer,然后通过renderer.shareMaterials设置每个材质的颜色

                    3)获取GetComponet<MeshFilter>获取到网格,然后通过AsserDatabase.getAssertPath获取路径

                    4)最后通过PrefabUtility.CreatePrefab()生成预设



第二个,优化。花了一点时间,主要是自己不熟悉

==============

功能:策划需要查看生成地图中人物可以行走的部分

============

实现思路:获取网格的最大的z和x,然后从0开始,逐渐增到最大值,每次是1,每个点检验一个正方形的六个点是否与网格相碰撞,如果全是,则属于绿色部分,有部分则属于

红色部分, 这个可以用一个enum来标记,记下高度

然后在提定的地点生成一个小正方体



遇到的问题:有时候生成的小正体有几千个,时间太长.....打线的时间很快


优化过程:1)一开始我是从资源入手,把每次生成的小正方体改成预设生成,这时时间缩短一半左右,不够

                    2)既然正方体多,优化只能减少数据,特别是绿色那一部分,所以改用了长方体

                            如果是连续的小正体,那么我只能获取中间的位置,然后缩放就行,这里高度不是那么重要,这样效率提交了几倍,基本解决

                           所以这个很简单就解决

                  3)每三点是有关于 draw  call 的问题

                        这个是关于计算机图形的问题,以前没学过是硬伤。。。。

                       简单的说我们的所看到的图形本质中是三角形,不管是3D还是二D,GPU如何工作呢,基本上计算在绘制图形需要的信息(材质,顶点信息等)就是通过CPU送                          到GPU 所以有几千个图形就他送几千次

                       这个可以看看官网             http://docs.unity3d.com/Manual/DrawCallBatching.html

                       还有一些关于untiy 优化的文章:         

                       http://ravenw.com/blog/2011/10/14/unity-optimization-of-draw-call/

                     










0 0
原创粉丝点击