
ARFoundation入门到精通系列讲解
文章平均质量分 82
课程分两部分,前半部分结合官方案例讲解ARFoundtion的常用API。后半部分讲解实战开发:1.AR测距 2.AR室内和室外导航 3.第三方视角(和其他手机设备以及HoloLens设备)4.AR动物园 5.AR远程标注 等案例,课程每周更新。
DaLiangChen
专注 AR、VR、MR 行业。
展开
-
ARFoundation系列讲解-教程目录
一、教程目录ARFoundation快速入门-01简介ARFoundation快速入门-02环境搭建ARFoundation快速入门-03环境配置之iOSARFoundation快速入门-04环境配置之AndroidARFoundation快速入门-05ARKit设备支持列表ARFoundation快速入门-06ARCore设备支持列表ARFoundation快速入门-07检查设备支持ARFoundation快速入门-08平面检..........原创 2020-12-22 10:36:10 · 31179 阅读 · 84 评论 -
ARFoundation系列讲解 - 00 错误集合
1.BuildFailedException: "ARCore Supported" (Player Settings > XR Settings) refers to the built-in ARCore support in Unity and conflicts with the "ARCore XR Plugin" package....解决方法:原创 2020-12-22 10:25:11 · 8518 阅读 · 7 评论 -
ARFoundation系列讲解 - 01 简介
一、什么是ARFoundation我们知道,在2017年苹果和谷歌相继推出了ARKitSDK和ARCoreSDK,分别对应iOS设备和安卓设备。如果我们需要开发iOS和安卓两个平台的AR应用,就需要同时接入和维护ARKit和ARCore两个SDK,无疑增加了开发时间与成本。因此Unity开发了一个多平台API和实用程序,将ARKit和ARCore再次封装,为开发者提供一个支持ARCore,AR...原创 2020-05-06 20:54:49 · 9352 阅读 · 4 评论 -
ARFoundation系列讲解 - 02 环境搭建
一、安装Unity(本教程使用的Unity版本是 Unity2019.2.4全球版)1.Unity官网下载https://unity.cn2. 百度网盘下载Unity链接:https://pan.baidu.com/s/1uC7Cq8jG_KFiAgveFeK5iw 密码:xpww二、配置JDK和SDK1.File->Build Settings...2....原创 2020-05-07 23:20:08 · 7220 阅读 · 4 评论 -
ARFoundation系列讲解 - 03 ARSession and XROrigin
一、AR运行必要条件1.在ARFoundation可以使用之前,必须启用提供商插件。您可以在 "菜单栏->Edit->Project Settings.." ,为每个目标平台启用特定的插件。2.在Hierarchy 窗口中添加了ARSession 和 ARSessionOrigin 两个对象,所有AR功能都以这两个组件为基础。二、ARSession 组件ARSession 主要用来管理AR应用的状态和处理AR应用的生命周期。通过启用或禁用ARSession 来控...原创 2021-05-18 21:02:54 · 3808 阅读 · 7 评论 -
ARFoundation系列讲解 - 04 申请苹果开发者账号
申请苹果开发者账号是进入苹果生态系统的第一步。希望本文能够帮助您顺利完成申请过程,开始您的开发之旅。如果您在申请过程中有任何问题,欢迎在评论区留言,我们将尽力为您解答。原创 2020-12-27 00:24:27 · 1347 阅读 · 0 评论 -
ARFoundation系列讲解 - 05 环境配置之iOS(Unity6前版本)
一、导入插件1.点击Unity 菜单栏 Window–>Package Manager2.Packages->Advanced->Show preview package 将所有preview插件都显示出来3.Packages->AR Foundation->Install(可以根据自己的需求选择AR Foundation的版本)4.Pa...原创 2020-05-07 23:58:13 · 2366 阅读 · 3 评论 -
ARFoundation系列讲解 - 06 环境配置之iOS(Unity6后版本)
一、Unity中构建应用1. 点击File->Build Setings按钮2.添加需要打包运行的场景3.选择iOS平台后点击“Switch Platform” 按钮,切换平台。4.点击“PlayerSttings..”按钮5.填写公司名称、应用名称、设置应用Icon6.去掉“Multithreaded Rendering”选项7.填写相机权限描述,描述一定要清楚,不然上线审核容易驳回。如果没有添加描述则应用会闪退8.选择CPU架构为“ARM原创 2020-12-28 00:04:47 · 3585 阅读 · 5 评论 -
ARFoundation系列讲解 - 07 环境配置之Android
一、导入插件1.点击Unity 菜单栏 Window–>Package Manager2.Packages->Advanced->Show preview package 将所有preview插件都显示出来3.Packages->AR Foundation->Install(可以根据自己的需求选择AR Foundation的版本)4.Pa...原创 2020-05-07 21:00:35 · 4996 阅读 · 7 评论 -
ARFoundation系列讲解 - 08 真机调试之Android
发布Android应用方法一1.点击 File->Build Settings... 按钮。原创 2022-02-12 22:32:32 · 3907 阅读 · 0 评论 -
ARFoundation系列讲解 - 09 ARKit设备支持列表
一、ARKit版本历史2017年9月,iOS 11.0包含ARKit 1.0,支持环境光照估测、用户设置锚点、追踪状态更改、AR会话中断和恢复的事件通知等。2018年3月,iOS 11.3包含ARKit 1.5,新增垂直平面识别、图像识别、图像分辨率提升50%等。2018年9月,iOS 12包含ARKit 2.0,新增多个玩家联机、图像跟踪、3D对象识别、usdz格式文件和测距仪APP...转载 2020-05-08 11:04:07 · 3981 阅读 · 0 评论 -
ARFoundation系列讲解 - 10 ARCore设备支持列表
一、Android支持设备列表(https://developers.google.cn/ar/discover/supported-devices)Android (Google Play)ARCore 要求:运行在搭载 Google Play 应用商店的设备上 Android 7.0 或更高版本 (如下所示,个别型号需要更高的版本) 若你的应用为AR可选应用, 请修改 minS...原创 2020-05-08 00:13:34 · 8765 阅读 · 2 评论 -
ARFoundation系列讲解 - 11 检查设备是否支持AR功能
一、代码实现public class MyComponent { [SerializeField] ARSession m_Session; IEnumerator Start() { if ((ARSession.state == ARSessionState.None) ||(ARSession.state == ARSessionState.Chec...原创 2020-05-08 14:20:21 · 3484 阅读 · 6 评论 -
ARFoundation系列讲解 - 12 安装GoodlePlayServicesforAR一
一、介绍 ARCore的运行是依赖GoodlePlayServicesforAR 的,我们要运行ARCore功能就必须先安装GoodlePlayServicesforAR ,ARCore默认弹出的安装 GoodlePlayServicesforAR 的链接,在国内一般需要依赖其他第三方应用商城(比如应用宝、华为商城等)或者我们手动进行安装。有些时候我们没有安装这些应用商城。或者GoodlePlayServicesforAR 应用被第三方应用商城下架了,导致我们安装Goodle...原创 2020-12-29 20:48:21 · 5409 阅读 · 10 评论 -
ARFoundation系列讲解 - 13 安装GoodlePlayServicesforAR二
四、Unity中接入jar包1.新建Unity项目,并且导入ARFoundation(教程传送门)2.在Unity项目中新建一个目录命名为 "Plugins/Android" ,将上一节课导出的 ”appManager.jar“ 导入3.在 "Plugins/Android"目录下,新建一个名为”AndroidManifest.xml“ 的文件,配置如下<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:a原创 2021-01-11 23:37:20 · 5362 阅读 · 10 评论 -
ARFoundation系列讲解 - 14 查看Log
一、移动端查看Log的方式介绍查看Log是我们代码调试中非常重要的一个环节,有些时候我们程序运行得到的不是我们想象的结果、或者出现错误、闪退等现象。我们就需要通过Log信息来判断问题出在哪里?而查看log的方式有很多。比如:Android 设备可以通过Adb命令,或者直接下载一个 Android Studio 来查看、iOS设备可以使用 Xcode 软件来查看。或者使用我提供的一个Unity跨平台日记管理工具MxDebug 来查看、当然还有其他第三方的插件可以使用。二、几种查看Log方式比较..原创 2020-12-27 00:14:49 · 2328 阅读 · 2 评论 -
ARFoundation系列讲解 - 15 Unity编辑器中调试AR程序
像我们使用 ARCoreXRPlugin For Unity或者 ARKit XR Plugin For Unity 都有远程调试功能方便我们调试代码。而ARFoundation远程调试功能,正在开发当中。所以从 UnityAssetstore 中购买了一个第三方开发的AR Foundation Editor Remote远程调试工具,他可以通过Wi-Fi或有线连接支持AR功能的移动设备上进行调试。一、官方介绍Fast iterations are crucial for ...原创 2020-10-12 00:02:06 · 3598 阅读 · 9 评论 -
ARFoundation系列讲解 - 16 获取CPU上的相机图像
一、介绍本章节将讲解通过API获取CPU上的图像将其装换为RGBA格式,将转换后的图像显示在 RawImage 上,并显示有关图像的信息。这和ARCameraBackground 组件不同,后者只是在屏幕上显示摄像机图像。获取摄像机画面其实对于我们需要接入其他第三方SDK很有用。(比如:二维码识别、人脸识别、车牌识别、手势识别 等第三方SDK都需要我们传入视频画面)二、案例讲解这个案例在ARFoundation Samples示例工程中有,叫做“CpuImages”。1.课前必备...原创 2021-05-19 17:48:30 · 2606 阅读 · 13 评论 -
ARFoundation系列讲解 - 17 ARKitCoachingOverlayView
一、简介 ARKitCoachingOverlayV有序列表iew 是用来引导用户进行AR操作,默认提供了4种类型的引导(引导用户移动设备、引导用户继续移动设备、引导用户放慢设备移动速度、引导用户如何重定位)。显示该视图,表明用户应该开始移动设备。显示该视图,表明用户应该继续移动手机或更改移动手机的速度:显示该视图,表明中断后重新定位:...原创 2021-12-27 16:23:06 · 2988 阅读 · 1 评论 -
ARFoundation系列讲解 - 20 Scale
一、简介 本节将讲解如何通过设置AR Camera,来改变场景中所有AR虚拟对象的大小和角度。在“ARFoundation系列讲解 - 26 移动和旋转模型” 课程中有讲过如何设置单个选中的AR虚拟对象的大小和角度。二、案例(本案例在 ARFoundationSamples 有示例)1.案例环境Unity2021.2.7f1c1 AR Foundation 4.2.1 ARCore XR Plugin4.2.1 ARKitXR Plugin 4.2.12.新建一个空...原创 2022-01-21 14:05:30 · 3752 阅读 · 6 评论 -
ARFoundation系列讲解 - 21 平面检测一
一、准备工作1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉2.Hierarchy->XR->AR Session Origin创建AR Session Origin组件3.Hierarchy->XR->AR Session 创建AR Session组件二、平面检测管理您可以指定检测模式,可以是水平,垂直或两者兼有。一些平台需要额外的工作来执行垂直平面检测,因此,如果仅需要水平平面,则应禁用垂直平面检测。..原创 2020-05-09 18:36:57 · 6218 阅读 · 4 评论 -
ARFoundation系列讲解 - 22 平面检测二
六、更改可视化平面样式(请参考ARFoundation Samples)1.新建一个Shader命名为FeatheredPlaneShader 代码如下Shader "Unlit/FeatheredPlaneShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _TexTintColor("Texture Tint Color", Color) = (1,1,1,1) _PlaneColor("Plane Co..原创 2020-05-23 17:24:29 · 3771 阅读 · 5 评论 -
ARFoundation系列讲解 - 23 点云
一、什么是点云 AR设备使用摄像机捕获图像中的视觉差异点(如颜色、纹理、灰度),从中挑选出差异较大的点来,这些点被称为特征点,特征点在机器视觉中可以被解析成特定的位置信息。而海量的特征点则构成了点云。二、显示点云1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉2.Hierarchy->XR->AR Session Origin创建AR Session Origin组件3.Hierarchy->XR->...原创 2020-10-21 20:20:07 · 2924 阅读 · 0 评论 -
ARFoundation系列讲解 - 24 锚点
一、添加平面检测和平面可视化请参考 ARFounnation快速入门-08平面检测 案例二、添加射线检测1.在AR Session Origin 组件上添加ARRaycastManager 脚本原创 2020-05-11 19:45:12 · 4257 阅读 · 4 评论 -
ARFoundation系列讲解 - 25 Raycasting
一、Raycasting简介Raycasting:直译为射线投射,指的是从三维空间,往一个方向发射一条无限长的射线,直到碰撞到场景中三维物体后者返回碰撞到物体的信息。using System.Collections.Generic;using UnityEngine;using UnityEngine.XR.ARFoundation;using UnityEngine.XR.ARSubsystems;/// <summary>射线投射测试</summary>[R原创 2020-06-17 10:52:45 · 2467 阅读 · 0 评论 -
ARFoundation系列讲解 - 26 移动和旋转模型
一、简介 本篇文章将讲解我们如何移动模型和旋转模型(这里使用的是单指按住模型后进行模型拖动,双指进行模型的旋转。可以参考“宜家App”的效果)原创 2021-04-06 15:45:18 · 2946 阅读 · 16 评论 -
ARFoundation系列讲解 - 27 ARWorldMap一
一、介绍 ARWorldMap是ARKit特有的功能,可用于保存扫描区域。以后重新定位到保存的世界地图。也可以用于多个设备同步到同一个功能空间。二、官方案例using System.Collections;using System.Collections.Generic;using System.IO;using Unity.Collections;using UnityEngine;using UnityEngine.UI;using UnityEngine...原创 2020-11-09 19:43:48 · 3144 阅读 · 12 评论 -
ARFoundation系列讲解 - 28 ARWorldMap二
四、保存和加载平面数据与锚点数据1.新建一个脚本命名为ARWorldMapController 代码如下:using System.Collections;using System.Collections.Generic;using System.IO;using Unity.Collections;using UnityEngine;using UnityEngine.UI;using UnityEngine.XR.ARFoundation;using UnityEngine.X.原创 2020-12-22 23:49:10 · 2172 阅读 · 5 评论 -
ARFoundation系列讲解 - 29 ARWorldMap三
六、加载自定义模型1.在 Hierarchy 面板中单击右键,再弹出面板中选择 3D Object-Cube。创建一个Cube游戏对象,并调整比例为(0.1,0.1,0.1)。将其制作成为预设体后从 Hierarchy 面板中删除。2.按照上面的方法,分别制作一个 Cube、Sphere、Capsule 预设体。3.新建三个Button 对象,用来切换 AnchorPrefab。4.新建一个C#脚本,命名为“AnchorDataManager.cs”。用来将锚点数据保存到配置表.原创 2022-02-23 20:13:36 · 1467 阅读 · 7 评论 -
ARFoundation系列讲解 - 30 Collaborative Session(协同会话)
一、介绍 Collaborative Session(协同会话),是ARKit特有的功能,在ARKit3.0版本以后提供可以实时多人共享AR体验的功能。基于 Multipeer-Connectivety 等近距离通信框架技术。因此,所有用户都是平等的,没有主从的概念,用户可以可以随时加入,也可以随时退出,通过CollaborationData,实现了锚点、环境信息数据实时共享。二、实现平面检测1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉...原创 2021-03-14 15:11:18 · 1367 阅读 · 3 评论 -
ARFoundation系列讲解 - 31 光照估计
一、介绍 光照估计是一个很重要的功能,它能让虚拟的3D对象具有与真实场景相同的光照效果。让虚拟物体能否很好的融入现实背景中。 (ps:????图片来源于网络,如有侵权请联络我)二、案例1.打开Unity新建一个空场景,将场景中默认的“Main Camera”删除掉2.Hierarchy->XR->AR Session Origin创建AR Session Origin组件3.Hierarchy->X...原创 2020-11-11 20:50:55 · 1853 阅读 · 4 评论 -
ARFoundation系列讲解 - 32 Environment probe
一、介绍 Environment Probe(环境探针),环境反射技术是一个很重要的功能,它能让虚拟的3D对象反射真实世界中的环境信息,让虚拟物体能很好的融入现实背景中。二、案例1.课程案例使用的开发环境Unity 2021.1.6f1 XCode 12.4(12D4e) AR Foundation 4.1.7 ARCore XR Plugin 4.1.7 ARKit XR Plugin 4.1.72.导入ARFoundation、ARKit、ARCore(这一步不懂...原创 2021-05-09 17:48:03 · 2109 阅读 · 6 评论 -
ARFoundation系列讲解 - 33 添加阴影
一、灯光设置二、Quality设置三、添加阴影1.添加阴影Shader(如下)Shader "ChuckLee/ARShadow"{ Properties { _ShadowColor ("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags { "RenderType"="Transparent" "Queue"="...原创 2020-07-10 17:25:22 · 1330 阅读 · 0 评论 -
ARFoundation系列讲解 - 34 AR看车一
想看梦想中的保时捷停在你家里的样子吗 保时捷AR看车软件一、介绍本章节是制作一个AR看车的综合案例,对前面章节学习的知识点进行一个综合运用。课程中所有涉及到的资源和代码在课程最后会提供。(学习本章节,您将会学到以下知识点)1.讲解三维软件中是如何制作动画效果,和如何导入Unity中使用2.识别地面,点击屏幕后在地面上放置一个汽车模型3.单手按住汽车模型移动位置。双指拖动旋转汽车角度4.点击Ui播放汽车开关车门、后备箱、车灯动画5.更改汽车颜色二、动画制作...原创 2021-04-15 17:26:19 · 2858 阅读 · 7 评论 -
ARFoundation系列讲解 - 35 AR看车二
四、将模型导入Unity1.新建一个Unity空工程2.在Assets面板中点击鼠标右键,在弹出菜单中选择Import New Asset..,导入我们之前制作好的Fbx五、设置模型材质1.材质这里我使用的是一个叫Car Paint Shaders Asset的材质包(可以在Unity资源商店找到)2.根据自己的喜好进行颜色搭配(配好颜色的效果如下)六、设置动画1.导出模型的时候我是按照动画进行分组,将模型拆分导出。大家可以拆分导出也可以打组导...原创 2021-04-15 19:48:03 · 1462 阅读 · 1 评论 -
ARFoundation系列讲解 - 36 AR看车三
七、配置AR开发环境1.导入ARFoundation插件(请查看前面课程)2.设置Android开发环境(请查看前面课程)3.设置iOS开发环境(请查看前面课程)4.新建一个空场景,将Main Camera删除掉5.在Hierarchy面板中右键->XR->AR Session Origin创建“AR Session Origin”组件6.在Hierarchy面板中右键->XR->AR Session创建“AR Session”组件7...原创 2021-04-15 19:58:57 · 1340 阅读 · 7 评论 -
ARFoundation系列讲解 - 37 AR看车四
八、制作准心模型1.在Ps中制作一张准心样式贴图(我会在课程素材中提供)2.新建一个材质球命名为“AR Placement Indicator”,将上面的准心贴图贴在材质球上,并且将材质球的Shader改成“UI/Unit/Text”3.新建一个空对象命名为“Placement Indicator”4.在Placement Indicator对象下,创建一个Quad。角度设置为(90,0,0).大小设置为(0.25,0.25,0.25)。将AR Placement Indic...原创 2021-04-15 20:11:52 · 1490 阅读 · 8 评论 -
ARFoundation系列讲解 - 38 AR看车五
十一、更改汽车颜色1.我在Ps中制作了一个简单的UI,当点击UI外面的环形时更改汽车的颜色,当点击UI中间按钮的时候播放打开或开启车门动画。2.将UI导入到Unity中原创 2021-07-16 21:21:57 · 1378 阅读 · 8 评论 -
ARFoundation系列讲解 - 39 AR看车六
十二、播放模型动画1.这里我们要做的是第一次点击中心按钮播放打开车门动画,第二次点击中心按钮关闭车门动画。2.新建一个脚本,命名为“AnimationManager.cs”。(代码如下)using System.Collections.Generic;using UnityEngine;/// <summary>动画管理</summary>public class AnimationManager : MonoBehaviour{ /// <s.原创 2021-07-18 23:18:22 · 1241 阅读 · 13 评论 -
ARFoundation系列讲解 - 40 AR家具案例一
一、介绍本章节是制作一个AR家具的综合案例,对前面章节学习的知识点进行一个综合运用。课程中所有涉及到的资源和代码在课程最后会提供。(学习本章节,您将会学到以下知识点)1.Unity 中制作动画2.识别地面,点击屏幕后在地面上放置一个家具模型3.单手按住家具模型移动位置。双指拖动旋转家具角度4.放置多个家具模型和选择编辑家具模型5.阴影的添加6.模型选中特效效果的制作7.UI的搭建和Ui事件的监听8.了解有限状态机二、素材下载链接: https://pan.b.原创 2021-04-26 15:17:32 · 5695 阅读 · 24 评论