unity VR中制作小地图的方法

在许多漫游场景中,我们可能会遇到需要小地图的情况,这是为了进行重要地点标识以及指引方向。同样在VR中漫游中,如何处理方向导航仍然成为一个问题,这里给出一种将3D游戏中的小地图移植到VR相机中的思路。
以下是具体制作过程:

一、制作3D游戏的小地图:

1、首先创建一个简单的场景,使得我们在小地图中有物体可以观察。
场景中具体包括一个第一人称的控件和四个不同形状的物块(染成不同颜色仅仅是为了区分)。
在这里插入图片描述
导入第一人称控件的方法:选中Assets,右键选中Import Package,选择Characters,然后可以看到Standard Assets中有一个Characters文件夹,找到Prefabs中的RigidBodyFPSController(以下简称Controller)拖入场景即可,可以看到Controller自带一个Camera。
在这里插入图片描述
同时给它添加一个Quad,调整参数使它位于Controller的正上方,模拟小地图中主角的图标,同样染一个其他颜色以作区分。
在这里插入图片描述
添加方法:选中Controller,右键,选中3D Object,即可看到Quad。
2、创建3D下的小地图视角。
在这里插入图片描述
新建一个Camera,命名为Camera_Map以作区分,把Projection改成Orthography(正视投影),将它调整位于场景上方,大小正好可以包住场景,至此,可以在右下角的相机预览中看到小地图的雏形。
3、更改小地图形状。
新建一个Image和RawImage,其中RawImage是Image的子物体,两者位置重合,将Image命名为Image_Mask,用作遮罩层。
导入一张事先准备好的圆形图片mask_circle.png,用作遮罩层形状。
在这里插入图片描述
将Texture Type改为Sprite(2D and UI),点击Apply。
在这里插入图片描述
给Image_Mask添加一个Mask的组件,将mask_circle拖入Source Image中,即可看到效果:
在这里插入图片描述
在这里插入图片描述
4、将小地图视角投到画布上去。
新建一个Render Texture,选中Assets,右键,create选中Render Texture,命名为Render_tex,将Render_tex分别拖入Camera_Map中的Target Texture和RawImage中的Texture,即可看到中央的圆形小地图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这一步3D视角下的小地图已经制作完成,只要将它放在画布的右上左上角就可以投入使用。

二、将小地图移植到VR中:

1、更改相机类型。
这是区分普通3D游戏和VR游戏最基本的一步,只有换成VR相机后,才能在头盔中观察到场景。这里我们将Controller向前的Camera删掉,重新添加进VR相机,只需将Steam VR包中的CameraRig直接拖入。
在这里插入图片描述
这里有一个细节,需要将Controller的控制脚本改成对应的Camera(eye),否则在后续移动时,方位可能会出错,有点“找不着北”。
在这里插入图片描述
2、更改画布类型。
然后将Canvas的Render Mode改成World Space,然后将Event Camera设置为CameraRig中的Camera(eye),这样才能在VR相机中观察到Canvas。
在这里插入图片描述
3、将画布附在手柄上。
最后一步将Canvas设置成VR手柄的子物体,可以跟随移动,同样调整Canvas和Image大小以及位置到合适为止。
在这里插入图片描述
4、为小地图添加“收起”和“打开”的控制。
在漫游时,并不是每时每刻都需要小地图的导航,有些时候小地图的存在反而遮挡了视线,影响漫游效果,所以很有必要让小地图在需要时出现,不需要时就隐藏起来。
在控制VR相机移动的脚本中加入以下代码:
在这里插入图片描述
这里的设定是利用扳机控制地图的隐藏和出现,当然你也可以使用其他交互方式。
在这里插入图片描述

三、效果。

最后的效果就是扣动扳机,屏幕中央出现小地图,再次扣动扳机,小地图消失。同时小地图上会显示“自己”与其他物体的相对距离,可以看到“自己”在小地图上移动。
一些效果截图:
在这里插入图片描述

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity3D是一款强大的游戏开发引擎,可以用于制作各种类型的游戏,包括小地图。小地图可以帮助玩家在游戏快速定位自己的位置,了解周围的环境和目标位置。下面是制作Unity3D小地图的步骤: 1.首先,需要创建一个小地图的背景图。可以使用2D图片或者3D模型作为地图的背景。根据游戏的需求选择合适的背景。 2.接下来,创建一个摄像机对象,并将其设置为渲染到一个RenderTexture上。RenderTexture是一个可以用于将某个摄像机渲染的图像输出到纹理的类。在这个RenderTexture上设置小地图的尺寸和位置。 3.将创建的摄像机对象添加到主摄像机上。这样可以实现将主摄像机的渲染图像投影到小地图的背景图上。 4.创建小地图上的角色或者目标的图标。可以使用2D图片或者3D模型作为图标,根据游戏需求选择合适的样式。 5.根据角色或者目标的位置,将图标放置在小地图的对应位置上。可以通过坐标转换等方式将世界坐标转换为小地图上的坐标。 6.在游戏进行,更新小地图上的角色或者目标的位置。可以通过实时获取角色或者目标的位置信息,然后将图标移动到对应的位置。 7.可以在小地图上添加一些标记物,比如重要地点、敌人位置等。这样可以帮助玩家更好地了解游戏世界的结构和情况。 通过以上步骤,就可以制作出一个基本的Unity3D小地图。当然,在实际制作还可以根据游戏的需求进行一些定制和优化,比如添加一些特效、增加互动功能等,以提升游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值