我是Unity3D的新手。
这是我的来源,很简单
public void persp_ortho_Btn_Clicked()
{
if (!Camera_Controller.shared_instance.isOrthoCamera)
{
Camera_Controller.shared_instance.isOrthoCamera = true;
Camera.main.orthographic = true;
ui_camera.orthographic = true;
}
else
{
Camera_Controller.shared_instance.isOrthoCamera = false;
Camera.main.orthographic = false;
ui_camera.orthographic = false;
}
}当我在编辑器(游戏模拟窗口)中运行此代码时,它的工作原理如下所示:

但是,在构建和运行.exe之后,主摄像头不会改变为正相机,如下所示:

似乎主相机的“正射”特性在构建运行时也是真变假、假变真。但也许视图矩阵没有改变。
为什么会发生这种事,我该怎么解决呢?
发布于 2022-08-25 04:32:15
您的代码应该可以工作,除非有什么东西迫使相机保持相同的透视图。我无法就所提供的细节说出可能的原因。
只需测试出相机是否会切换没有if语句。像这样
public void persp_ortho_Btn_Clicked()
{
Camera.main.orthographic = !Camera.main.orthographic;
}如果是这样,那么条件检查就会出现一些问题。
或者,您可以尝试使用Unity来实现平稳过渡。
https://stackoverflow.com/questions/73481551
复制相似问题