canvas
今天看到了rectTransform,突然不知道是什么,和transform有什么区别。。。
我服了,这还学个der啊。。
但是
坚持就是胜利
。。。。。。。
后来才清醒过来,rectTransform是UI平面上特用的组件,而transform是场景中3D物体或者2D物体的世界坐标!
发现创建的任何一个UI里的组件都会自动跑到canvas里面。。。
canvas 是干嘛的啊。。。
我疯了
学习使我快乐
。。。。。。
在 Unity 中,Canvas(画布)是 UI 系统的核心容器,它定义了 UI 元素的渲染边界、坐标系和层级关系。简单来说,所有 UI 元素必须直接或间接存在于 Canvas 之下才能被正确渲染和交互。
官方文档
https://docs.unity.cn/cn/2018.4/Manual/class-Canvas.html
如果某个UI节点不在canvas下,通常情况下,它是不会被渲染的
场景中可以有多个canvas,canvas也可以嵌套。
canvas渲染流程

canvas的属性

需要重点了解下这几个属性的工作原理
1.Screen Space - Overlay
这个是最常见的游戏主界面UI,不需要摄像机,直接渲染在游戏画面上,无视3D物体。
但是要注意设置层级
2.Screen Space - Camera
UI 投影到指定相机的近裁剪面,可被 3D 物体遮挡。取决于3D物体的位置。
相当于在相机镜头前放置一块透明玻璃,UI 绘制在这块"玻璃"上。
适用场景:游戏内 UI(需与场景交互时)。
3.World Space
UI 变为 3D 对象,可自由放置在场景中。
适用场景:VR 界面、3D 世界中的血条、全息投影。
使用canvas需要注意性能优化
合批规则:相同材质/纹理的相邻 UI 会自动合并(避免频繁打断合批)。
多 Canvas 慎用:每个 Canvas 独立生成 Draw Call,建议动态 UI 分组管理。
静态 UI 分离:将频繁变化的 UI(如血量条)与静态 UI(如背景)放在不同 Canvas
浙公网安备 33010602011771号