Unity3d 摄像机跟随玩家环游地球

Unity3d 摄像机跟随玩家环游地球,unity3d,Unity3d,我有一个星球,一个玩家在上面移动,利用重力。我想有一个摄像头来跟踪周围的球员。使用父约束组件可以很好地工作,但是我想延迟后续的旋转,所以我必须使用脚本。我只是不知道如何让它跟随它在全球传播。我要么有一个完全疯狂的摄像头,要么有一个跟在玩家后面但不在星球上移动的摄像头,总是在它前面。通常,位置跟随起作用,但一旦我添加了改变旋转的东西,它就只会这样做。我试过很多不同的脚本,但都不管用。我很感激你的帮助 编辑 很抱歉没有添加示例。目前,我已尝试将此脚本连接到相机: public class Camer

我有一个星球,一个玩家在上面移动,利用重力。我想有一个摄像头来跟踪周围的球员。使用父约束组件可以很好地工作,但是我想延迟后续的旋转,所以我必须使用脚本。我只是不知道如何让它跟随它在全球传播。我要么有一个完全疯狂的摄像头,要么有一个跟在玩家后面但不在星球上移动的摄像头,总是在它前面。通常,位置跟随起作用,但一旦我添加了改变旋转的东西,它就只会这样做。我试过很多不同的脚本,但都不管用。我很感激你的帮助

编辑 很抱歉没有添加示例。目前,我已尝试将此脚本连接到相机:

public class CameraFollow : MonoBehaviour
{
    public GameObject player;        
    private Vector3 offset;  

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

void LateUpdate()
    {
        transform.rotation = Quaternion.Slerp(transform.rotation, player.transform.rotation, 50f * Time.deltaTime);
        transform.position = player.transform.position + offset;
    }

摄像机确实模拟了球员的旋转,但位置不再正确跟随。它似乎大部分都卡在原地,只移动了很小的距离。

要让摄像头跟随游戏对象,您需要转到要跟随游戏对象的摄像头,选择添加组件,编写FollowPlayer,按新建脚本,然后按选择并添加。编辑脚本,使其包含以下内容:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FollowPlayer : MonoBehaviour
{
    public Transform player;
    public Vector3 offset;

    // Update is called once per frame
    void Update()
    {
        transform.position = player.position + offset;
    }
}
然后,你需要在“玩家”框中拖放你希望相机跟随的游戏对象。
定义相机与游戏对象的偏移量,你就可以开始了。

对于类似的东西,我建议使用Cinemachine。yt有很多关于它的教程,仅仅说“什么都不管用”对试图回答你的问题的人来说太模糊了。如果你加入一个你尝试过的脚本示例,并解释该脚本的行为以及该行为与你预期的不同,这将大大改善问题。很纯粹,但我真的尝试了很多东西,我不知道最后要添加什么。我道歉!哦,我第一次读到你的问题时没听明白。我相信这可能会有帮助: