前言

关于相机跟随方面,本文介绍两种实现方法。

一种为脚本控制Unity初始的相机,一种为调用Unity中相机插件。

1.需求分析和实现目标

a.2D视角,相机需要始终将玩家放在可见屏幕内。

b.相机不能生硬地把玩家放在屏幕正中间,最好体现一种视角跟随的效果。

c.在超出原本绘制的地图边界的时候,不能让相机可视范围出界,简而言之设置相机的移动边界

2.用脚本控制

a.我们主要用到三个函数

(1)GameObject中的FindGameObjectWithTag,用于我们寻找到相应的对象,给对象设置好标签,再通过该函数来确定对象,方便调用修改该对象的参数等。

(2)Mathf.Clamp,夹逼函数,用于把数值控制在一定范围内,具体用法 Mathf.Clampp(vlue,min.max).

(3)Vector2.Lerp,一个二维跟随,具体用法 Vector2.Lerp(起始点,终点,移动速度)

b.基本逻辑

创建相机的跟随速度(建议设置比玩家的移动速度略慢一些),相机所能到达的最大,最小坐标(移动边界),相机的目标位置,在初始化时获取玩家所在位置,并为相机初始位置,在LateUpdate(它会在Update之后被调用)中限制相机边界,同时设置跟随。

c.代码实现

public float followSpeed = 2.0f;
public float minX;
public float maxX;
public float minY;
public float maxY;
private Transform PlayerTransform;
prive Vector2 targetPosition;void start
{PlayerTransform = GameObject.FindGameObjectWithTag("Player").transform;//提前在外面把Player标签给对象挂上transform.position = PlayerTransform.position;
}
private void LateUpdate
{if(PlayerTransform != null){targetPosition.x = Mathf.Clamp(PlayerTransform.position.x,minX,maxX);targetPosition.y = Mathf.Clamp(PlayerTransform.position.y,mixY,maxY);transform.position = Vector2.Lerp(transfrom.position,targetPosition,followSpeed*Time.deltaTime);}
}

3.使用Cinemachine插件实现跟随

  • 可以从Windows里面的package Manager里面搜索到,直接下载即可。

图3.1

  • 当我们下载好后就可以直接在工程栏创建新的VirtualCamera,其基本界面(图3.3),在Follow一栏添加我们的角色对象,它就可以自动跟随了。

图 3.2

图3.3

  • 实际上这个插件还可以实现更多功能,比如我们有时候想要玩家在一定范围内活动时不受相机跟随的影响,当走出这个范围,相机再进行跟随,就可以调整下面这个参数(图3.2)。

3.4

  • 调整后(图3.3),玩家对象走出中间范围,相机才会进行一个跟随的动作。

3.5

4.总结

实际上我们在游戏制作时,大多还是使用Cinemachine插件,它实现的功能更加方便,但实际上预设封装好的插件或是函数或是引擎都具有它的局限性,而我们的思绪是无限的,所以无论做什么或是用什么,了解它背后的运行原理,过程都是最重要的,更多时候是要自己去实现它。相信自己也是最重要的。

(C#)Unity2D中制作角色的相机跟随Camera Follow相关推荐

  1. Unity2D中让角色旋转朝向鼠标

    实现该功能,你需要关注以下的几个步骤 1.获取角色的世界坐标 2.获取鼠标所在位置的世界坐标 3.获取角色朝向鼠标时候的向量 4.获取上一步骤的向量的反正切的弧度值 5.将弧度值转化为角度 6.将该角 ...

  2. 三、Unity2D游戏制作——角色制作

    1.导入角色图片并切片 新建文件夹player-将角色图片拖动至该文件夹内-选中图片文件后点击检查器内sprite editor按钮打开编辑器-点击切片按钮-切片方式选择自动-点击应用. 2.创建行走 ...

  3. unity3D中物体移动与相机跟随

    unity中C#文件创建与介绍 创建C#文件的位置在界面的最下面Assets处,创建方法是在下面: 创建好的界面如下所示: 创建完C#后双击即可打开,打开后界面如下: 第一个函数void Start( ...

  4. unity2D相机跟随

    目的:使得相机跟随角色移动 打开包管理器: 安装Cinemachine 界面上端会出现Cinemachine 选项: 点击Cinemachine 选项: 点击Create 2D Camera 同时左侧 ...

  5. Unity中相机跟随人物移动

    方法1:将相机拖到人物的游戏对象上,也就是让相机成为角色的子物体,这样相机就会跟随角色移动 但是这样会存在问题,1.相机会随着人物的翻转而翻转,2.相机跟随人物没有缓冲效果,移动比较僵硬 方法2:代码 ...

  6. 【100个 Unity实用技能】| 游戏中使技能或装备跟随角色环绕,持续旋转

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  7. Unity2D游戏开发——相机跟随主角

    public class CamaraFollow : MonoBehaviour {     public GameObject player;  //主角     public float spe ...

  8. Cinemachine 之简单的相机跟随

    1.导入插件 打开 window/Packge Manager 窗口,搜索cinemachine,点击安装 2.创建Cinemachine Virtual Camera ,设置相关参数 安装Cinem ...

  9. Unity相机跟随以及子弹发射笔记

    相机移动 现在还有一个问题是:主角SpaceMarine移动的时候,会走出玩家的视线,所以这里让相机跟随着SpaceMarine移动. 步骤1. 创建和设置CameraMount 在层级(Hierar ...

最新文章

  1. swift判断iPhone 各种型号
  2. 重新使用Eclipse建立安卓工程遇到的问题
  3. muduo网络库学习(六)缓冲区Buffer及TcpConnection的读写操作
  4. java中怎么进行字符串替换?
  5. 优化 recipe 达到快速启动 SAP Hybris Accelerator Storefront 的方法
  6. icpc网络赛第二场K Meal
  7. 让自己的头脑极度开放
  8. 哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...
  9. 性能优化篇 之 如何开展优化类的工作(1)
  10. 我们来做做公募基金数量的“人口”大普查
  11. DP动态规划--m处理器问题- m processors(FZU - 1442)
  12. 计算S=a+aa+…+aa…a
  13. 离开马云后,20位阿里人的区块链创业路
  14. 秦九韶算法与霍纳规则
  15. Xray安全评估工具使用
  16. thinkphp 实现图片中的二维码识别
  17. Flutter中的widget
  18. arnold ass standin 代理模型批量查询 与替换工具发布1.0
  19. PHP解析SOAP生成的xml
  20. 2014年6月份第4周51Aspx源码发布详情

热门文章

  1. 「雷锋前线」攻破一把智能门锁的N种方法
  2. Android studio与win10的中英文切换快捷键ctrl+space冲突
  3. ArcGIS Pro生成沿网络的OD成本矩阵
  4. A. Brain‘s Photos
  5. “针刺试验”是否真有必要? 磷酸铁锂VS三元锂谁才是无冕之王
  6. Android应用开发揭秘(半年重印4次,内容已更新至Android 2.2,版权输出至台湾)
  7. 如何转型为新零售商业模式 新零售系统都有哪些功能?
  8. 手机 电脑数据,这样删除才彻底!
  9. 对于不同群体而言,集成墙板是否适用?
  10. 凌玮科技将在创业板上市:预计募资净额约8亿元,曾踩雷民生理财