根据官方文档,所有UI组件都必须是带有Canvas组件的对象的子对象。
The Canvas component represents the abstract space in which the UI is laid out and rendered. All UI elements must be children of a GameObject that has a Canvas component attached. When you create a UI element object from the menu (GameObject > Create UI), a Canvas object will be created automatically if there isn’t one in the scene already.
Canvas三种Render Mode :Screen Space - Overlay, Screen Space - Camera and World Space.
Screen Space-OverLay:
在这种模式下,画布被缩放以适应屏幕,然后直接渲染而不参考场景或相机(即使场景中根本没有相机,UI也会渲染)。 如果屏幕的大小或分辨率发生变化,UI将自动重新调整以适应。 用户界面将被绘制在任何其他图形上,例如相机视图。
The Screen Space - Overlay canvas needs to be stored at the top level of the hierarchy(需要设置在层级视图的顶层). If this is not used then the UI may disappear from the view. This is a built-in limitation. Keep the Screen Space - Overlay canvas at the top level of the hierarchy to get expected results.
Screen Space - Camera
在这种模式下,画布被渲染,就好像它被绘制在给定相机前方一定距离的平面物体上。 用户界面的屏幕尺寸不随距离而变化,因为它总是重新调整以适合相机平截头体。 如果屏幕的尺寸或分辨率或相机的平截头体被改变,那么UI将自动重新缩放以适合。 场景中比UI平面更靠近摄像机的任何3D对象都将呈现在用户界面前,而平面后面的对象将被遮挡。World Space
该模式呈现UI,就好像它是场景中的平面对象。 然而,与屏幕空间 - 摄像机模式不同的是,画布不需要面对摄像机,并且可以根据自己的喜好定向。 画布的大小可以使用Rect变换来设置,但其屏幕尺寸取决于摄像机的视角和距离。 其他场景对象可以通过Canvas后面,通过或前面。