Unity3D——AR小游戏

2023-11-08

有趣的AR小游戏制作

环境准备

Unity+Vuforia
需要在Vuforia官网注册,下载SDK并安装,之后获得开发者证书,才能继续操作。

遇到的问题:

  1. 现在的Vuforia采用*.exe文件安装,需要指定安装到Unity所在文件目录,之后重启Unity,在GameObject选项栏就能找到Vuforia组件了。
  2. 添加了Vuforia组件后,可能会出现“Vuforia is not enabled”这样的报错,此时需要在Unity的Edit->Project Settings->Player目录下将XR下的所有选项打钩。
具体实现
替换Camera

删去原有的Main Camera,替换为Vuforia的AR Camera。需要为AR Camera添加License Key。

上传识别卡

在官网上的Target Manager中添加一个Device类型的识别卡(用于导出到Android或iOS设备中)。之后,为其添加印版图的图片。
我选择了一张中山大学的明信片,所以使用Single Image类型的Target。之后设置图片宽度和名称即可。从上传之后的Rating值来判断上传的图片是否可以被识别。

下载识别卡模型

将上传的识别卡的模型下载下来,然后导入Unity。

编辑游戏对象

首先添加Vuforia的Image创建识别卡对象,可能会需要设置Database,我下载的版本会自动关联,但是看网上说之前的一些版本需要。
此时就可以添加游戏对象到Scene中了,但是需要注意的是,必须添加到识别卡对象之下,作为子对象。
另外,AR Camera的配置中Database的load在当前版本不需要设置,但是早期版本同样需要额外注意。

实验环境是否配置成功

运行并使用识别卡测试。
视频地址:https://www.bilibili.com/video/av77863412/

导入Lean Touch脚本

使用Lean Touch脚本,使得游戏对象可以检测到触碰事件,并进行相应的变换(包括变大、缩小等等)

制作成Android应用

首先需要在本地配置好Android SDK,因为之前写过Flutter应用,所以本地已经配置好了,然后再Unity的File->Build Settings中选择好Android设备编译。

可能会出现Player Settings错误,此时就在左下角点击进入Player Setting的设置,主要是需要自定义Company Name,Product Name以及Other Settings下的Package Name。

build的时候出现了错误UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) ...尝试了更改Build System,使用自定义签名,签名设置方法参考。最后重启Unity,成功。(最终使用的Build System还是Internal)。

游戏制作

前期准备与之前的操作类似,设置AR Camera、游戏对象。但是由于此次使用无卡识别,所以需要特别调整摄像机和游戏对象位置,使得游戏对象在视图内。另外,因为场景需要,应该为游戏对象设置动画,这在之前的课程已经实践过了,就不再赘述。

写一个负责游戏对象运动的脚本,让游戏对象在一定场景下按特定方式运动。

最终实现的是一个可以检测手机移动状况,从而随着手机移动而移动的AR游戏APP。同时使用Lean Touch脚本,使得游戏对象可以检测到触屏事件,并触发一定的行为,

同时存在三个Scene,包括菜单栏、无卡移动、有卡识别。需要在Build Settings中Add,通过分配的编号,后续可以对Scene进行操作。

实验结果

github地址:https://github.com/SantanderAuhAuh/3D-Game-Learning/tree/master/AR%20%E5%B0%8F%E6%B8%B8%E6%88%8F/AR%20Game
视频地址:https://www.bilibili.com/video/av77876579/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D——AR小游戏 的相关文章

  • 武汉腾讯前端一面

    腾讯文档前端开发工程师 1 自我介绍 2 项目难点及解决方案 3 Vue双向数据绑定原理 4 diff算法 5 递归实现方式 6 深浅拷贝 object assign 7 跨域原因及解决方式 你公司项目是怎么解决的 8 webpack 9
  • JSON与String字符串相互转换的方法

    首先创建一个简单的类 package com wei demo pojo Author wei Date 2022 6 2 9 24 Version 1 0 public class Teacher private int id priva
  • ASP精华[转]

  • Linux命令:ps

    ps命令 查看系统中的进程状态 ps命令的参数以及作用 参数 作用 a 显示所有进程 包括其他用户的进程 u 用户及其他详细信息 x 显示没有控制终端的进程 Linux系统中时刻运行许多进程 如果能够合理的管理它们 则可以优化系统性能 si
  • js中使用DES加解密解决方案总结

    js中使用DES加解密解决方案总结 1 需求背景 最近开发vue项目中 对于用户手机号码需要进行DES加解密操作 简介 DES加密 是一种比较传统的加密方式 其加密运算 解密运算使用的是同样的密钥 信息的发送者和信息的接收者在进行信息的传输
  • 【MLOps】第 1 章 : 为什么选择它以及现在面临的挑战

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 常用数组方法总结

    添加 删除元素 push items 从结尾添加元素 pop 从结尾弹出 提取元素 unshift items 从开头添加元素 shift 从开头提取元素 splice pos deleteCount items 从index开始 删除de
  • win10 安装 python报错-已安装这个产品的另一版本

    尝试清理干净电脑上关于之前安装的Python3 在 输入win R 输入cmd 回车 输入 python 回车 却看到 C Users 86136 gt python python 不是内部或外部命令 也不是可运行的程序 或批处理文件 但是
  • Python pd.merge()函数介绍(全)

    目录 1 前言 2 参数介绍 参数如下 3 基础案例 3 1on关键字演示 3 2left on 和 right on 关键字 3 3left index 和 right index 关键字 3 4数据连接的类型 3 4 1 1 前言 在数
  • 4.3 Verilog练习(2)

    目录 练习五 用always块实现较复杂的组合逻辑电路 练习六 在Verilog HDL中使用函数 练习七 在Verilog HDL中使用任务 task 练习八 利用有限状态机进行复杂时序逻辑的设计 练习五 用always块实现较复杂的组合
  • leveldb注释7–key与value

    作为一个kv的系统 key的存储至关重要 在leveldb中 主要涉及到如下几个key user key InternalKey与LookupKey memtable key 其关系构成如下图 user key就是用户输入的key 而Int
  • 华为OD机试 - 第k个排列(Java )

    题目描述 给定参数n 从1到n会有n个整数 1 2 3 n 这n个数字共有n 种排列 按大小顺序升序列出所有排列的情况 并一一标记 当n 3时 所有排列如下 123 132 213 231 312 321 给定n和k 返回第k个排列 输入描
  • 关于校园招聘的感受(汇总)

    对招聘会的法想法 今天春季招聘会在我校的西苑体育馆拉开了序幕 我作为大二的一名学生去看了此次招聘会 进到馆内 第一反应就是一个人 多 人多 单位多 感觉到以后大四毕业就业的压力 那么多学长学姐把自己简历送到各个用人单位 开始面试 考官出的题
  • java 动态代理

    动态代理 这里讲解jdk 动态代理 不讲解cglib动态代理 使用jdk 的InvocationHandler接口与Proxy类实现动态代理 自定义InvocationHandler接口与Proxy类 自定义实现 分析 我们想要实现动态代理
  • dcdc升压计算器excel_优秀DCDC升压

    Figure 1 Basic Application Circuit GENERAL DESCRIPTION The MT3608 is a constant frequency 6 pin SOT23 current mode step
  • pycharm简单使用(Mac):创建一个helloWord

    说明 VSCode是一款轻量级的开发工具 可以支持多款插件这个学习使用确实是一个好的工具 PyCharm是一款Python专门支持的IDE 为什么这里要使用PyCharm呢 PyCharm支持断点调试 1 第一步 创建一个项目 2 第二步
  • CUDA 基础 01 - 概念

    最近在GPU编译器测试方面遇到一些瓶颈 准备学习下cuda 相关的基础知识 warp sm index grid等 CPU VS GPU GPU最重要的一点是可以并行的实现数据处理 这一点在数据量大 运算复杂度不高的条件下极为适用 可以简单
  • 3 Ubuntu上使用Qt运行多线程,设置程序自启动及保护脚本

    Ubuntu上使用Qt运行多线程 设置程序自启动及保护脚本 多线程 自启动及保护脚本 自启动及保护脚本 结束自启动脚本 脚本程序简单说明 设置自启动 多线程 使用多线程时我们需要加入 include lt thread gt 这个头文件包含
  • 区块链常见的几大共识机制

    区块链技术被广泛应用于许多领域 其中共识机制是构成区块链系统的核心部分 共识机制是指用来维护区块链数据一致性 安全性和可靠性的机制 常见的区块链共识机制有以下几种 1 工作量证明 Proof of Work 是最早的共识机制 它将矿工通过解
  • 毕业设计-基于机器视觉的交通标志识别系统

    目录 前言 课题背景和意义 实现技术思路 一 交通标志识别系统 二 交通标志识别整体方案 三 实验分析 四 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计

随机推荐

  • 开源项目Tinyhttp项目源码详解

    HTTP协议 http协议叫做超文本传输协议 是基于tcp ic协议的应用层协议 具体内容可以借鉴这一篇博客 https blog csdn net qq 36894974 article details 103930478 本文主要涉及T
  • [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120893764 目录 第1章 卷积神
  • Ubuntu14.04安装配置NFS用于挂载嵌入式文件系统

    Ubuntu14 04安装配置NFS用于挂载嵌入式文件系统 1 安装 sudo apt get install nfs kernel server rpcbind 2 配置 vi etc exports 在文件的最后一行加上 yaffs2
  • 获取随机位数阿拉伯数字

    int Math random 9 1 1000 这里是随机4位数 需要几位数 就乘以几个零 int Math random 9 1 100 随机3位数 int Math random 9 1 10 随机2位数 来个方法吧 获取随机位数的阿
  • IPSec 基础介绍

    IPSec是IETF Internet Engineering Task Force 制定的一组开放的网络安全协议 它并不是一个单独的协议 而是一系列为IP网络提供安全性的协议和服务的集合 包括认证头AH Authentication He
  • python TimedRotatingFileHandler 配置参数 (转)

    TimedRotatingFileHandler这个模块是满足文件名按时间自动更换的需求 这样就可以保证日志单个文件不会太大 用法很简单 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 impo
  • python学习之【模块】

    前言 上一篇文章 python学习之 深拷贝 中学习了python中的深浅拷贝学习内容 这篇文章接着学习python中的模块 什么是模块 在python中 一个文件 以 py 为后缀名的文件 就叫做一个模块 每一个模块在python里都被看
  • 群晖做网页服务器_群晖NAS软件DS get介绍及使用方法教程

    我的NAS介绍第二篇 群晖NAS软件介绍与应用之DS get篇前言 1 为什么选择NAS之所以我现在建议大家选择NAS 不仅仅因为网盘的不稳定性和不安全性 遇到和谐大神不说 网盘也经历了各种风风雨雨 从和谐到倒闭不过一步之遥 大家都懂的 还
  • Mysql-连接https域名的Mysql数据源踩的坑

    背景介绍 大家在实际项目中 大部分都会用到关系数据库mysql 通常数据库服务器提供的都是ip的方式 所以不会出现本文涉及到的https域名的问题 本文介绍的是基于数据库服务器是分配了指定域名且有ssl证书的https 连接数据源 遇到的问
  • java面向对象基础练习--实现简单的图书管理系统

    这个系统使用的是java的基础语法 没有使用数据库 实现图书管理系统基础的查询 增加 删除 借阅 归还 打印 退出功能 这个小项目作为我java基础语法的综合运用 主要是为了建立面向对象编程的思想 培养编程习惯 如果有错误或者更好的实现方法
  • 深入详解ThreadLocal

    本文已收录至GitHub 推荐阅读 Java随想录 微信公众号 Java随想录 原创不易 注重版权 转载请注明原作者和原文链接 文章目录 什么是ThreadLocal ThreadLocal 原理 set方法 get方法 remove方法
  • 又回来了

    又回来了 一年多没有来了 再次回来还是感觉那么熟悉 那么亲切 怀念以前在学校的日子 怀念苦苦思索技术的日子 除了学习没有繁杂的社会关系要处理 单纯快乐着 为了一个小小的技术难题 愿意不吃不喝去摸索 去测试 在成功的那一刻忘记了一切疲倦和劳累
  • c++ 实现数据库连接池

    c 实现数据库连接池 自己尝试用c 新标准实现了数据库连接池 代码简化了很多 思路 将数据库的连接当作一个对象添加进list队列中 在连接池创建的时候就建立好队列 并添加自定义大小的连接对象 连接对象用智能指针来管理 现代c 中不应该出现d
  • Api接口版本管理实现

    Api接口版本管理实现 引言 实现 RequestCondition 实现代码 ApiVersion注解 ApiVersionRequestCondition 版本匹配 ApiVersionHandlerMapping 将condition
  • fastjson对泛型的反序列化

    文章目录 具体告警分析 告警影响 fastjson未指定泛型具体类型 fastjson TypeReference指定泛型具体类型 可以看到fastjson反序列化时IDEA提示告警 Unchecked assignment 怎么解决这个告
  • ubuntu+vscode构建c++开发调试环境

    1 vscode下载与安装 下载 Visual Studio Code Mac Linux Windows下载deb文件 运行指令安装vscode sudo dpkg i xxx deb 如果报 dpkg 错误 另外一个进程已经为 dpkg
  • python 3.7版本 打不开 python 3.8 保存的pickle文件

    1 问题描述 最近有一个pickle文件 当我使用python3 7 读取的时候报错 ValueError unsupported pickle protocol 5 查找原因发现是原始文件是用高版本的python解释器 比如3 8 保存的
  • 数据结构实验--表达式的后缀表示

    一 问题描述 表达式中包含运算对象 运算符和圆括号等 习惯上使用中缀表示 指运算符夹在两运算符对象中间 形式 计算表达式的值 涉及到运算符的优先级别 如先乘除后加减 括在一对圆括号中的子表达式必须先计算 因此 圆括号可视为特殊的运算符 具有
  • Linux--遇见的一些小错误

    一 问题 linux下运行出现 sh 1 pause not found 原因 在windows系统下 使用此语句 但linux不认识 system pause 解决方法 删去system pause 二 问题 编程时出现 Warning
  • Unity3D——AR小游戏

    文章目录 有趣的AR小游戏制作 环境准备 具体实现 替换Camera 上传识别卡 下载识别卡模型 编辑游戏对象 实验环境是否配置成功 导入Lean Touch脚本 制作成Android应用 游戏制作 实验结果 有趣的AR小游戏制作 环境准备