【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.