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
相关产品推荐
相关产品推荐

