Unity技术问询:如何让可点击2D Canvas在3D世界中跟随NPC?
跟随3D NPC的可交互2D表情气泡设置方案(正交相机场景)
首选设置:世界空间模式Canvas
完全不用额外的Camera Overlay,直接用世界空间(World Space)模式的Canvas就搞定:
- 把Canvas的Render Mode改成
World Space - 把Canvas拖成NPC头部骨骼的子物体,这样气泡会自动跟着角色移动
- 调整Canvas的缩放(比如设成0.1x0.1x0.1,因为世界空间模式用的是3D世界单位),把气泡摆到头部上方合适位置就行
保证点击交互能生效
正交相机下要让气泡能被点击,注意这几点:
- 给Canvas加上
Graphic Raycaster组件,这是UI交互的必备组件 - 确保你的正交相机在
EventSystem的射线源列表里(直接用场景主相机即可) - 如果有3D物体挡住气泡,要么给UI元素加
Canvas Group并勾上Blocks Raycasts,要么调整层级让UI在最上层
备选方案:屏幕空间-相机模式
要是不想用世界空间模式,也可以选Screen Space - Camera:
- 把Render Mode设为
Screen Space - Camera,指定你的正交相机作为渲染相机 - 写个简单脚本,把NPC头部的世界坐标转成屏幕坐标,然后把Canvas的RectTransform.position设成这个坐标
- 这种模式下UI始终贴在屏幕平面,但需要脚本实时同步位置,适合不需要考虑3D遮挡的场景
内容的提问来源于stack exchange,提问作者anderlaini
相关产品推荐
相关产品推荐

