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平齐,看不到完整的背景。

相关推荐
警醒与鞭策1 小时前
Direct3D 12 中的内存管理
3d·游戏引擎·direct3d
淡海水5 小时前
16-02-C#常用数据结构源码-附录B-源码索引速查
unity·c#·游戏引擎·il2cpp
速易达网络7 小时前
无人机远程操控仿真
游戏引擎·cocos2d
郝学胜-神的一滴7 小时前
游戏引擎原理与实践 02:揭开3A游戏背后的技术面纱
开发语言·计算机网络·程序人生·游戏·游戏引擎
警醒与鞭策15 小时前
【无标题】
android·unity·性能优化·游戏引擎·perforce
zhchyun200817 小时前
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(10)
ui·unity·游戏引擎
地狱为王1 天前
Unity使用NVIDIA的Audio2Face驱动口型
unity·游戏引擎
ebiobiz1 天前
STM32F4 Unity 单元测试与多次测试失败率统计详细步骤
stm32·unity·单元测试
一线灵1 天前
跨平台游戏引擎 Axmol-2.11.5 发布
游戏引擎·lua
淡海水1 天前
16-01-C#数据结构源码-附录A-术语表
unity·c#·游戏引擎·il2cpp