Unity2D学习笔记Day4:镜头控制

学习资源:B站 M_Studio《Unity教程2D入门》09-10

Unity Assets:Sunnyland

Day4

cinema跟随

方法一:transform

思路:镜头的x,y与Player的保持一致即可
代码如下:
CameraController.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    public Transform player;

    // Update is called once per frame
    void Update()
    {
        transform.position = new Vector3(player.position.x, player.position.y, -10);
    }
}

属性面板直接拖入player节点,获取的就是player的transform组件。

public Transform player;

锁定y轴,就不随着角色跳跃而在竖直方向移动镜头:

transform.position = new Vector3(player.position.x, 0, -10);

在写脚本的时候为什么会有大写的Transform和小写的transform?
大写的就是指Transform 类型,小写的是指挂该脚本的节点的transform

方法二:Cinemachine 插件

为了解决角色移动跳跃时,背景边界的问题。
在这里插入图片描述
安装成功之后新建一个2D camera 它会自动复制main camera的参数,并替代掉它。
在这里插入图片描述
这个camera有一些参数,需要调一下。
在这里插入图片描述
Follow的意思是相机要跟随的对象(拖入player)
在这里插入图片描述
试玩一下,发现镜头随着角色的移动有一定的延迟效果,非常自然!

Lens里面是一些相机参数(暂时不用调,了解即可)
Body 的参数
在这里插入图片描述
Dead Zone是指:如果玩家在此区域中,镜头不移动,调不调都行,让我想起来造梦西游的游戏效果。(大型游戏的镜头跟踪效果)

在这里插入图片描述

很多时候角色并不是在镜头的中央,可以调节Screen X\Y
比如修改X,就可以让角色一直在镜头的左侧显示。
在这里插入图片描述

如何让游戏角色不跳出边界?

思路:给背景添加collider 镜头边边碰到了就不能出去了

第一步:给相机添加Confiner
在这里插入图片描述
然后就会发现有一个参数是Bounding Shape 需要复制一个碰撞体
在这里插入图片描述
给背景添加collider的时候必须添加polygon collider (意为多边形碰撞体)

在这里插入图片描述
注意,要将trigger勾选,只作为触发碰撞体使用,不然会把player直接弹飞

寻找collider时,点击那个圆圆圈,即可看见现有的所有collider
在这里插入图片描述

ps:polygon碰撞体默认是5个点,如果想去掉点,按下ctrl然后点击那个点就可以了

这样,无论角色跳的多高,当达到边界时,镜头就不会再向上移动了。
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值