前言
相机跟随一般写在生命周期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 ); } }
|
控制相机的移动边界