3D游戏编程的第十一次作业:
- AR图片识别与虚拟按键小游戏
游戏简介
这是一款极简的AR跑酷小游戏,通过虚拟按键进行控制,实现了类似Chrome浏览器在断网下可以玩的小恐龙游戏。
Vuforia的使用
新版本的Vuforia使用和课程指导上已经有比较大的不同了,在这里简单说一下我在本次项目中关于Vuforia的使用。
官网注册
这一步和老师上课说的还是一致的,我们需要现在Vuforia官网上申请license,并创建目标数据库。具体步骤就不再赘述了。
开启Vuforia支持
首先需要启动Vuforia支持,勾选Edit->Project Settings->Player->XR Settings中的Vuforia Augmented Reality Supported选项。
添加AR Camera
删除原来的相机,加入AR Camera:
在AR Camera的Inspector面板中,点击Open Vuforia Engine configuration选项,进入Vuforia设置面板,添加之前在官网注册好的License以及Databases,在该面板中还可以设置使用笔记本的前置还是后置摄像头。
添加ImageTarget
加入ImageTarget对象,并选择好相应的Database。
此时,启动游戏便可以识别图片了,但是我们要想出现AR效果,即在图片上出现游戏人物,就需要在ImageTarget下添加一个子对象,并设置好相应的大小关系,如下图所示:
启动游戏后,已经可以成功识别,并且可以显示出我们在上一步添加的游戏对象。效果如下:
游戏设计
本游戏中要实现的主要有两个方面:小飞龙的跳跃以及鸟的飞行,其中,鸟的飞行通过脚本控制鸟的预制体移动实现,而小飞龙的跳跃则通过虚拟按键实现。
鸟的飞行
鸟的飞行脚本实现的比较简单,首先得到鸟的预制体对象,然后在每次Update函数中控制其位置按照既定的路线移动即可,一旦超出某个范围就让其回到原点,产生不断有鸟飞过的假象。需要注意的是,这里的位置都使用了相对位置,若使用绝对位置,在进行游戏时,如果相机移动了,鸟的位置也会移动。
using UnityEngine;
using System.Collections;
public class birdGenerator : MonoBehaviour
{
private GameObject bird;
// Use this for initialization
void Start()
{
bird = Object.Instantiate(Resources.Load<GameObject>