You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity跨场景相机跟随玩家失效问题求助

Unity跨场景相机跟随玩家失效问题求助

各位Unity开发者好,我最近遇到了一个跨场景相机跟随的问题,折腾了好久都没解决,想请大家帮忙分析下:

我的项目目前有1个初始场景,主相机和玩家对象都添加了不随场景加载销毁的代码,同时主相机上还有一个实现跟随玩家逻辑的脚本。在初始场景里,相机能正常跟着玩家移动,但切换到场景2之后,相机确实还保留着,可就是不再跟随玩家了。

最开始我是用Cinemachine来做相机跟随的,同时也加了跨场景保留的代码,但同样出现了切换场景后不跟随的问题,所以才改成了自己写相机跟随的脚本,结果还是遇到了一样的状况。

下面是我目前用到的几个脚本代码:

相机跟随玩家的脚本 CameraFollowPlayer

public class CameraFollowPlayer : MonoBehaviour
{
    private Vector3 offset = new Vector3(0f, 0f, -10f);
    private float smoothTime = 0.25f;
    private Vector3 velocity = Vector3.zero;

    [SerializeField] private Transform target;

    // Update is called once per frame
    void Update()
    {
        Vector3 targetPosition = target.position + offset;
        transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
    }
}

相机不随场景销毁的脚本 Cameradontdestroy

public class Cameradontdestroy : MonoBehaviour
{
    public static Cameradontdestroy Instance;

    private void Awake()
    {
        // 防止同时存在多个相机实例
        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
        }
        DontDestroyOnLoad(gameObject);
    }
}

玩家不随场景销毁的脚本 BasicPlayerMovement

public class BasicPlayerMovement : MonoBehaviour
{
    public static BasicPlayerMovement Instance;

    private void Awake()
    {
        // 防止同时存在多个玩家实例
        if(Instance != null && Instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
        }
        DontDestroyOnLoad(gameObject);
    }
}

我自己猜测会不会是切换场景后,相机的target引用失效了?但不确定具体原因,有没有大佬能帮忙指出问题所在,或者给个解决思路呀?

备注:内容来源于stack exchange,提问作者Knackered7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:32:57