AR 配置并导出IOS开发环境配置

news/2024/5/9 4:16:39/文章来源:https://blog.csdn.net/weixin_44954896/article/details/127338970

文章目录

  • 前言
  • 一、导入插件
  • 二、设置开发环境
  • 三、搭建基础框架
  • 四、代码
  • 五、导出
  • 六、测试
  • 总结


前言

最近接了公司的一个AR项目,需要用MacBook,所以赶鸭子上架,现学…小本本记下来
我用的unity是2020.3.15f2c1,
MacBook是 2020MacBook M1,
ipad是iPad mini(第五代)
建以unity2019.1以上,XCode10以上版本


一、导入插件

  1. 新建一个3D项目类型

  2. 点击unity菜单栏Windows->Package Manager
    在这里插入图片描述

  3. 弹出的菜单栏默认不显示我们所需要的AR插件,所以点击Packages下拉菜单选择unity registry
    在这里插入图片描述

  4. 如图,安装这三个插件
    在这里插入图片描述

二、设置开发环境

  1. 点击菜单栏fike->Build Settings…
    在这里插入图片描述

  2. 点击IOS,再点击Switch Platfrom,切换到IOS平台
    在这里插入图片描述

  3. 然后点击左下角的player settings,点击左边的Player,设置公司名和产品名!
    在这里插入图片描述

  4. 展开Other Settings选项卡在Identification栏,Bundle Identifier中与上面的公司名和产品名一致,还有版本号
    在这里插入图片描述

  5. 再往下,Camera Usage Description中填写I Need Camera,
    设置Target Device,可以是iPhone或者iPad,
    因为使用真机调试所以Target SDK选择Device SDK,
    设置Target minimum IOS Version最低IOS版本为11.0
    设置处理器架构Architecture为ARM64
    在这里插入图片描述

三、搭建基础框架

  1. 删除主摄像机(因为AR Session Origin自带有AR摄像机)

  2. 在Hierarchy空白处右击,然后选择XR->AR Session和AR Session Origin
    在这里插入图片描述

  3. 然后再Hierarchy空白处右击,选择XR->AR Default Plane,把它拖到Prefab文件夹做成预制体,然后删除Hierarchy下的AR Default Plane对象
    在这里插入图片描述
    在这里插入图片描述

  4. 点击选择Hierarchy窗口下的AR Session Origin,在Inspector窗口点击Add Component按钮,输入arp,添加搜索出来的ARPlane Manager组件
    在这里插入图片描述

  5. 将刚才的AR Default Plane预制体拖入到ARPlane Manager组件下的Plane Prefab属性框
    在这里插入图片描述

四、代码

  1. 创建脚本并写入代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
[RequireComponent(typeof(ARRaycastManager))]
public class AppController : MonoBehaviour{public GameObject spawnPrefab;static List<ARRaycastHit> Hits;private ARRaycastManager mRaycastManager;private GameObject spawnedObject = null;private void Start(){Hits = new List<ARRaycastHit>();mRaycastManager = GetComponent<ARRaycastManager>();}private void Update(){if (Input.touchCount == 0)return;var touch = Input.GetTouch(0);if (mRaycastManager.Raycast(touch.position, Hits, TrackableType.PlaneWithinPolygon | TrackableType.PlaneWithinBounds)){var hitPose = Hits[0].pose;if (spawnedObject == null){spawnedObject = Instantiate(spawnPrefab, hitPose.position, hitPose.rotation);}else{spawnedObject.transform.position = hitPose.position;}}}
}
  1. 在Hierarchy窗口创建一个Sphere并附上材质,将Scale缩放成(0.1,0.1,0.1);制成预制体,并删除Hierarchy窗口下的Sphere
    在这里插入图片描述
  2. 然后选择Hierarchy窗口下的AR Session Origin,添加刚才写的脚本,并把Sphere预制体添加到脚本的Spawn Prefab属性框中
    在这里插入图片描述

五、导出

  1. 将iPhone或者iPad通过USB或者WIFI连接计算机,

  2. 点击File选择Build Settings对话框,把当前场景添加进来
    在这里插入图片描述

  3. 然后点击Build And Run,将会生成XCode工程,建以保存在另一个文件夹

  4. 打包后XCode打开生成工程后,依次点击XCode工程图标->工程名,选择真机设备,这里选择的是iPad
    在这里插入图片描述

  5. 在工程属性面板中选择General选项卡,检查Display Name和Bundle Identifier还有Version是否在unity设置一样
    在这里插入图片描述

  6. 然后点击Signing&Capabilities选项卡,选择开发者证书
    在这里插入图片描述

  7. 配置完成后点击左上角的编译运行图标开始编译、发布、部署、运行.
    在这里插入图片描述

六、测试

  1. 编译运行后,真机上可能出现不允许使用,那就打开设置->通用->设备管理->开发者App->验证应用,点击信任
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 然后点击打开app,
    在这里插入图片描述
    在这里插入图片描述

总结

刚开始导出测试的时候,打开app后屏幕是黑的,没有弹出访问摄像机的提示,害的我一顿找啊,找了好久没找到什么问题,真™dfs#$%&DBAR#T^T#%@R437482&jsfbskdnfose
最后原来是player settings->XR Plug-in Management中的ARKIT没有打上勾

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_24080.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Azkaban(三):进阶案例-java作业类型案例、条件工作流案例、定时执行案例

目录 Javaprocess作业类型案例 条件工作流案例 运行时参数案例 预定义宏案例 定时执行案例 Javaprocess作业类型案例 Javaprocess类型可以运行一个自定义主类方法&#xff0c;type类型为javaprocess。 1.创建maven工程&#xff0c;创建类名&#xff0c;创建AzkabanCase类…

ISP图像信号处理 | GAMES204-计算成像

图像信号处理 | GAMES204-计算成像Dead Pixel CorrectionBlack Level CompensationAnti-aliasingLens Shading CorrectionNoise Reduction3ASAuto-exposureAuto FocusAWBDemosaic&#xff1a;CFA InterpolationColor CorrectionEdge EnhancementFalse Color SuppressionBrightn…

运动用品品牌排行榜,双十一运动装备选购清单

运动需要我们坚定的决心与毅力&#xff0c;因为它也是一个枯燥而艰辛的过程&#xff0c;需要无数汗水的挥洒与不断重复的坚持。为了让自己能更坚持下去运动&#xff0c;我一般都会选择用外在运动装备来辅助锻炼&#xff0c;不仅仅能提高运动效率&#xff0c;还能让运动更加快乐…

移动端自动化任务-AutoJs Pro v9使用教程(一)

官网 - Auto.js Pro Github代码示例 教程与博客 (autojs.org) 开源版文档 Pro 版 API 旧文档 Pro 版 v9新文档 一、前言 本教程是本人学习 Auto.js Pro V9 的记录&#xff0c;算是个入门教程&#xff0c;通过本文可帮你快速了解 autojs 的大体用法和开发步骤。官方文档也有中文…

【qml】QQuickPaintedItem作为代理在ListView中使用

文章目录1.说明2.程序截图3.TextBalloon 类3.1 TextBalloon.h3.2 TextBalloon.cpp3.3 textballoons.qml3.4 main.cpp1.说明 QQuickPaintedItem类提供了一种在QML场景图中使用QPainter API的方法。 QQuickPaintedItem本身作为Item&#xff0c;也可以在ListView中作为代理使用。…

机器学习笔记 - sklearn决策树(kaggle 实战 Titanic 入门)

Kaggle - Titanic 前言 这是 Kaggle 上非常典型的一道入门题&#xff0c;可以用很多机器学习或者深度学习甚至是一些“奇淫技巧”的方法来解决。因为我是一个初学者&#xff0c;所以我希望在尽可能提高正确率的情况下&#xff0c;用更简单的方法。如果这也能帮助到你&#xf…

数据库作业一

MySQL数据库 MySQL官方提供了两个不同的版本&#xff1a; 1、社区版 &#xff08;MySQL Commimity Server&#xff09;免费&#xff0c;MySQL不提供任何技术支持&#xff08;本文操作选用社区版&#xff09; 2、商业版&#xff08;MySQL Enterprise Edition&#xff09;收费&a…

[Microsoft] 通过Microsoft Spotlight 中国站云技能挑战获取微软免费考试券

这是一篇关于微软Spotlight 推出学习活动的同时&#xff0c;如何获得免费考试券的方法&#xff0c;如果该文章在未来时间已经失效&#xff0c;那么建议你关注一下这个博客&#xff0c;有Azure China Cloud最新的消息会进行更新通知。 文章目录1. 所需准备注册账号2. 参加 Micro…

二十八、Hive集成HBase分析搜索引擎用户行为数据

我们已经知道,HBase数据库没有类SQL的查询方式,因此在实际的业务中操作和计算数据非常不方便。而Hive支持标准的SQL语法(HiveQL),若将Hive与HBase集成,则可以通过HiveQL直接对HBase的表进行读写操作,让HBase支持JOIN、GROUP等SQL查询语法,完成复杂的数据分析。甚至可以…

【电源设计】13开关电源仿真与应用

0.前言 本章主要是大概了解一下开关电源仿真与应用&#xff0c;开关电源仿真设计全过程&#xff1a;包括需求分析/控制/PWM。因为本人并不是专门做电源的&#xff0c;此部分内容仅作了解&#xff0c;并不专门去学习。 文章目录0.前言1.项目需求2.方案介绍2.1DCDC级&#xff08…

互联网重提内容为王?学Netflix(奈飞)做好内容营销

Netflix 成立于1997年&#xff0c;不久便一跃成为最受瞩目的流媒体服务网站。它为什么能在短短时间内获得如此巨大的成功呢&#xff1f;答案就在于它使用的超凡 内容营销策略 和方法 —— 数据驱动 、优化内容、以流量转化为目标。 内容为王众人皆知&#xff0c;内容营销是品牌…

【计算机毕业设计】java ssm高校计算机网络考试系统(源码+论文)

提供了一些今年最新计算机毕业设计源代码、文档及帮助指导&#xff0c;公众号&#xff1a;一点毕设&#xff0c;领取更多毕设资料。 随着计算机以及网络在教学领域的高速发展&#xff0c;为了加快数字化校园的进程&#xff0c;更好的实现现代化的教育改革&#xff0c;针对于当下…

手动制作满足SARscape要求的_dem数据

手动制作满足SARscape要求的_dem数据问题描述1 下载研究区的原始DEM数据&#xff0c;在envi中镶嵌裁剪&#xff0c;得到.dat格式的数据&#xff0c;然后用envi中的Original ENVI工具把.dat转成_dem1.1 下载研究区的原始DEM数据1.2 将.tif数据转成envi格式的.dat2. 能不能直接将…

WordPress开发中常用代码(必备)

很多人在WordPress开发中常用代码&#xff0c;WordPress 相比其它网站程序&#xff0c;最突出的优势&#xff1a;主题模板多&#xff0c;插件多&#xff0c;相关技术文章多&#xff0c;只要你想到的功能&#xff0c;都可以通过插件或者代码实现。现在分享下WordPress常用代码&a…

组合关系比依赖关系耦合性更强

首先说明&#xff0c;在这里我把“关联”、“组合”、“聚合”关系都统一当做“组合”关系来说的&#xff0c;但实际上聚合&#xff08;has-a&#xff09;是关联的一种&#xff0c;组合&#xff08;cntains-a&#xff09;也是关联的一种。如果想要知道三者之间的区别&#xff0…

实验二.常用网络命令

常用网络命令一、实验目的与要求学习常用网络命令的使用方法熟悉主机的基本网络配置 二、预习与准备网络常用命令及基本用法。主机的基本网络配置信息。 三、 实验内容 1.Ping命令 2.ipconfig命令 3.arp命令&#xff08;地址转换协议&#xff09; 4.traceroute命令 5.route命令…

花咲の姫君(異時層ツキハ) / 花咲(异时层妖刀)

目录基本资料面板值&#xff08;无天冥加成&#xff09;天冥奖励战斗宣言&#xff08;VC&#xff09;被动效果Another Sense技能珠子回到人物索引 基本资料 NS(5★)卡池 (Ver 2.13.50)ミヤビノカミの典録 天冥属性武器防具属性耐性异常耐性NS天火枪护腕风30%10%个性枪、东方、…

目标检测SSD学习笔记

目标检测SSD学习笔记 SSD: Single Shot MultiBox Detector Abstract. 我们提出了一种使用单一深度神经网络来检测图像中的对象的方法。我们的方法&#xff0c;命名为SSD&#xff0c;将边界框的输出空间离散化为一组默认框&#xff0c;每个特征地图位置具有不同的纵横比和比例…

BasicSR入门教程

BasicSR入门教程 1.安装环境 由于安装好的其他环境已经有了pytorch&#xff0c;那么新建环境时直接拷贝该环境就好 //复制环境 conda create --name my-basicsr --clone mmediting克隆项目 git clone https://github.com/XPixelGroup/BasicSR.git安装依赖包 cd BasicSR pi…

MyBatis--缓存

MyBatis的缓存 MyBatis的一级缓存 一级缓存是SqlSession级别的&#xff0c;通过 同一个SqlSession 查询的数据会被缓存&#xff0c;下次查询相同的数据&#xff0c;就会从缓存中直接获取&#xff0c;不会从数据库重新访问 import com.bijing.mybatis.mapper.CacheMapper; im…