1.摄像机的固定视角跟随
① 在Assets/Scripts文件夹下创建新的脚本文件CameraFollow
② 脚本文件代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
// 记录玩家位置
public Transform player;
// 相机平滑度
public float smooth = 3f;
// 相机偏移量
private Vector3 offset;
void Start()
{
// 初始相机与玩家的偏移量
offset = transform.position - player.position;
}
// LateUpdate一般用于相机更新
private void LateUpdate()
{
// 相机移动的目标位置
Vector3 targetPosition = player.position + offset;
// 实现相机平移操作
transform.position = Vector3.Lerp(transform.position,targetPosition,Time.deltaTime * smooth);
// 摄像机望向玩家
transform.LookAt(player);
}
}
③ 将脚本挂载在摄像机上,player挂载在相应的位置参数上。
?2. 摄像机的旋转视角跟随
① 脚本代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public Transform player;
// 太高会有点晕
public float smooth = 0.5f;
private Vector3 offset;
void Start()
{
offset = transform.position - player.position;
}
// LateUpdate一般用于相机更新
private void LateUpdate()
{
// 更改此处
Vector3 targetPosition = player.position + player.TransformDirection(offset);
// 此处最好改为Slerp
transform.position = Vector3.Slerp(transform.position,targetPosition,Time.deltaTime * smooth);
transform.LookAt(player);
}
}
|