Unity3D canvas。我怎样才能得到相机?
Unity3D canvas. How I can get camera?
我在我的项目中使用 unity native UI。
在场景中,我有 GameObject "Canvas",在这个对象中,我使用了一些 UI 对象。
但是我在 Canvas 中没有找到任何相机,而且我不知道如何从代码中获取它。在某些任务中,我需要将 ScreenPosition 转换为 WorldPosition,但我做不到。
有谁能够帮助我。如何在代码或其他替代方法中获取相机?
Canvas 对象中有一个 Canvas.worldCamera field,允许您访问用于渲染 Canvas 的相机。这仅在您使用渲染模式 Screen Space - Camera
或 World Space
时可用。如果你使用渲染模式 Screen Space - Overlay
从你的 canvas 角度来看,世界 space 和屏幕 space 之间并没有真正的区别,因为元素的位置与像素位置匹配它呈现在屏幕上。
但是,如果您的 3D 世界有一个单独的相机,并且您想要在该相机的 space 和屏幕 space 之间进行转换,您可以使用 Camera.main
(这将获得带有标签 MainCamera
) 的第一台摄像机,或者在您的脚本中添加一个摄像机字段并手动 link 来自检查器的主摄像机。
我在我的项目中使用 unity native UI。
在场景中,我有 GameObject "Canvas",在这个对象中,我使用了一些 UI 对象。
但是我在 Canvas 中没有找到任何相机,而且我不知道如何从代码中获取它。在某些任务中,我需要将 ScreenPosition 转换为 WorldPosition,但我做不到。
有谁能够帮助我。如何在代码或其他替代方法中获取相机?
Canvas 对象中有一个 Canvas.worldCamera field,允许您访问用于渲染 Canvas 的相机。这仅在您使用渲染模式 Screen Space - Camera
或 World Space
时可用。如果你使用渲染模式 Screen Space - Overlay
从你的 canvas 角度来看,世界 space 和屏幕 space 之间并没有真正的区别,因为元素的位置与像素位置匹配它呈现在屏幕上。
但是,如果您的 3D 世界有一个单独的相机,并且您想要在该相机的 space 和屏幕 space 之间进行转换,您可以使用 Camera.main
(这将获得带有标签 MainCamera
) 的第一台摄像机,或者在您的脚本中添加一个摄像机字段并手动 link 来自检查器的主摄像机。