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

【unity实战】实现摄像机跟随效果

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

文章目录

      • **1. 准备工作**
      • **2. 创建脚本并绑定到摄像机**
      • **3. 定义变量**
      • **4. 实现摄像机距离调整**
      • **5. 计算摄像机的位置**
      • **6. 平滑移动摄像机**
      • **7. 平滑旋转摄像机**
      • **8. 最终代码**
      • **9. 测试效果**
  • 专栏推荐
  • 完结

1. 准备工作

在开始编写代码之前,我们需要确保场景中有一个玩家角色(target)和一个摄像机。摄像机的初始位置可以随意设置,稍后我们会通过代码调整它的位置。

  • 在Unity中创建一个玩家角色(例如一个立方体或胶囊体),并将其命名为Player
  • 创建一个摄像机对象,并将其放置在场景中。

2. 创建脚本并绑定到摄像机

  • 在Unity中创建一个新的C#脚本,命名为CameraFollow
  • 将脚本绑定到摄像机对象上。

3. 定义变量

在脚本中定义一些变量,用于控制摄像机的位置、角度和距离等参数。

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
   
    public Transform target; // 跟随的目标(玩家角色)
    public float headOffsetH = 1f; // 摄像机相对于角色头顶的高度偏移
    public float angle = 45f; // 摄像机相对于角色背部的角度
    public float dis = 5f; // 初始距离
    public float minDis = 3f; // 最小距离
    public float maxDis = 10f; // 最大距离
    public float roundSpeed = 1f; // 鼠标滚轮滚动速度因子
    public float lookAtSpeed = 2f; // 看向目标的平滑速度
    public float moveSpeed = 2f; // 移动到目标位置的平滑速度
    private Vector3 nowPos; // 当前摄像机的位置
}

4. 实现摄像机距离调整

通过鼠标滚轮调整摄像机与角色之间的距离,并限制距离在最小值和最大值之间。

void Update()
{
   
    // 控制摄像机远近
    dis += Input.

http://www.kler.cn/a/542450.html

相关文章:

  • NLP Word Embeddings
  • 2024.1.2版本Android Studio gradle下载超时问题处理
  • 深入解析 Kafka 消费者偏移量管理
  • 通过Chatbox和API实现本地使用DeepSeek(R1满血版)
  • 为什么推荐使用 LabVIEW 开发
  • PyCharm结合DeepSeek-R1
  • 【AI知识点】大模型开源的各种级别和 deepseek 的开源级别
  • Java 大视界 -- 5G 与 Java 大数据融合的行业应用与发展趋势(82)
  • ArcGIS Pro SDK (二十六)自定义配置
  • 基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试
  • 25考研电子信息复试面试常见核心问题真题汇总,电子信息考研复试没有项目怎么办?电子信息考研复试到底该如何准备?
  • 进阶版MATLAB 3D柱状图
  • 【系统架构设计师】操作系统 - 进程管理 ① ( 进程概念 | 进程组成 | 进程 与 程序 | 进程 与 线程 | 线程 可共享的资源 - ☆考点 )
  • 工具模块新增JSON格式化打印工具类
  • 什么是容器化,它有什么好处,对后端开发有什么影响?
  • 【2025-ICLR-未中】教授多模态大语言模型理解心电图图像
  • 【C#零基础从入门到精通】(五)——C# {n:format} 占位符
  • C#调用Python的函数(编译为pyd,避免源码泄露)
  • 朝天椒USB服务器:破解银企直连中Ukey管理难题
  • 算法-反转链表
  • MATLAB电机四阶轨迹规划考虑jerk、Djerk
  • MarsCode AI插件在IntelliJ IDEA中使用
  • 2025最新版Node.js下载安装~保姆级教程
  • Bash (Bourne-Again Shell)、Zsh (Z Shell)
  • 【AI-28】RAG的深入浅出
  • OpenCV2D 特征框架 (19)目标检测类cv::CascadeClassifier的使用