Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

发布时间:2022-06-26 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

前言:本节主要内容为角色添加跟随相机cinemachine,介绍一下预制体,顺便优化一下跳跃。

 

一、Cinemachine插件

游戏制作到这个阶段,我们已经可以操作角色在场景中奔跑跳跃果子了,但我们很快发现角色只能在眼前的固定的屏幕中活动,一旦超出边界角色就看不见了。这是因为我们当前的相机是固定的,不会随着角色移动。这就需要我们去写代码控制相机随着角色移动而移动,大致思路是在主相机main cinema上挂载一个脚本,把角色的坐标数据传入,在这个脚本中不断刷新相机坐标,保持和角色一致。实际上这个功能有一个插件Cinemachine,帮我们解决了相机跟随角色移动的问题,这里就简单介绍一下如何使用该插件。

 

1.安装Cinemachine

在工具栏Window -> Package Manager -> Packages:Unity Registry中搜索Cinemachine,下载安装。

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

2. 创建Cinemachine

安装好后,在HierArchy窗口右键会多出一个Cinemachine的选项,这里创建一个2D的Cinemachine。

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

3.添加跟随目标player

Cinemachine需要设定一个Follow来决定相机是跟随那个目标,这里需要把角色player设置上去。

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

这时我们再运行游戏操作角色时,就能看到随着角色移动场景也跟着移动。到这一步,我们可以在场景中添加更多地形和环境来让角色活动了。

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

 

二、预制体PErfab

场景变大了,我们需要更多的cherry来角色“吃”。虽然可以通过简单的复制粘贴来增加cherry,但这就有一个问题:如果需要对cherry进行修改,那么场景中有多少cherry就要改多次。预制体Perfab解决了这个问题,在把游戏中的一个物体改为预制体Perfab时,对这个物体修改就能传递到其他同的物体上。

1. 一如惯例在PRoject -> Assets 中创建 Perfabs -> Collections文件夹

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

 

2. 把Hierarchy窗口中的cherry拖拽到这个文件夹中,此时能看到Hierarchy窗口中的cherry变成了蓝色,这说明cherry已经成为了一个预制体。以后再需要用到cherry布置在游戏中时,直接把Perfabs -> Collections中的cherry拖拽到场景或Hierarchy窗口中就行了。

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

3.修改预制体有两种方式

a. 在Hierarchy窗口中选中预制体进行修改,修改完后把改动提交到所以其他同源预制体上

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

b.打开预制体Open进行修改,这样改动会自动同步到所有同源预制体上(推荐)

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

打开预制体后显示界面

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

通过预制体给场景添加更多的cherry吧!

Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳

 

三、二段跳

当角色在场景中活动时,我们会发现有些过高的站台跳不上去,这里可以增加角色的跳跃力jumpForce来解决,当然还有另一种方式更炫酷的方式:二段跳

1. 打开PlayerControl脚本,添加如下代码

public class PlayerControl : MonoBehaviour
{
	private int jumpCount;//添加部分
  
	private void MidAirMovement()//修改整个MidAirMovement
    {
        //角色在地面且y轴速度很小时重置跳跃次数
        if (isOnGround && player_Rbody.velocITy.y < 0.1f)
            jumpCount = 2;

        if (isJumpPressed &amp;& jumpCount > 0)
        {
            //在空中时减少一次跳跃
            if (!isOnGround)
                jumpCount--;

            isJumpPressed = false;
            if (!isCoruchHeld)
                player_Rbody.velocity = new Vector2(0, jumpForce);//对角色刚体添加纵向的力

            jumpCount--;//每跳一次减少一次跳跃
        }
    }
}

 

至此完成了角色的操作部分,接下来就是敌人设计了。

脚本宝典总结

以上是脚本宝典为你收集整理的Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳全部内容,希望文章能够帮你解决Unity横版2D游戏学习实例(06)- 相机cinemachine&预制体Perfab&二段跳所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。