Unity3D中基于标签的目标摄像机跟随实现

基于标签的目标摄像机跟随

在 Unity3D 中实现摄像机跟随目标,可以通过脚本获取目标对象的 Transform 信息,并实时更新摄像机的位置和旋转。

实现步骤:

  1. 创建标签: 在 Unity3D 编辑器中创建用于标识目标对象的标签,例如 PlayerCharacter, ImportantObject, TargetEntity 等。
  2. 为目标对象添加标签: 将创建的标签添加到需要跟随的目标对象上。
  3. 创建摄像机跟随脚本: 创建一个 C# 脚本,用于实现摄像机跟随逻辑。
  4. 获取目标对象: 在脚本中使用 GameObject.FindWithTag("标签名称") 方法获取目标对象的引用。
  5. 更新摄像机位置和旋转: 在脚本的 Update()LateUpdate() 方法中,根据目标对象的位置和旋转,实时更新摄像机的位置和旋转。

代码示例:

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    public string targetTag = "PlayerCharacter";
    public Vector3 offset;
    public float smoothSpeed = 0.125f;

    private Transform target;

    void Start()
    {
        target = GameObject.FindWithTag(targetTag).transform;
    }

    void LateUpdate()
    {
        if (target != null)
        {
            Vector3 desiredPosition = target.position + offset;
            Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
            transform.position = smoothedPosition;

            transform.LookAt(target);
        }
    }
}

注意事项:

  • LateUpdate() 方法在所有 Update() 方法执行完毕后执行,可以避免摄像机抖动。
  • smoothSpeed 参数控制摄像机跟随的平滑度。
  • offset 参数可以设置摄像机相对于目标对象的偏移量。
txt 文件大小:981B