欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3D游戏编程实践——AR/MR 技术

程序员文章站 2022-07-12 23:34:48
...

AR/MR 技术

实现过程

  1. 打开Unity Hub,点击添加模块,勾选Vuforia Augmented Reality Support

3D游戏编程实践——AR/MR 技术

  1. 这个时候在unity中GameObject->Vuforia Engine->AR Camera就可以启动AR摄像头了。

    但是会发现无法点击Open Vuforia Engine configuration

3D游戏编程实践——AR/MR 技术

此时应该Edit->Project settings->Player勾选Virtural Reality SupportedVufoira Augmented Reallity Supported

3D游戏编程实践——AR/MR 技术

  1. 在Vuforia官网进行注册登录,创建证书用于获取License Key,创建目标数据库,用于对所有的Target及其特征数据进行管理和保存

3D游戏编程实践——AR/MR 技术

  1. 把image导入数据库,并下载下来,在unity中打开并导入

3D游戏编程实践——AR/MR 技术
3D游戏编程实践——AR/MR 技术

  1. 在unity的AR Camera中,点击Open Vuforia Engine configuration,在App License Key中把Target的License复制进去,数据库会自动导入。
    3D游戏编程实践——AR/MR 技术3D游戏编程实践——AR/MR 技术
  2. 点击GameObject->Vuforia Engine->image就可以得到ImageTarget,选择一个3D物体成为其子对象就可以了。
  3. 运行,让设备的摄像头面对一张有导入图案的纸或是手机就可以看到AR效果

3D游戏编程实践——AR/MR 技术

  1. 增加虚拟按键和设置动画控制器,使得可以实现虚拟按键效果,虚拟按键应该有一个Plane的子对象否则按键无法实现
  2. ImageTarget中添加代码
using UnityEngine;
using Vuforia;
public class VirtualButtonEventHandler :  MonoBehaviour, Vuforia.IVirtualButtonEventHandler
{
    public GameObject vb;
    public Animator ani;
    void Start()
    {
        VirtualButtonBehaviour vbb = vb.GetComponent<VirtualButtonBehaviour>();
        // 为每个虚拟按钮注册按钮响应事件。
        if (vbb)
        {
            vbb.RegisterEventHandler(this);
        }
    }

    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        Debug.Log("OnButtonPressed: " + vb.VirtualButtonName);
        ani.SetTrigger("Idle_Run");
    }
    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        Debug.Log("OnButtonReleased: " + vb.VirtualButtonName);
        ani.SetTrigger("Run_Idel");
    }
}	
相关标签: 3D游戏基础