unity3d课后作业(十一)

制作简单的AR小游戏:

1、 图片识别与建模
2、 虚拟按键小游戏

一.什么是AR

AR是Augmented Reality的缩写,中文翻译为现实增强(扩增实境)。AR是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术。也就是说,AR就是将虚拟信息放在现实中展现,并且让人和虚拟信息进行互动。AR通过技术上的手段能够将现实与虚拟信息进行无缝对接。将在现实中不存在的事物构建一个三维场景予以展现,与现实生活相互衔接。


二.用unity制作AR小游戏

本AR小游戏适用于电脑有前置摄像头 :)
首先要在unity上部署Vuforia。Vuforia官网地址
1.注册账号
进入官网,点击右上角的Register进行注册
在这里插入图片描述


2.注册完毕后,点击Develop->Get Development Key
在这里插入图片描述
填入License Name(我设置为AR Game),点击confirm后就能看到我们创建的应用了:
在这里插入图片描述
点进去可以看到我们的License Key:
在这里插入图片描述


3.下面添加图片到数据库。
点击Develop->Target Manager->Add Database,命名好之后可以看到新建的数据库:
在这里插入图片描述
点进去,点击Add Target添加图片:
在这里插入图片描述
Width的单位是米,我设置为0.1。添加完图片之后,网站会给图片一个星级(五星最高),星级越高说明图片越清晰、越适合做AR的背景图。可以去百度图片搜索AR图。
在这里插入图片描述
点击Download Database,选择Unity Editor:
在这里插入图片描述
我们会得到一个unity包。


4.接下来,配置unity。新建项目后,点击File->Build Settings,再点击图示的Player Settings:
在这里插入图片描述
右侧会跳出一个设置页,在XR Settings处,勾选VR Supported、SDK只选择Vuforia:
在这里插入图片描述
如果没有Vuforia,则点击下方的下载按钮,下载安装即可。
安装完成后,项目多了一个Resources目录,里面有一个VuforiaConfiguration。
点击VuforiaConfiguration,把我们第二步得到的license key复制到右侧的App License Key一栏:
在这里插入图片描述
下面,导入我们第三步下载的包导入项目,可以直接拖进来。


5.在Hierachy处点击右键,可以看到Vuforia Engine,创建一个Vuforia Camera和Image Target:
在这里插入图片描述
设置image target,Database自动变成了我们导入的下载的数据库,设置image target为我们找好的AR背景图:
在这里插入图片描述
再点击Add Virtual Button,可以看到Image Target多了两个子对象button。修改这两个button的位置和名字以作区分:
在这里插入图片描述
在这里插入图片描述
删掉main camera,把Vuforia Camera调整角度和高度,对准Image Target。效果图如下:
在这里插入图片描述
这两个按钮是AR游戏的控制按钮,下面我们要添加一个虚拟对象。新建一个Cube,将其拖到Image Target的子对象中,并给它设置合适的位置和大小:
在这里插入图片描述
在这里插入图片描述
OK,来到最后一步,用脚本来给按钮添加事件。
新建Button.cs,挂载到Image Target上:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;


public class Button : MonoBehaviour, IVirtualButtonEventHandler
{
    private GameObject cube;
    void Start()
    {
        VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; ++i)
        {
            vbs[i].RegisterEventHandler(this);
        }
        cube = transform.Find("Cube").gameObject;
    }
    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        switch (vb.VirtualButtonName)
        {
            case "b1":
                cube.transform.position = new Vector3(1f, 0f, 0f);
                break;
            case "b2":
                cube.transform.position = new Vector3(-1f, 0f, 0f);
                break;
        }
        Debug.Log("OnButtonPressed: " + vb.VirtualButtonName);
    }
    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        switch (vb.VirtualButtonName)
        {
            case "b1":
                break;
            case "b2":
                break;
        }
        Debug.Log("OnButtonReleased: " + vb.VirtualButtonName);
    }
}

我们的AR游戏就制作完成啦!
成品图:
在这里插入图片描述
前置摄像头下出现了小正方体,通过按左右按钮,我们可以让它左右移动。
最后,放上github项目地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值