当前位置: 首页 > news >正文

Unity2D横版摄像机跟随

在Unity2D横版游戏中,摄像机跟随是一个非常重要的功能。一个流畅的摄像机跟随系统可以让玩家更好地沉浸在游戏世界中。本文将介绍如何在Unity中实现2D横版摄像机跟随,并分享一些优化技巧。

一、准备工作

在开始实现摄像机跟随之前,请确保您已经完成了以下准备工作:

  1. 安装Unity编辑器:请访问Unity官网下载并安装Unity编辑器。
  2. 创建2D横版游戏项目:在Unity编辑器中创建一个新的2D横版游戏项目。

二、实现摄像机跟随

  1. 创建主摄像机:在Unity编辑器中,右键点击Hierarchy窗口,选择“Camera”创建一个新的主摄像机。将主摄像机的“Tag”设置为“MainCamera”。

  2. 创建玩家角色:在Unity编辑器中,右键点击Hierarchy窗口,选择“Sprite”创建一个新的玩家角色。为玩家角色添加一个刚体组件(Rigidbody2D)和碰撞器组件(Box Collider2D)。

  3. 编写摄像机跟随脚本:在Unity编辑器中,右键点击Project窗口,选择“Create” -> “C# Script”创建一个新的脚本。将脚本命名为“CameraFollow”。双击打开脚本,编写以下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CameraFollow : MonoBehaviour
{// 公共变量,用于在编辑器中指定玩家角色的Transform和摄像机平滑移动的速度public Transform tform; // 玩家角色的Transformpublic float smoothing; // 摄像机平滑移动的速度// 公共变量,用于设置摄像机移动的边界限制public Vector2 minPosition; // 摄像机移动的最小边界public Vector2 maxPosition; // 摄像机移动的最大边界void Start(){// 在游戏开始时查找并获取CameraShake组件的引用GameController.cameraShake = GameObject.FindGameObjectWithTag("CameraShake").GetComponent<CameraShake>();}// Update is called once per framevoid Update(){// LateUpdate函数将在Update函数之后调用,用于处理摄像机的跟随逻辑}void LateUpdate(){// 如果指定了玩家角色的Transformif (tform != null){// 如果摄像机的位置不等于玩家角色的位置if (transform.position != tform.position){// 计算目标位置Vector3 targetPos = tform.position;// 使用Mathf.Clamp函数限制目标位置的x和y值,使其在设定的最小和最大边界内targetPos.x = Mathf.Clamp(targetPos.x, minPosition.x, maxPosition.x);targetPos.y = Mathf.Clamp(targetPos.y, minPosition.y, maxPosition.y);// 使用Vector3.Lerp函数平滑地移动摄像机到目标位置transform.position = Vector3.Lerp(transform.position, targetPos, smoothing);}}}// 公共方法,用于设置摄像机的移动边界public void SetCamPosLimit(Vector2 minPos, Vector2 maxPos) {// 更新最小和最大边界minPosition = minPos;maxPosition = maxPos;}
}

 

  1. 将主摄像机添加到脚本:将主摄像机拖拽到“CameraFollow”脚本上。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CameraShake : MonoBehaviour
{public Animator camAnim;void Start(){}// Update is called once per framevoid Update(){}public void Shake() {camAnim.SetTrigger("Shake");}}
  1. 创建一个空对象自命名,设置Tag为“CameraShake”并挂载CameraShake脚本,设置摄像。

 

四、总结

通过以上步骤,我们成功实现了Unity2D横版摄像机跟随。在实际项目中,您还可以根据需要添加更多功能,如镜头缩放、缓动效果等。希望本文对您有所帮助,祝您打造出优秀的游戏作品!

注意:本文仅用于学习交流,请勿用于商业用途。如有侵犯您的权益,请及时联系作者。

后续我将会一步一步的开发并完成一整个完整的2D游戏的制作,欢迎大家关注并给出意见

相关文章:

Unity2D横版摄像机跟随

在Unity2D横版游戏中&#xff0c;摄像机跟随是一个非常重要的功能。一个流畅的摄像机跟随系统可以让玩家更好地沉浸在游戏世界中。本文将介绍如何在Unity中实现2D横版摄像机跟随&#xff0c;并分享一些优化技巧。 一、准备工作 在开始实现摄像机跟随之前&#xff0c;请确保您…...

Practicing Version Control

Part A 新建一个文件夹Git&#xff0c;然后进入文件夹: Windows: 在这个文件夹中右键 > Open Git Bash hereMac: 运行终端&#xff0c;打cd 空格&#xff0c;然后将文件夹拖入终端&#xff0c;按 return 从 Github 上复制 HTTPS&#xff0c;然后 git clone https://githu…...

新宏观范式和产业趋势下,纷享销客如何助力企业出海?

出海&#xff0c;已不再是企业的“备胎”&#xff0c;而是必须面对的“大考”&#xff01;在这个全球化的大潮中&#xff0c;有的企业乘风破浪&#xff0c;勇攀高峰&#xff0c;也有的企业在异国他乡遭遇了“水土不服”。 面对“要么出海&#xff0c;要么出局”的抉择&#xff…...

安装zookeeper

一、搭建前准备 192.168.1.99 sdw1 192.168.1.98 sdw2 192.168.1.97 sdw3 二、搭建 1、各主机修改/etc/hosts&#xff0c;/etc/hostname文件 /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhos…...

深入分析 Android Activity (二)

文章目录 深入分析 Android Activity (二)1. Activity 的启动模式&#xff08;Launch Modes&#xff09;1.1 标准模式&#xff08;standard&#xff09;1.2 单顶模式&#xff08;singleTop&#xff09;1.3 单任务模式&#xff08;singleTask&#xff09;1.4 单实例模式&#xf…...

数据结构——经典链表OJ(二)

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 点击主页&#xff1a;optimistic_chen和专栏&#xff1a;c语言&#xff0c; 创作不易&#xff0c;大佬们点赞鼓…...

文件IO(三)

文件IO&#xff08;三&#xff09; 左移右移Linux的man 手册文件IO打开文件操作文件关闭文件 caps lock开灯关灯读取按键文件IO操作目录文件打开目录文件操作目录文件 库动态库和静态库的优缺点创建静态库创建动态库 按下右ctrl键 亮灭灯 左移右移 Linux的man 手册 文件IO 打开…...

单实例11.2.0.3迁移到RAC11.2.0.4_使用RMAN 异机恢复

保命法则&#xff1a;先备份再操作&#xff0c;磁盘空间紧张无法备份就让满足&#xff0c;给自己留退路。 场景说明&#xff1a; 1.本文档的环境为同平台、不同版本&#xff08;操作系统版本可以不同&#xff0c;数据库小版本不同&#xff09;&#xff0c;源机器和目标机器部…...

JavaScript第四讲:函数,作用域,运算符

前言 在JavaScript的广阔天地中&#xff0c;函数、作用域、算术运算符和逻辑运算符是构成代码世界的基石。它们各自扮演着不同的角色&#xff0c;却又紧密相连&#xff0c;共同编织出丰富多彩的程序逻辑。无论是编写一个简单的网页交互&#xff0c;还是构建一个复杂的应用程序…...

IDEA中,MybatisPlus整合Spring项目的基础用法

一、本文涉及的知识点【重点】 IDEA中使用MybatisPlus生成代码&#xff0c;并使用。 Spring整合了Mybatis框架后&#xff0c;开发变得方便了很多&#xff0c;然而&#xff0c;Mapper、Service和XML文件&#xff0c;在Spring开发中常常会重复地使用&#xff0c;每一次的创建、修…...

从不同角度看如何让大模型变得更聪明呢?

算法创新&#xff0c;从代码上优化大模型&#xff0c;可以采取一系列策略来提升其性能和效率。 算法优化&#xff1a;对模型的算法进行精细调整&#xff0c;如改进神经网络架构&#xff0c;使用更高效的层&#xff08;如深度可分离卷积&#xff09;&#xff0c;或者优化递归神经…...

Buffer Pool运行机制理解

Buffer Pool机制理解 一、为什么使用Buffer Pool&#xff1f; 众所周知&#xff0c;磁盘数据是以数据页的形式来去读取的&#xff0c;一个数据页默认大小 16K&#xff0c;也就是说你本意只想读取一行数据&#xff0c;但是它会给你加载一页的数据到buffer pool里面。这样的话就…...

windows配置dns访问git , 加快访问速度保姆级教程

设置 DNS 访问 Git 需要修改电脑的 DNS 配置。下面是具体的操作流程&#xff1a; 第一步&#xff1a;打开命令提示符或终端窗口 在 Windows 系统中&#xff0c;可以按下 Win R 组合键&#xff0c;然后输入 “cmd”&#xff0c;按下 Enter 键打开命令提示符窗口。在 macOS 或 …...

Solidity学习-投票合约示例

以下的合约有一些复杂&#xff0c;但展示了很多Solidity的语言特性。它实现了一个投票合约。 当然&#xff0c;电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。 我们不会在这里解决所有的问题&#xff0c;但至少我们会展示如何进行委托投票&#xff0c;…...

前端Vue自定义支付密码输入框键盘与设置弹框组件的设计与实现

摘要 随着信息技术的不断发展&#xff0c;前端开发的复杂性日益加剧。传统的开发方式&#xff0c;即将整个系统构建为一个庞大的整体应用&#xff0c;往往会导致开发效率低下和维护成本高昂。任何微小的改动或新功能的增加都可能引发对整个应用逻辑的广泛影响&#xff0c;这种…...

【QEMU中文文档】1.1 支持的构建平台

本文由 AI 翻译&#xff08;ChatGPT-4&#xff09;完成&#xff0c;并由作者进行人工校对。如有任何问题或建议&#xff0c;欢迎联系我。联系方式&#xff1a;jelin-shoutlook.com。 原文&#xff1a;Supported build platforms — QEMU documentation QEMU 旨在支持在多个主机…...

摄影后期照片编辑工具:LrC2024 for Mac/win 中文激活版

LrC2024&#xff08;Lightroom Classic 2024&#xff09;是 Adobe 公司推出的一款专业级别的照片编辑和管理软件。它是 Lightroom Classic CC 的升级版&#xff0c;具有更多的功能和改进。 这款软件主要用于数字摄影师和摄影爱好者处理、编辑和管理他们的照片。它提供了一套强大…...

通关!游戏设计之道Day20

用时20天&#xff0c;《通关&#xff01;游戏设计之道》也是完结撒花喽。 虽然只是浅显的读了一遍但收获还是很多的。我想在我真正开始做游戏时再回来看&#xff0c;一定会收获更多的。 《通关游戏设计之道》是一本深入探讨游戏设计的专业书籍&#xff0c;它不仅仅是一本理论…...

2024年上半年软件设计师试题及答案(回忆版)--选择题

基础知识选择题 基础知识选择题 1,2,3][4,5,6][1,2,3,4,5,6] &#xff08;总&#xff1a;1分&#xff09; &#xff08;注意&#xff1a;括号内的是截止当前题目总分&#xff09; vlan不能隔绝内外网 &#xff08;2分&#xff09; 链路层使用交换机&#xff0c;…...

5.28.1 使用卷积神经网络检测乳腺癌

深度学习技术正在彻底改变医学图像分析领域&#xff0c;因此在本研究中&#xff0c;我们提出了卷积神经网络 (CNN) 用于乳腺肿块检测&#xff0c;以最大限度地减少手动分析的开销。CNN 架构专为特征提取阶段而设计&#xff0c;并采用了更快的 R-CNN 的区域提议网络 (RPN) 和感兴…...

VisualCppRedist AIO:Windows系统运行库终极解决方案

VisualCppRedist AIO&#xff1a;Windows系统运行库终极解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在安装新软件或游戏时&#xff0c;突…...

第53节:倾斜模型osgb转3dtiles(免费工具)

1、下载cesiumlab工具 下载地址 2、启动cesiumlab&#xff0c;进行登录访问&#xff08;网页版&#xff09; 没有账号的可以用手机号注册一个 3、 选择倾斜模型切片 4、选择倾斜模型数据路径 5、设置空间参考、零点坐标 如果选择完osgb数据后能自动带出来则不用设置&…...

Ghost区块链集成:NFT内容所有权与分发方案

Ghost区块链集成&#xff1a;NFT内容所有权与分发方案 内容创作者的数字版权困境 传统内容发布平台存在严重的数字版权问题&#xff1a;文章被随意转载、原创收益被平台抽成、作品归属权难以证明。根据2024年《数字内容版权报告》&#xff0c;78%的独立创作者曾遭遇内容侵权&…...

Windows 11 下 flash-attention 高效部署:避坑指南与预编译版本实战

1. 为什么Windows 11需要flash-attention&#xff1f; 在深度学习领域&#xff0c;Transformer模型已经成为自然语言处理、计算机视觉等任务的主流架构。而flash-attention作为优化后的自注意力实现&#xff0c;能够显著提升模型训练和推理效率。对于Windows 11用户而言&#…...

人工智能领域SCI期刊征稿|中科院2区为主,录用率80%+,对国人极度友好,避坑必看,自引率安全、投稿零压力,审稿高效、录用率拉满,毕业 / 评职必看!

对于AI、计算机视觉、神经网络、计算智能领域的科研人&#xff08;硕博、青年教师、工程师&#xff09;而言&#xff0c;发表SCI核心需求是「分区稳、录用易、对国人友好、无预警风险」。本文整理4本人工智能领域优质SCI期刊&#xff0c;涵盖中科院2区&#xff08;4本&#xff…...

【2026年拼多多暑期实习/春招- 5月17日-第四题- 多多的道路修建Ⅱ】(题目+思路+JavaC++Python解析+在线测试)

题目内容 多多现在在负责多多乡村的修建。 道路修建问题可以看作是在一条直线上,有NNN个单位。 经过认真分析,他发现每一段路有两种修建的方案,分别为“修111”和“修22...

MOOTDX:Python通达信数据接口的完整指南

MOOTDX&#xff1a;Python通达信数据接口的完整指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专为量化投资和股票数据分析设计的Python通达信数据接口封装库&#xff0c;它提供…...

免费开源AMD Ryzen处理器调试工具:SMUDebugTool终极指南

免费开源AMD Ryzen处理器调试工具&#xff1a;SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…...

钉钉机器人消息解析器:基于JSON Path与模板的自动化数据提取方案

1. 项目概述&#xff1a;一个钉钉消息解析器的诞生最近在做一个内部自动化工具时&#xff0c;遇到了一个挺有意思的需求&#xff1a;需要把钉钉机器人推送过来的消息&#xff0c;从原始的、结构复杂的JSON格式里&#xff0c;精准地“抠”出我们关心的业务数据。比如&#xff0c…...

LaTeX列表排版避坑指南:用enumitem包轻松解决编号重置、缩进和对齐问题

LaTeX列表排版避坑指南&#xff1a;用enumitem包轻松解决编号重置、缩进和对齐问题 在撰写学术论文、技术文档或法律条款时&#xff0c;列表结构是组织内容的重要工具。但LaTeX默认的列表环境往往让用户陷入编号混乱、缩进不一致的泥潭。本文将深入剖析这些痛点的根源&#xff…...