我有一个带有开始按钮的开始场景。开始场景有一个相机适配器游戏对象。相机适配器获取主相机并对每个场景执行一些操作。当我单击开始并加载下一个场景时,相机适配器对象在下一个场景中可用,但相机丢失。这是我的代码和配置:
我在我的 CameraAdapter 脚本中添加了以下代码:
public class CameraAdaptor2D : MonoBehaviour
{
float displayWidth;
float displayHeight;
[SerializeField] Camera cam;
void OnEnable()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
cam = Camera.main;
}
// called when the game is terminated
void OnDisable()
{
Debug.Log("OnDisable");
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
// Start is called before the first frame update
void Start()
{
cam = Camera.main;
displayWidth = Screen.width;
displayHeight = Screen.height;
positionCamera();}
void PositionCamera()
{
Vector3 vector = new Vector3(0.0f,0.0f,0.0f);
cam.transform.position = vector;
}
当我点击开始按钮时会发生什么,unity 会加载下一个级别。但是使用上面的代码,我无法获取当前场景的相机。即使我添加了断点,下一个场景也不会在断点处暂停。我在代码中是否缺少要添加的内容,或者是否有另一种方法可以在每个场景中使用摄像头?