1、地图编辑器:用途
1 提供美术加载对应场景后,进行特效、建筑、动画等对象的摆放设计。
2 提供策划进行对应场景的区域编辑、NPC和怪物、传送点等编辑。
1、地图编辑器主要是可以给美术做一些场景效果还有地形地图,然后给策划去配置地图,比较地形的怪物、NPC摆放,特效摆放,最后导出游戏需要用的数据文件。
1、区域编辑:可以刷整个地图的区域,分为障碍区,安全区,跳点,水域,动态区,游泳区
实现原理:1、根据3D地形大小,创建一张像素一样大小的贴图Texture2D,然后一个像素相当于是一个格子,每个格子都有一个坐标,这个逻辑坐标后面是用来寻路的。贴图的操作是通过SetPixel和 GetPixels32来获取和设置贴图每个格子的像素值,然后通过修改这张贴图的值,可以达到刷不同的区域和下一次读取这张图片来打开上次操作后的状态。
2、贴图的信息通过MeshRenderer的material.mainTexture设置,来显示到屏幕,然后贴图的图片改变时,材质球就会改变,显示在屏幕的信息也会对应改变。
3、当贴图和地形已经一个格子对应一个像素时,要再对应的画对应的网格线出来。在Unity里画线有三种方法,Gizmos.DrawLine、LineRenderer和Debug.DrawLine都会比较卡顿,这几个是在Update里面一直刷新的,因为地图像素是有1万个格子,画那么多的线就会导致很卡。最后采用了OpenGL来画线。GL.PushMatrix();
重点:1、unity单位是1:100,所以显示是要进行换算。
2、相机要改成正交模式,这样就可以从上方平面看下去,直接把贴图按1比1的效果对应地形显示。