为什么需要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),具体介绍可以去看我之前发布的内容,这里不再赘述。
(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平齐,看不到完整的背景。