Unity2D开发入门-相机跟随

前言

相机跟随一般写在生命周期LateUpdate中

子物体

最简单,无代码,固定距离,固定视角

最简单的就是 直接 把主相机作为Player角色的子物体,并自行固定好相机的位置和角度

优点:使用方便

缺点:使用不灵活,相机转动死板,体验不好,相机瞬间移动位置

代码控制 设置位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;

public class MainCameraController : MonoBehaviour
{
public Transform player;
private Vector3 _distance;

private void Start()
{
_distance = transform.position - player.position;
}

private void LateUpdate()
{
transform.position = player.position + _distance;
}
}

代码控制 平滑移动

代码控制,固定距离,固定视角,平滑阻尼移动

在官方的手册里也有推荐用此函数 来实现 平滑的相机跟随

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using UnityEngine;

public class MainCameraController : MonoBehaviour
{
public Transform player;

private Vector3 _distance;

private Vector3 _ve;

private void Start()
{
_distance = transform.position - player.position;
}

private void LateUpdate()
{
transform.position = Vector3.SmoothDamp
(
transform.position,
player.position + _distance,
ref _ve,
0
);
}
}

控制相机的移动边界