Unity3d开发相关:小地图高速创建
我最近做场景小地图创建的时候进行了一点小小的研究 想跟技术宅们分享下 大家有什么好的意见和指教也可以交流一下
做游戏或者应用开发我觉得有句话很重要,没有最好的办法,只有最适合的手段。做小地图当然是追求快准狠。快:做的越快越好。准:定位越准越好。狠:省资源和运算,省的越狠越好。好了,废话不多说了,下面介绍两种方式:NGUI插件式小地图、场景坐标投射式小地图。
NGUI插件式小地图:
这种模式下制作小地图速度相当快,只需要导入NGUI插件,整场景渲染成一张贴图,将贴图制作成NGUI的atlas(以上纯属NGUI操作,不懂的请自己搜索一下吧~我懒啊)。接下来就是重点了~
首先在NGUI的2DUI中建立一个小地图专用的panel,并且将UIPanel中的Clipping打开,不管是硬切还是软切,能切就好。
[attachment=46836]
这个就是本人小地图的Panel设置,具体的设置你们自己研究吧。
然后在这个Panel中建立一个Sprite,这个Sprite就是你的场景地图,并且把这个Sprite的缩放的ZY和场景的XZ长度对应起来(这个是偷懒的重点,你的场景多大,Sprite的XY缩放就要多大)
接下来就是在你的Panel的正中央放一个作为定位角色的东西,开始慢慢调试对位了,把游戏中角色的位置和小地图的位置对应调整好。
最后~~代码部分
[attachment=46837]
真正处理地图运动的就是17行和18行的代码~~看吧~2行代码全部搞定定位。
把这个代码拖到你的小地图Sprite上面,然后再把你的角色拖到Player这个属性上面,接下来你就能看见一个很酷的小地图了。
场景投射型小地图:
这个方式在Unity3D的官方DEMO BootCamp里面用的到位。运行这个DEMO的时候我们就能看到左上角一个圆形小地图雷达。这个小地图同样需要一个渲染的场景贴图作为地图,然后需要一个带圆形孔(其实孔的形状自己决定就好,喜欢什么样形状的就什么样形状)的面片,这个面片需要一个带Transparent Alpha_Cancel的shader的材质球,贴图同样也是地图贴图,接下来就需要一个看这个地图的摄像机了,相机保持和角色在同一XZ坐标(写个很简单的同步位置的脚本),小孔面片永远保持在摄像机相同位置,这样运行起来后就可以看到小地图跟着动了,如果需要BootCamp里面那种带方位指示的东西的话,就只需要再创建一个透明通道的面片,带上你自己喜欢的样式的指针贴图。这个方案由于有官方DEMO,就不多说啦~大家自己学习一下就好。
>>相关产品