【问题标题】:Unity3D canvas. How I can get camera?Unity3D 画布。我怎样才能得到相机?
【发布时间】:2015-04-16 08:31:14
【问题描述】:
我在我的项目中使用统一原生 UI。
在场景中我有 GameObject “Canvas”,在这个对象中我使用了一些 UI 对象。
但我在 Canvas 中没有找到任何相机,也不知道如何从代码中获取它。在某些任务中,我需要将 ScreenPosition 转换为 WorldPosition,但我不能。
有谁能够帮我。如何以代码或其他方式获取相机?
【问题讨论】:
标签:
android
canvas
unity3d
camera
【解决方案1】:
Canvas 对象中有一个Canvas.worldCamera field,允许您访问用于渲染 Canvas 的相机。这仅在您使用渲染模式Screen Space - Camera 或World Space 时可用。如果您使用渲染模式Screen Space - Overlay,从画布的角度来看,世界空间和屏幕空间之间并没有真正的区别,因为元素的位置与它在屏幕上渲染的像素位置相匹配。
如果您有一个单独的相机用于您的 3D 世界,并且您想在该相机的空间和屏幕空间之间进行转换,您可以使用 Camera.main 访问它(这将获得第一个带有标签 MainCamera 的相机)或在您的脚本中添加一个 Camera 字段并从检查器手动链接主摄像头。