(C#)Unity2D中制作角色的相机跟随Camera Follow
前言
关于相机跟随方面,本文介绍两种实现方法。
一种为脚本控制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相关推荐
- Unity2D中让角色旋转朝向鼠标
实现该功能,你需要关注以下的几个步骤 1.获取角色的世界坐标 2.获取鼠标所在位置的世界坐标 3.获取角色朝向鼠标时候的向量 4.获取上一步骤的向量的反正切的弧度值 5.将弧度值转化为角度 6.将该角 ...
- 三、Unity2D游戏制作——角色制作
1.导入角色图片并切片 新建文件夹player-将角色图片拖动至该文件夹内-选中图片文件后点击检查器内sprite editor按钮打开编辑器-点击切片按钮-切片方式选择自动-点击应用. 2.创建行走 ...
- unity3D中物体移动与相机跟随
unity中C#文件创建与介绍 创建C#文件的位置在界面的最下面Assets处,创建方法是在下面: 创建好的界面如下所示: 创建完C#后双击即可打开,打开后界面如下: 第一个函数void Start( ...
- unity2D相机跟随
目的:使得相机跟随角色移动 打开包管理器: 安装Cinemachine 界面上端会出现Cinemachine 选项: 点击Cinemachine 选项: 点击Create 2D Camera 同时左侧 ...
- Unity中相机跟随人物移动
方法1:将相机拖到人物的游戏对象上,也就是让相机成为角色的子物体,这样相机就会跟随角色移动 但是这样会存在问题,1.相机会随着人物的翻转而翻转,2.相机跟随人物没有缓冲效果,移动比较僵硬 方法2:代码 ...
- 【100个 Unity实用技能】| 游戏中使技能或装备跟随角色环绕,持续旋转
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
- Unity2D游戏开发——相机跟随主角
public class CamaraFollow : MonoBehaviour { public GameObject player; //主角 public float spe ...
- Cinemachine 之简单的相机跟随
1.导入插件 打开 window/Packge Manager 窗口,搜索cinemachine,点击安装 2.创建Cinemachine Virtual Camera ,设置相关参数 安装Cinem ...
- Unity相机跟随以及子弹发射笔记
相机移动 现在还有一个问题是:主角SpaceMarine移动的时候,会走出玩家的视线,所以这里让相机跟随着SpaceMarine移动. 步骤1. 创建和设置CameraMount 在层级(Hierar ...
最新文章
- swift判断iPhone 各种型号
- 重新使用Eclipse建立安卓工程遇到的问题
- muduo网络库学习(六)缓冲区Buffer及TcpConnection的读写操作
- java中怎么进行字符串替换?
- 优化 recipe 达到快速启动 SAP Hybris Accelerator Storefront 的方法
- icpc网络赛第二场K Meal
- 让自己的头脑极度开放
- 哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...
- 性能优化篇 之 如何开展优化类的工作(1)
- 我们来做做公募基金数量的“人口”大普查
- DP动态规划--m处理器问题- m processors(FZU - 1442)
- 计算S=a+aa+…+aa…a
- 离开马云后,20位阿里人的区块链创业路
- 秦九韶算法与霍纳规则
- Xray安全评估工具使用
- thinkphp 实现图片中的二维码识别
- Flutter中的widget
- arnold ass standin 代理模型批量查询 与替换工具发布1.0
- PHP解析SOAP生成的xml
- 2014年6月份第4周51Aspx源码发布详情
热门文章
- 「雷锋前线」攻破一把智能门锁的N种方法
- Android studio与win10的中英文切换快捷键ctrl+space冲突
- ArcGIS Pro生成沿网络的OD成本矩阵
- A. Brain‘s Photos
- “针刺试验”是否真有必要? 磷酸铁锂VS三元锂谁才是无冕之王
- Android应用开发揭秘(半年重印4次,内容已更新至Android 2.2,版权输出至台湾)
- 如何转型为新零售商业模式 新零售系统都有哪些功能?
- 手机 电脑数据,这样删除才彻底!
- 对于不同群体而言,集成墙板是否适用?
- 凌玮科技将在创业板上市:预计募资净额约8亿元,曾踩雷民生理财