Unity:Simple Follow Camera(简单相机跟随)

为什么需要Simple Follow Camera?

在游戏开发中,相机(Camera)是玩家的"眼睛"。它的作用是决定玩家看到游戏世界的哪一部分。很多游戏需要相机自动跟随玩家角色,让玩家始终可以看到角色及其周围的环境,而不需要手动调整相机位置。

核心需求:

跟随目标:相机需要实时追踪某个物体(通常是玩家角色),保持一定距离和角度。

"Simple Follow Camera"就是为了满足这个需求而设计的:它是一个基本的相机脚本,让相机自动跟随目标对象,通常用于2D或3D游戏中的简单场景。

实现Simple Follow Camera

cs 复制代码
[SerializeField] GameObject target;
void LateUpdate()
{
    transform.position = target.transform.position + new Vector3(0, 0, -10);
}

让我们一步步拆解:

(1) SerializeField GameObject target;

  • SerializeField:这是一个属性标记(Attribute),具体介绍可以去看我之前发布的内容,这里不再赘述。

  • GameObject target:target是一个变量,类型是GameObject,表示相机需要跟随的目标对象。在Unity中,GameObject是场景中的任何对象(如角色、墙壁、球等),它有自己的Transform组件,用于存储位置、旋转和缩放信息。

(2) void LateUpdate()

  • LateUpdate:这是一个Unity的生命周期方法,会在每帧的晚期调用(在所有Update方法之后)。为什么用LateUpdate?因为相机通常需要等到所有其他对象(尤其是目标)的位置更新完成后,再调整自己的位置,这样可以避免同步问题。

(3) transform.position = target.transform.position + new Vector3(0, 0, -10);

  • transform.position:这是相机本身的当前位置(Transform组件的属性)。通过设置这个值,你可以直接改变相机在3D空间中的位置。

  • target.transform.position:这是目标对象(target)的当前位置。transform是每个GameObject的组件,存储了位置(position)、旋转和缩放信息。

  • new Vector3(0, 0, -10):这是一个向量,表示相机相对于目标的偏移量。这里偏移量是(0, 0, -10),意思是相机在目标的Z轴方向上向后移动10个单位(X和Y保持不变)。之所以要加上(0,0,-10)的向量,是为了避免视角Z轴与GameObject平齐,看不到完整的背景。

相关推荐
郝学胜-神的一滴16 小时前
游戏设计:原型与开发 08:我们到底在为谁做游戏
程序人生·游戏·游戏引擎·游戏开发·游戏策划
五仁烧饼17 小时前
动手学 Shader Graph(二):溶解与边缘发光
游戏·unity·shader·shader graph
淡海水18 小时前
06-02-源码-增量标记算法实现
算法·unity·c#·gc
淡海水19 小时前
06-01-源码-Incremental GC总览与设计
unity·c#·gc
郝学胜-神的一滴1 天前
游戏设计:原型与开发 07:像游戏设计师一样工作
图像处理·游戏·unity·图形渲染·游戏策划·游戏设计
Wanda12142 天前
机器人与机电一体化3D数字孪生机器-Day5
人工智能·unity·游戏引擎·数字孪生
Wanda12142 天前
机器人与机电一体化3D数字孪生机器-Day4
3d·unity·机器人·数字孪生
年少无知且疯狂3 天前
【Unity】Shader spine动画冻结效果
unity·spine
淡海水3 天前
05-02-源码-Boehm GC标记阶段
算法·unity·c#·游戏引擎·gc
淡海水3 天前
05-03-源码-Boehm GC分配与碎片管理
开发语言·算法·unity·c#·游戏引擎·gc