Unity3D学习 ③ 摄像机视角跟随

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);

    }
}

猜你喜欢

转载自blog.csdn.net/zujiasheng/article/details/122748726