【Unity 小地图】基于Cinemachine的实时渲染小地图制作

        小地图是一个游戏在开发中不可缺少的功能,本篇文章将利用Cinemachine制作一个实时渲染的小地图。

        首先,简单介绍一下Cinemachine的导入:

        Cinemachine是2017以上的版本才能使用的一款Unity官方自带的摄像机插件,在这里不做过多介绍,可以通过Package Manager直接导入,感兴趣的可以多去了解一下。

         接下来,概况一下方案:

        小地图的制作方案多种多样,例如: 利用碰撞盒的Size确定玩家位置,并通过代码实时计算(这种方案要注意的是,频繁的坐标转换,容易导致位置计算出错等问题),而笔者的方案是在玩家头顶悬挂一个Virtual摄像机,跟随玩家一起运动,再通过Render Texture渲染到制作好的小地图Raw Image上。

        其实这种方案多用于诸多2D游戏,而本文是将该方案挪用至3d场景中进行运用,要注意的是:这种方案理论上更适合小型3d场景的应用,而不太适合大型场景。

        下面是详细的制作方案:

        1、制作前的准备

        创建一个简单的场景以应对接下来的制作,同时,创建好你的人物, 这里用一个cube代替。

         2、制作小地图

        创建一个Render Texture,并创建如下结构:

        

        其中,Map是一个Canvas,Frame是你的小地图边框,之后启用一个Mask遮罩使小地图变圆,最后创建RawImage实时渲染Render Texture,创建好了就像下面这样:

        

 记得将Render Texture拖拽上去:

         3、CinemachineVirtualCamera的实现

        导入CinemachineVirtualCamera,点击右键在某处创建,最好是新建一个GameObject:

          创建好了之后,新建一个摄像机,在摄像机上加入CinemachineBrain,并将你创建好的RenderTexture拖入TargetTexture处:

         接下来创建小地图边界,这里在刚才的VirtualCamera处创建CinemachineConfiner:

 

         再创建一个Collider划定你想要的边界,注意:这里3d的Collider的高应设置为0!!!

         之后将边界拖入,并将ConfineMode改成3D:

         4、跟随人物移动

        将人物拖入Follow处,并点击设置按钮:

 

        之后你会看见创建出了一个名字object叫做CM TargetGroup1,这个是管理跟随方式的:

        5、梳理与补充

        目前已经做好了人物场景 ——>小地图的制作——>摄像机准备——>边界划定——>跟随移动,这样小地图的功能基本就齐全了,我们只需要运行就可以得到如下效果:

        

         如果你发现摄像机视角或者某些不符合你的预期出现,可以在此处调整:

         再额外补充一点必要逻辑知识:CinemachineBrain上的摄像机可以理解为不是实际在用的摄像机,尽管他身上绑定了Camera,可是它已经被CinemachineVirtualCamera所取代,就像寄生控制一样,因此,诸多改动都应该在CinemachineVirtualCamera上完成。

        最后,如果这篇文章帮助到你,麻烦点个赞吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值