你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

sketch license key 徐雨航本科毕业论文:用Unity开发虚拟校园增强现实交互可视化系统

发布时间:2025-09-16

浏览次数:0

徐雨航同学运用Unity平台结合插件与C#语言,为其本科毕业论文(导师杨乃)设计了一款轻量级虚拟校园增强现实系统,该系统能在移动设备上运行,通过手机镜头扫描纸质地图可自动匹配并展示三维建筑图像,用户点击三维建筑图像能够获取该建筑的详细资料,同时支持对三维图像进行多角度旋转、位置调整、尺寸放大及缩小操作。一、技术路线

首先,从纸质地图上选取自然特征标识图,将其截取后上传至官网服务器,接着提取特征点,并下载含特征点数据的标识图资源数据包,随后将数据包导入Unity软件。其次,建立校园三维模型,选择FBX格式导入Unity,在Unity中添加AR应用所需的组件,调整模型与标识图的位置,确保模型能够覆盖在标识上方。然后,增加弹窗界面以及文字元素,并配置C#代码模块以完成操作响应。最终,借助Unity将应用移植到移动设备上。

图1.1 技术路线流程图二、开发环境介绍1.Unity

Unity是一个功能完备的虚拟现实软件,部署便捷,兼容附加组件,教程资源充裕,无论新手还是专业人士都能驾驭。务必在获取并安装Unity时确认其附加组件的兼容性,倘若选用其他构建途径,就必须选择对应的扩展模块,比如采用特定构建方法就应选择那个。本篇研究运用Unity搭配的方案展开构建。

图2.1 unity官网下载个人版unity

创建Unity项目时,要在模板选项栏中选中三维项目类型,具体操作是勾选对应的复选框。Unity运用模块化构建方法,其初始界面参见图3.1右侧,左侧呈现当前场景内物件的组织结构,中间上方包含场景、资源库、游戏及动画等视图,支持相互转换,下方则展示该项目所含资源集以及各类资料、指令、预制件,能够添加新的素材,也能移除已有内容。右侧是部件展示界面,可以通过向特定对象附加部件来进行构建,比如给某个角色安装一个程序部件,并对其编写指令来引导角色移动。

开发一款增强现实软件,一般涉及几个核心构成要素,分别是增强现实技术,用于识别的图形标记,虚拟的三维物体,以及附加的装置元素。

2.

这款AR开发套件,掌握起来并不复杂,基本上不需要去处理很多底层算法相关的编码工作。而且,它能够以插件方式,非常契合地配合Unity使用,当需要导入数据时,可以直接从网络上获取并拖放到Unity的资源管理区域,整个过程非常快捷省事。在Unity的官方网站上,提供了很多利用这个套件开发AR应用的小范例,对于刚入门的人来说,这些例子是很好的学习材料。免费功能强大,是当前AR应用开发的热门工具包。

引擎可辨识并追踪图像,不同于常规的参照标记、数据矩阵条码和条形码,图像对象无需具备特定的黑白区块或编码才能识别。经由将图像中的固有特征同已知的对象资料库进行比对,引擎得以辨识并追踪图像本身所含的自然特征。当图像对象一经辨识,引擎便会持续追踪该图像。

3.

这是一款专为设计构思环节打造的应用程序,界面明晰,容易掌握,用途广泛,具备便捷的调整特性。借助单个图形就能轻松创建三维造型,无需进行复杂的三维构造。该公司在2006年购入了这款软件及其研发团队,到了2012年又将其转手给了另一家企业。本文所展示的模型全部使用该软件制作,与3DMax相比,这款软件的操作更为简便,也更容易将构建的模型传输到指定平台。

4. C#脚本语言

Unity所采用的编译器是C#语言专用的跨平台开源编译器Mono,并且是Unity根据自身需求进行了修改后的版本,该编译器基于C# .NET 2.0的语法规范进行设计,不过由于Unity进行了定制化调整,因此它也能够兼容部分C# .NET 3.5的语法特性,C#脚本语言在跨平台应用方面表现出更优越的性能

三、详细开发步骤1.创建AR基本组件

先移除新创建的Unity工程左侧目录树里的Main目录sketch license key,以免和AR功能产生冲突,因为AR功能里包含了实现AR应用的组件和附加的脚本,而Main目录不具备这些内容,它主要用来作为游戏开发的摄像头使用,并不适合AR应用,所以需要将其删除,接着在主菜单栏选择AR选项,新建一个AR项目,此时Unity会弹出导入提示(如图3.1所示),然后点击导入,左侧界面便会展现出来。

图3.1 导入

点击Image选项,需要生成一个标记图像,Unity会询问是否载入预设图库,若未获取过官方网站提供的标记图资源包,可选用载入系统自带资源sketch license key,随后会呈现预设素材,其中包含标准标记图形,若仅用于构建简易演示,可将此标记图文件下载并打印,用以完成基础实例展示。接下来将介绍如何制作的标识图。

打开那个官方网站,先建立一个新账号,接着登录进去,找到页面顶部的按钮,再点一下获取密钥的选项,这样就能拿到一个用于开发的特别钥匙,具体的样子可以参考图3.2。

图3.2 注册登录获取密钥

(4)在 中点击Add ,创建一个存放标识图的数据库。

进入数据库系统,选择上传标记图形文件,参考图3.3(a)示例,该图形既可自行设计,亦能从现有图像中截取特定区域作为标记,系统兼容四种标记格式,包括Image(独立图像、(矩形框)、(圆柱形)、3D(三维模型物体),本项研究采用独立图像标记形式。接着服务器会对已上传的图形进行关键特征提取,为后续的图形识别工作奠定基础。右图中的那个小小的黄色“+”符号就是特征点的标记,后面的星级数量就是对该标记的评分,最高为五个星。挑选标记图时,要尽量选择那些对比强烈、细节丰富、边缘清晰且没有重复图案的图片,同时要避免选择对称的图形。用于识别的图片必须是8位色或24位色的PNG或JPG格式。如果是JPG文件,必须是无灰度的RGB模式,并且文件大小不能超过2.25兆字节。图片特征点及打分如图3.3(b)所示。

图3.3(a) 上传标识图图片

图3.3(b)由服务器提取特征点

进入主菜单选择文件,再选择构建选项,在该界面左下方找到相应复选框并勾选,这样就能启用AR组件功能,接着点击该组件里的打开按钮,会进入设置页面,如图3.4所示,需要把第(3)步取得的密钥,复制之后粘贴到设置界面中的App Key这个位置上。配置界面正中间的Max以及Max,代表可同步监测识别的影像或物体件数,允许用户自主设定具体数值,其上限受限于计算机的处理能力。

图3.4 AR 配置界面

获取标记物资料库,并将其载入到Unity软件里。把下载好的Unity文件,移动到Unity操作台的(资源)位置中。进行导入操作。参照图3.5。

图3.5下载资源包并导入unity

先建立一个三维的立方形物件,接着把它移动到左边图例存放位置,由于两者的空间坐标不一样,因此在场景画面中,要将这个立方形物件拖放到图例的正上方,并且让它尽可能紧贴着图例。按下界面顶部的播放键,游戏画面中会显现出程序运作的场景,它运用了电脑的镜头来采集影像,一旦采集到的标记图像与已载入的标记图档案中的图像对上号,对上号之后就能把数字物件叠加上去,这样一个简单的AR的示范就制作好了(如图3.6所示)。

图3.6 AR小事例

2.导入校园三维模型

在当中制作校园的三维形态,参考图3.7,制作完成后将其存为FBX文件。这种软件比3Dmax要容易上手,入门后可以开始构建模型。若要将模型引入Unity,就必须先把它转化为FBX文件格式。

图3.7 中建立的三维模型

在中文环境中构建的立体构造,通过点击文档菜单,再选择导出功能,并指定文件格式为FBX类型进行存储。随后在Unity软件里,使用鼠标右键操作,选择新建项目,并加载先前保存的FBX文档进行采纳。接着将该构造物移动到左侧的框架树里,依据图3.8的指引,将其放置在恰当的方位。

图3.8导入unity中的三维模型

3.导入手势资源包,并添加交互组件

在Unity软件里打开资源商店界面,查找名为Lean Touch的插件,这个插件是Unity资源商店提供的免费触屏工具,主要用来帮助开发移动设备上的应用,借助它能够识别各种手势动作,并且给出相应的响应效果。将这个资源包下载下来并导入到项目中,具体操作步骤如图3.9所示,需要在左侧的资源管理区域找到Lean目录,然后右键选择Touch选项来创建新的组件。接下来,为先前创建的每个空对象安装三个名为Lean的组件,以及一个名为Lean Scale的组件,这三个组件分别是:Lean、Lean、Lean Scale。这些组件分别用于实现用户对虚拟模型的移动、旋转以及放大缩小等交互功能,这些操作是在移动设备上通过手指的手势来完成的。

图3.9 导入Lean Touch手势资源包

旋转效果如图3.10所示,主要代码:

声明一个不带参数的空函数

2.          {

3.              var  = .(, );

4.

5.              if ( != null)

6.              {

7.  //

那个轴是通过调用函数获得的,函数有两个参数,返回值赋给了变量axis

9.

该操作针对指定轴进行,具体表现为,将等式右侧的变量与左侧的项进行关联,实现坐标轴上的变换,最终完成指定任务。

11.                       }

12.                   }

UnityVuforiaC#开发增强现实交互可视化系统_sketch license key

缩放效果如图3.11所示,主要代码:

1.    void Scale( scale)

2.          {

3.              if ( == true)

4.              {

把scale.x的值限制在.x和.x之间,使用Mathf.Clamp函数来处理

高度值被限制在指定范围内,上限为上限值,下限为下限值

scale的z轴值被限制在某个范围内,这个范围是以z的值为上下限的,确保z轴值不会超出这个区间

8.              }

9.              . = scale;

10.                   }

移动效果如图3.12所示,主要代码:

1.    void ( )

2.          {

3.              // 确认相机的存在

4.              var  = .(, );

5.

6.              if ( != null)

7.              {

那个需要挪动的物件当前在显示界面的坐标

那个变量等于点号后面括号里的内容

10.

不允许在指定区域放置任何新增物件,该地点严禁进行扩充,原有界限必须维持现状,任何改动均属无效,请严格遵守规定,不要尝试改动此区域,确保此地点保持原样,不要进行任何形式的增加,维持现状是唯一允许的选择,不要破坏既定安排,保持此地点的原始状态,不要进行任何更改,确保规定得到遵守,不要违反设定,维持此地点的完整性,不要进行任何改动,保持现状是必须的,不要尝试改变,确保此地点不受影响,不要进行任何添加,维持原状是强制性的,不要破坏规定,保持此地点的稳定,不要进行任何扩充,确保此地点保持不变,不要进行任何改动,维持现状是必须的,不要违反规定,保持此地点的原始状态,不要进行任何增加,确保此地点不受干扰,不要进行任何更改,维持原状是强制性的,不要破坏设定,保持此地点的稳定。

不允许进行任何操作,保持原样,仅作说明,不做实质改动。

13.

将数据转换到全局坐标系,以便进行统一处理,这个过程非常关键,需要精确执行,

不允许进行该操作,需要遵循规定,否则将会受到限制,请务必注意,这是明确的要求。

16.                       }

17.                   }

图3.10 旋转操作

图3.11 缩放操作

图3.12 移动操作

4.导入手机端

将Unity开发的应用程序安装到移动设备上,以便利用该设备的相机扫描图像识别标记物,从而达成虚拟现实效果。移动设备的相机在分辨率上远超台式电脑的相机,这有助于提升对标记物的图像分析能力,并且能够实现更为精确的识别。在Unity软件中,依次找到文件菜单,再选择构建选项,接着点击其他选项,需要调整几个关键设置,名称字段必须符合规范,若不符合,构建时会显示错误信息,需要将TV选项前面的复选框取消,至于图标等非核心设置,可以忽略,系统会自动采用Unity自带的图标和启动画面在配置列表里,如果存在其他环境,需要先移除它们,然后点击增加开放,把当前环境加进去,在下方设备选择区,依据移动设备类型选择苹果系统或者,由于本例中移动设备使用的是安卓系统,因此选择安卓,接着点击构建,会生成APK文件(见图3.13),把这个文件发送到手机上安装并启动,手机端的增强现实功能就可以使用了(见图3.14)。

图3.13 导入手机端

图3.14 手机端截图

5.弹出框交互设计

制作一个交互式按钮,用于呈现模型详情,参考图3.15(a)。在生成的标识图子目录中,通过右键操作添加一个按钮及一个Image,二者均作为画布的子项存在,如图3.15(b)所示。接着在Image组件下方,放置一个按钮和一个文本框,前者负责关闭弹出的对话框,后者用于展示模型的具体说明,如图3.16所示。调整各个按钮与文本框的摆放,防止它们发生重叠现象,以免干扰按钮的正常工作,至于其他部分,可以适当变动。只要将Image元素配置界面顶部的选择标记取消,那么在Image里设定的文本框和按钮就会消失不见。为首个新增设置绑定点击触发动作,在参数设定面板中,于点击“+”号时,插入一项,需将图片从左侧区域移至下方指定位置,同时勾选对应选项,参照图3.15(c)展示效果。在函数选项处,选择点下小数点符号,以启动弹出界面。操作至此完成。对取消按钮执行类似操作,但无需勾选标记,其状态应与图3.15(d)一致。

图3.15(a)

图3.15(b)

图3.15(c)

图3.15(d)

图3.15 弹出框交互设计

图3.16弹出框介绍建筑详细信息

四、实验效果

把所有模块载入引擎,与一张完整的参照图对齐,调整好坐标,如图4.1。

图4.1所有模型导入

接下来,借助Unity的官方工具,将程序转化为安卓应用包,这在前文已有说明。在移动设备上启动该应用,并将设备镜头对准实体地图,即可达成图4.2所示的功能。

图4.2 手机端显示全部模型

视频演示如下:

先前我们亦发布过运用Unity的AR基础操作指南,具体内容可查阅:

如有侵权请联系删除!

13262879759

微信二维码