欢迎光临散文网 会员登陆 & 注册

MMD联动Unity学习笔记 Vol.32 Cinemachine2D

2019-06-29 21:55 作者:NXL2  | 我要投稿

前言

    这期我们接着上期内容,官方的Cinemachine教程的第7节,再啃生肉,如果有翻译不对的地方,希望各们小伙伴可以指正。

Cinemachine2D

    这期视频我们共同学习如何在2D项目中使用Cinemachine。我们准备研究使用Cinemachine来设置如何正交相机表现,来让Cinemachine适应我们2D项目的创作。我们也准备研究如何使用方便组件,来限制我们的相机在一个内部环境中的移动。

我们的范例场景

    在这个场景中,我们有一个可以自由移动角色的2D环境。

主相机绑定在角色下

    当前我们只有一个附加在我们角色avatar的标准的相机,因为相机只是绑在游戏物件上,每当我们的角色移动时它就会移动。

相机跟随角色移动

    这个是没问题的,但是我想要可以定制化那么会感觉好一点。

我们将主相机移出

 

我们创建一个虚拟2D相机

   我们使用Cinemachine创建一个虚拟相机,并追踪我们的Sprite。

将角色拖到Follow属性

    我们选择主菜单Cinemachine选项里的“Create 2D Camera”创建一个新的相机,然后我们将我们的玩家角色拖给我们刚创建的虚拟相机的Follow属性。    

    现在我们可以如同在3D中一样设置我们的镜头,我们可以使用检视器或者游戏窗口的指引设置镜头的边框,来创建我们相机的行为。

    我想要我们相机在角色在屏幕横跑一小段距离,才开始移动。所以我准备设置我的Dead Zone宽度为大约0.25,这样它可以在没有相机移动的前提下,向后和向前跑一段距离。

这样设置角色被限制在左边

    我们也可以重新安排镜头,可以让我们角色在屏幕的左边。我想要在角色跳跃时相机跟着移动,但我希望有一点延迟。

    我们把Dead Zone的高度设置为0,所以相机可以在角色跳跃时准确地移动,然后我们设置Soft Zone的高度为0.8,这样当重力拉动我们的角色落回地上时有足够的延迟,这已经比我们开始时好很多了。

    现在主要的问题是,如果我们跑得太远的话,我们的相机会暴露出场景的边缘,最适合的做法是我们的相机在它到达我们环境的边缘之前,就应该停止移动。

    我们要告诉Cinemachine实现这个功能,需要用到一个附加的Cinemachine限制组件到一个虚拟相机。

    这个限制组件使用一个边界碰撞器来约束我们相机的移动

给背景添加一个碰撞器

    如果我们在我们的背景里创建一个碰撞器,

用绿线设置碰撞器的范围
将背景的碰撞器拖入Bounding Shape 2D属性

    然后将它赋给我们相机的Bounding Shape属性,现在Cinemachine就会在场景中移动通过碰撞器时进行自我约束。


MMD联动Unity学习笔记 Vol.32 Cinemachine2D的评论 (共 条)

分享到微博请遵守国家法律