如何基于Marker-Based Vuforia在AR标记上添加红标并触发3D模型
基于Vuforia Marker实现红标点击显示3D物体方案
1. 基础环境配置
- 打开Unity,通过Package Manager安装Vuforia Engine包
- 前往Vuforia开发者平台申请License Key,在Unity的
Vuforia Configuration面板中填入该密钥 - 上传自定义AR Marker图片到Vuforia平台,生成识别数据库后下载并导入Unity项目
2. 搭建Marker识别场景
- 删除默认Main Camera,添加Vuforia提供的
AR Camera - 在场景中创建
Image Target对象,在Inspector面板选择已导入的Marker数据库及对应的具体Marker - 根据实际物理尺寸调整Image Target的缩放比例,确保识别匹配
3. 添加可交互的红标
- 在Image Target下创建3D对象(如Sphere)作为红标,命名为
RedMarker,调整大小并设置红色材质 - 给RedMarker添加
Box Collider(勾选Is Trigger),确保碰撞范围覆盖红标 - 添加
Event Trigger组件,用于捕获点击事件
4. 编写点击响应逻辑
- 给RedMarker挂载C#脚本
Show3DObjectOnClick,代码如下:
using UnityEngine; using UnityEngine.EventSystems; public class Show3DObjectOnClick : MonoBehaviour, IPointerClickHandler { public GameObject target3DObject; void Start() { target3DObject?.SetActive(false); } public void OnPointerClick(PointerEventData eventData) { target3DObject?.SetActive(!target3DObject.activeSelf); } }
- 将需要显示的3D物体添加到场景中(推荐作为Image Target的子对象),拖拽到脚本的
target3DObject字段 - 确保场景中存在
EventSystem对象(无则右键UI -> Event System创建)
5. 调试与验证
- 运行场景,用摄像头对准AR Marker,红标会随Marker识别显示
- 点击红标,3D物体将切换显示/隐藏状态
- 若点击无响应,排查以下点:
- 红标的碰撞体是否正确设置,是否在相机可视范围内
- EventSystem的Input Module是否适配当前平台(如Touch Input Module用于移动端)
- Vuforia的Marker识别状态是否正常(Image Target的
Tracking Status为Tracked)
内容的提问来源于stack exchange,提问作者Fikri Prayoga
相关产品推荐
相关产品推荐

