可以也发个X版的xhero地图下载给我吗?我xhero地图下载p13...

游戏大、小地图的制作和鼠标指针的替换
& & 第一次写东西,我也是看了网上很多前辈的帖子,把几个功能合在一起实现了,不算什么教程。对于不会做的朋友可以参考一下下(工程文件在最后)。先说下实现这三个功能的思路,相信各位在其它地方也了解过了,我就简单一点说明:
一、鼠标指针指针替换:其实就是把原有的鼠标指针通过Screen.showCurse =false隐藏,然后在鼠标的位置Input.mousePosition重新放一个鼠标指针的图。
二、小地图:就是用两个摄像机,分别显示不同layer的物体,再调整摄像机的depth,数值大的显示在前端。
三、大地图:游戏中通常有按M键或Tab键弹出地图,再按一次隐藏。那个小地图是用简单的图形画的,目的是省资源,而且也比较简洁、直观。但是比小地图大,但制作原理跟小地图是一样的。
好了,下面就开始制作吧。(PS:第一次做的时候忘记截图,有些步骤较复杂,现在就省略一些了。)
1. & &先搭建一个规则的场景。创建一个Plane, 将X、Y分别伸缩到100、80。(PS:楼主在3D max里导出了一个1*1米的Plane,只有两个面,很小,其它地方也用得到。当然,这次不一定需要,系统自带的plane就行。)各位可以根据需要自行调整大小,但是比例控制在长宽比是5:4。 然后在周围用BOX加上围墙。如图:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_3defcb.jpg');" />
&
2. & & & 设计地图的建筑或者其它地形。然后用PS画出小地图:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_26b706d8e7.jpg');" />
我的画布是100*80CM的,比例跟场景地图一致。画的时候一定要用到标尺,选视图--&标尺,或者Ctrl+R。注意看好比例,如果喜欢,可以给每个建筑加上名字的提示。(PS:本来想做成半透明背景的,楼主太鸡动,后面忘记保存工程文件了。。)再强调一次:小地图的每一块的比例和场景里的建筑 都是要很准确的,不然就会出现穿墙或者空地过不去的错觉。
3. & & &既然开了PS,就一次性把小地图上的人物也画出来吧。就是一个点,新建一个20*20的画布(背景透明),然后画个圆,颜色就填充自己喜欢的,我用的红色。726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_bcd.jpg');" />
&
4. & & 回到Unity,用BOX搭建出设计图中的场景,比例OK的话应该很容易搭建的。新建一个BOX,调整它的大小到你场景长度的1/10,这样子就能放10*8=80个BOX。调整位置的时候坐标都是整10的,很好调。不过我们并不需要这么多,只要把需要的几个BOX通过伸缩变换就能搭建出需要的场景来。最后的效果图是这样:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_2a8b5a8b00.jpg');" />
纵向坐标自行调整,做小地图暂时不需要它。
&
5. & & 好了,场景已经搭建完毕,右键-&Import Package-&Character
Controller导入一个角色,就用第一人称First Personal Controller,放好位置,走一走吧。 为了测试不那么枯燥,我们加个背景音乐。新建一个空的物体,菜单GameObject--&Creat Empty,reset一下,然后加个音源Component--&Audio--&Audio Resource,把背景音乐放上去,设置为Loop播放。最好把音乐改为2D的。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_2731ad222.jpg');" />
6. & & 再加个Directional &light, 并把Shadow Type设置为Hard或Soft &Shadows,让场景自然一点,再上去走走看吧。
&
7. & 好了,准备工作已经做得差不多了,这时候如果没整理过的话Hierarchy应该很乱了。现在整理一下,新建个空物体并reset一下,用空物体作为文件目录并改好名,将一些同类的东西都作为对应的子物体,我三个功能制作结束后的样子:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_ad7d.jpg');" />
&
8. & &废话有点多了,下面开始来重点的,用双摄像机制作小地图:
a) & & & 一般的制作场景小地图的方法:新建一个Camera, 命名为Small Map Camera,并调整参数如下:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_ed3a027d07.jpg');" />
图片看得不太清,我描述一下:Rotation:X=90, &Projection: Orthographic, Size:20, &下面 X=0.8, Y=0.8, W=0.2, H=0.2, Depth=1.
特别说明,调整Depth的大小可以调整Camera的优先级,数字大的显示在前端!XYWH主要是调整小地图的大小和位置,其它的像Far、Size等一些参数,各位可以调试一下,看有什么效果。 最后,我们能在右上角看到全场景的地图,还有角色(胶囊体)的位置,怎么样,简单吧!
&
b) & & & 游戏中的小地图做法:上面那个小地图是针对场景很小的时候制作的,而像魔兽、FF12等大场景的游戏,如果也显示全图,那就太不科学了。于是我们之前PS的那个小地图就起作用了。我们画的时候都是根据场景地图等比例缩放得到的,下面就看看它的作用。
(1) & & & 新建一个Plane,名字改为Map,再把小地图贴图拖给它,这样
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_40ade29b1c43432.jpg');" />
为了方便,把坐标调整到(0,0,0),将场景下移。再调整一下Scale到合适的尺寸。 然后再新建一个Plane改名为PlayerOnSmallMap,将之前PS的那个红点拖给它。(这里为了好看点,我用了2DTK,用Plane也能表示。)再把这个红点放到比Map高一点点的位置。调整好摄像机的参数,再建个空物体将它们放一组。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_cba148fcdfd7c7b.jpg');" />
&2) 接下来这一步很必要。将SmallMap组里的对象都放到一个新的Layer里面,
&& & & & & &726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_f5c52a17f88.jpg');" />
添加layer方法跟添加tag一样,然后再到角色的摄像机那里把显示层的SmallMap去掉,这样角色就看不到小地图的物体了。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_ed4c19b722e.jpg');" />
&& & & &3) &好了,全部的准备工作都做好了,剩下就是代码了。
&& & & & & 再插一句最最关键的:小地图的制作原理是,将3D世界的坐标映射到2D的地图上,缩放比例是 小地图的长/世界地图的长,小地图的宽/世界地图的宽。
&& & & & & & 3.1)给小地图上的Player红点加上这段代码:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_a0e.jpg');" />
&& & & & & 3.2) 给小地图上的摄像机加代码,让它时刻跟随红点:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_7aae0e628b500cc.jpg');" />
&
9. & & 做到这里,基本已经达到小地图的效果了,最后再实现按Tab键弹出地图的功能。
同样的方法,创建一个新的Camera,改名Map Camera。调整参数如下,并将Culling Mask只显示SmallMap层。将Size稍微调大一点,Depth设置为2,要显示在小地图的前面。
&& & & & 726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_b3fed855f1e.jpg');" />
&& & & & 然后再给MapCamera添加以下一段代码:
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_da.jpg');" />
Screen.showCursor = false先不加,看下面!!!
10. & & &这样我们就把大地图功能也实现,最后,再换一下鼠标指针吧,网上已经有很多教程了。
创建一个空物体,菜单--&GameObject--&Creat Empty,reset一下,改名为MouseCurse,然后再创建一个JS(用C#写了几次都出错,没法。。),代码如下
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/1304/thread/2_23290_efdd5.jpg');" />
最后放一个自己的鼠标指针图片给MouseCurse:Texture。
& & 好了,基本就这样子。第一次写这样的文章,可能废话有点多,也有很多东西会遗漏,还请见谅。在做的时候我没有遇到太大的问题,就是偶尔会傻逼一下。如果有问题,可以在后面提出来,大家一起解决。我也还在学习当中,昨晚下载了Unity4.1,还没破解(只能破解。。),今天去试试。这里要感谢一下 帆哥zf223669 ( )!
PS:C#写中文注释时,最好写在前后都加上//(//xxx//这样),不然经常会乱提示错误。
工程下载:/share/link?shareid=483498&uk=
要评论请先&或者&
很好很哟大啊
感谢楼主,辛苦了!这几个我也很想知道的,对我们新手很有帮助!!如果能带上工程文件做参考,那就更好了,方便的时候,上传下不!
小地图的话。加一个正交投射的摄像机,从上往下看。给每个物体生成一个只能由该摄像机看到的标志,这样实现更快。
楼主整理的挺好,加了重点标注
收集辛苦,感谢分享
要是小地图做成圆的该怎么做??
:要是小地图做成圆的该怎么做?? 可以做一个圆形的透贴来遮挡
:可以做一个圆形的透贴来遮挡 正解! 为了美观一点,通常都会在小地图上面一层用一个圆形的框来遮挡,这个用NGUI就可以做。
:顶一下。
小地图的话。加一个正交投射的摄像机,从上往下看。给每个物体生成一个只能由该摄像机看到的标志,这样实现更快。 嗯。我为了省事,就直接用PS画的MAP来显示小地图了。我的世界地图怎么得 地图有什么用
作者:蚕豆网
我的世界地图怎么得?地图有什么用?在我的世界中地图是一个用来记录与查看已经探索过的地形的物品。当玩家手上拿着地图的时候,随着玩家的探索,已经探索的世界会逐渐显露在地图上。之后当玩家把地图拿在手上时,就可以看到所探索过的世界。
每一张地图总共有128&128像素。每一个像素代表的实际大小由地图的缩放尺度决定。如果没有经过任何缩放操作,最初始的地图的每一个像素代表1格。你可以在工作台中将地图与纸合成以将其比例缩小一个尺度。
自Infdev(包括Alpha、Beta和正式版)后,Minecraft 世界在水平空间中几乎可说是无限的,所以一张地图根本不能够容纳整个世界。玩家可制作多张地图,且可以对齐到网格。详见多张地图。
比例缩小:
地图缩放等级由初始的1级可以逐渐用该合成方法增大到5级。
地图复制:
得到的地图与原始地图完全相同,甚至当手持其中一张探索新区域时,另一张也会跟着更新。
用此方法复制地图时,单次合成最多可以复制8张空地图。
以后也许会让地图支持更多颜色与自定义材质包。
地图传递了三个信息:
地图类型。地图可以记录主世界、下界或末路之地。三种地图都必须在其对应的维度中激活。若查看的地图不对应所在的维度,则地图的内容会如常显示,但没有了方位指针,四处移动也不会更新地图。
中心点。即空地图变成地图时所在的位置。
一张地图的中心坐标是固定的,也就是说地图不像多数游戏的&卫星地图&那样,地图是动态的,中心就是玩家方位。另外,如果玩家走出了这张地图的显示范围之外,外部的地形不会显示在地图之上,此时就有必要做一张新的地图。
当玩家在探索中时,新地形只有在玩家手中拿着地图时才会被记录。地图只会记录当时的地形,也就是说已记录的地形在修改过后,地图不会自动更新,只有在玩家拿着地图重新走过这个地区才能更新地图的显示内容。拿着地图时前方视线不会被遮挡,因为地图处于视野之下,玩家只有向下看才能看到完整的地图。
想记录新区域的话就必须合成新地图。玩家走到新地图的理想中心点时,玩家就可以手持手中的空地图并右键点击了。此地会成为该地图永远的中心点,再也不能改变。
地图只会在拿在手上时才会记录地形,尽管地形已经被另外一张地图记录也是如此。一张没有被拿出的地图是空白的,尽管其它地图已经记录了这张地图的区域。
在正式版 1.0.0 到12w34a之间的版本里,玩家若要合成一张新地图,就不能使用Shift键:使用Shift键拿起的地图永远是 map_0 的副本,即在这个世界中合成的第一张地图。相同标记(map_0)的地图之间的地形记录会自动同步。在创造模式,map_0 会自动创建,中心点在重生点,而且在物品栏中直接取出的地图都是map_0。
但其它地图仍然可以通过合成得到。合成的第一张地图是map_1,第二张是map_2,等等。且合成的地图无法重复得到,建议用箱子装起来。
主条目: 地图物品格式
地图上的每一个像素代表世界上一个特定的可视区域,且代表的X和Z轴坐标也是8的倍数。总体上地图上像素颜色由对应区域中出现最多的不透明方块的颜色决定,就如在空中俯视所见。但是也有例外。例如,沙石、金块、巨型红色蘑菇、羊毛和地狱岩在地图上的颜色为灰色。在区域内的少数方块不会对像素的颜色起任何影响,因此在缩放程度较大的地图中很多细节都看不到。
海洋下15格以内的海底会略显淡蓝色,你可以通过此特征大致的估算海拔。
地图的显示面积为128像素&128像素,故其覆盖面积从128&128到格不等(8&8到128&128个区块),数量与其缩放程度有关。缩放等级为4的地图与1.3.2正式版以及之前版本中的地图比例尺相同。
在多人游戏中,地图有重要的社交意义,因为一个玩家可以把自己的地图给另外一个玩家,此时其他玩家可以看到别的人探索过的区域。地图是可以复制的,所以几个玩家可以共同探索一张地图。在相同的地图中其他玩家的方位也是可以知道的。
地图一般作为玩家迷路时的指导。在单人游戏中地图可以指引去找剩余的矿藏,在多人游戏中,玩家可以查看其他玩家的地图。在不同维度中合成的地图不会标明玩家的方位,也不会出现内容的更新。
在PvP服务器中地图也有很大作用,能够标出你敌人的位置。
在下界中,由于有天花板,地图只会显示出红色和灰色。此时地图的唯一用处便是告知当前位置相对于地图制作地点的方位。此外方向指针会快速的旋转,并不能指明玩家的朝向。这时要记住,地图&上北下南&,再运用东南定律(此处,地狱岩中有&L&型图案指向东北方)便可确定方向。若地图在传送门旁边制作,则地图的中央就是传送门。地图也可以标明已探索的区域作为参考。
在末路之地中合成的地图也只会显示出红色和灰色,尽管末路之地没有可见的天花板。但地图上的方向指针是正常工作的。
地图也可以显示出海拔高度。海拔越高,地图上的图像越明亮。
若玩家在第二人称或第三人称视角中拿着地图,只会显示出地图在物品栏中的图像,而不会出现实际的记录内容。
如果你用第一人称视角拿着地图坐上船或矿车,然后切换到第三人称视角,最后回到第一人称视角,你会发现左手会摆放错误。在船或矿车上打开物品栏的时候也有可能导致这种情况的发生。
在程序设计上地图不能记录虚空。虽然实际上极为罕见地能够记录,但更多情况下会导致游戏自动保存并崩溃。
在有些服务器上地图可能不能正常使用,具体表现为记录的范围很窄,且只有零星的几个像素。
当拿着地图破坏一个方块时,地图会被清空,地图的编号会增加1(如map_0 会变成 map_1)。(正式版 1.0.0 后不再出现。)
在世界加载时,若玩家转向左边,地图上玩家的方向指针会偏离一个像素(约22.5&);若转向右边则表现正常。这也&追踪&了玩家在各个方向上的偏转角度。
多人模式中的某些地图在探索地形时会一切正常,但当玩家重新登录时地图上会出现垂直的线。大多数情况下把地图交给别人看一会就会恢复正常。
在多人模式中,合成一个新的地图有可能会清空放在物品栏中的旧地图。
所有颜色的羊毛在地图上都显示为亮灰色。
当在海拔230米处合成并查看地图的时候,游戏会自动保存并崩溃。(有记录的出现有一次)
在正式版 1.2 中,合成的多个地图都只会是 map_0 的副本。
你知道吗:
在PvP服务器中,合成和使用地图要谨慎,因为别人有可能通过地图发现你和你秘密基地的位置。注意:最好在重生点或远离自己基地的地方合成地图,以免暴露出机密的方位。
地图只会显示地面上的地貌,即使你在探索山洞里。当你在建造通向地面的隧道时,地图是个很好的工具,用来判断上方是否危险(水、岩浆,沙等)
只有地图和拉开的弓是 Minecraft 中需要双手来拿的物品。
当玩家走出地图的边缘时,玩家的位置会短暂的跳跃到地图上的另外一边。
当被放入玩家的物品栏中后,地图的名字总是被叫做map-x(除非地图的伤害值被正确修改),x是地图的编号,第一张地图就是map-0。
当玩家拿着地图时,按F5切换到第三人称视角,并不会看到玩家低头在看地图,而仅仅是玩家物品栏中的地图图标。
地图尽管是用纸做的,但是还是可以在雨中和水下使用。
地图是minecraft中最细致的物品,它有比大型壁画多几倍的像素。
Notch说过地图记录玩家自定义数据的特性会使得撰写书成为可能。甚至告示牌或者画都能使用自定义的材质。
每个世界最多可以有65536张各不相同的地图。
如果地图数量超过限制,游戏将会显示"Can't craft map: too many maps"(无法合成地图:地图数目过多)信息。
使用"/give"指令得到的地图只会是map_0。若map_0从来未被合成过,则地图中央是原始的出生点。
当前地图只能显示地表地形。但是 Notch 表示山洞地图是个很有趣的主意。
Notch说他会试着让地图能挂在墙上。但是这个功能至今还未出现在游戏中(1.4的每周快照中物品展示框已能实现,尽管1x1的空间使得阅读地图有些吃力)。
不同地图的数据分别保存在不同的文件中(。dat文件,如map_x.dat ,x是地图的编号,详见地图物品格式)。因此玩家可以管理他们的地图,如果玩家不小心制作了2张中心点相同的地图,他可以删除那个多余的地图来减少剩余地图编号的使用量。
在多人模式中地图可以记录虚空。
地图的中心点指的是在合成时玩家所站的位置,不是地图首次使用的地方,也不是工作台的位置。
在查看地图时,手臂的材质会旋转,显示出背部的材质,因为玩家使用手心托住地图的。
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
我的世界地图
我的世界地图怎么得
我的世界地图有什么用
相关的资讯有:
我的世界地图
我的世界地图怎么得
我的世界地图有什么用
相关的博文有:
CF手游专区
天下手游专区
Pokemon GO专区
今日,由爱奇艺游戏独家发行的轻竞技射击手游《反斗联盟》公测预约正式开启...
MOBA游戏能够成为全球玩家心中宠儿的原因之一,是其多变的英雄体系以及时刻...
由心乐科技有限公司打造、深指游方寸发行的日式暗黑风横版动作手游《侍灵》...
萌战无双》是一款全新打造非典型----颜控必玩三国爆衣卡牌手游。拥有时下最...
游戏类型:游戏礼包
剩余数量:4000
游戏类型:游戏礼包
剩余数量:0
游戏类型:游戏礼包
剩余数量:0
游戏类型:游戏礼包
剩余数量:0
新媒体推荐
每日提供新鲜游戏资讯,游戏礼包、游戏趣闻、圈内八卦,惊爆你眼球,带你装逼带你飞。数万手机游戏发烧友与你一同玩耍!
各种逗比游戏,各种新游、热游、妹子、福利,你想要的全都有!一起来摩擦,似魔鬼的步伐,我的好游戏,时尚时尚最时尚。
Copyright (C)
All rights reserved.
请选择一张图片分享
要转发到新浪微博,请
要转发到QQ空间,请

参考资料

 

随机推荐