如何使Canvas不随Cinemachine跟随相机移动?或实现场景固定文本
问题解答
一、让Canvas在世界空间静止的可行性
完全可行,问题出在Canvas的渲染模式设置上:
- 选中Canvas对象,在Inspector面板找到Render Mode选项,当前应该是
Screen Space - Overlay或Screen Space - Camera模式,这两种模式会让Canvas绑定相机/屏幕,导致随相机移动。 - 将Render Mode改为World Space,此时Canvas会成为世界空间中的实体,不会跟随相机移动。
- 调整Canvas的Rect Transform参数(缩放、位置),让TextMeshPro元素处于场景内的固定位置,同时可通过调整Sorting Layer和Order in Layer避免被场景物体遮挡。
二、不使用Canvas的替代方案(嵌入场景的文本)
如果不想用Canvas,直接用3D文本实现即可:
- 在场景中创建**TextMeshPro - Text (3D)**对象(注意不是UI类的TextMeshPro)。
- 将该3D文本放置到场景内需要固定显示的位置,比如地标旁。
- 调整文本的字体大小、颜色以保证可视性,可开启TextMeshPro自带的Billboard选项(或添加Billboard组件),让文本始终面向相机,但位置保持固定在场景中。
- 把这个3D文本设为对应场景的子物体,这样场景加载时文本自动显示,卸载时同步移除,刚好适配每个场景显示固定数字的需求。
内容的提问来源于stack exchange,提问作者soleil
相关产品推荐
相关产品推荐

