AugmentedReality之路-通过蓝图启动AR相机(2)

本文实现打开AR相机和关闭AR相机功能,在主界面点击Start AR按钮后打开AR相机,在主界面点击Stop AR按钮后关闭AR相机
在这里插入图片描述

1、启动AR相关插件

通过Edit->Plugins启用AugmentedReality下面的所有插件
在这里插入图片描述

2、自定义Pawn

在Content->ARBase目录右键,Blueprint Class->Pawn创建一个自定义Pawn,命名为ARPawn
在这里插入图片描述
给ARPawn添加1个Camera组件
在这里插入图片描述
在Content->ARBase目录右键,Blueprint Class->Game Mode Base 创建一个自定义Game Mode Base,命名为ARGameModeBase,同时将ARGameModeBase的Default Pawn Class指定为ARPawn
在这里插入图片描述
通过Edit->Project Settings->Maps & Modes,将Default GameMode设置为ARGameMode
在这里插入图片描述

3、创建ARSessionConfig

在ARBase目录右键,Miscellaneous->Data Asset,搜索ARSessionConfig创建ARSessionConfig
在这里插入图片描述

4、启动AR相机

在MainPage中,选择Graph,在FUNCTIONS中点击加号,添加1个函数,取名为StartAR
在这里插入图片描述
搜索StartAR,调用AugmentedReality中的StartARSession函数
在这里插入图片描述
其中SessionConfig选择刚刚创建的ARSessionConfig
在这里插入图片描述

5、隐藏场景中的天空球等物体,显示相机拍摄内容

场景中的Floor不需要,删除Floor
在这里插入图片描述
在MainPage中定义一个函数,用于显示隐藏天空球,函数接收一个输入参数Visible
在这里插入图片描述
给场景中的天空元素添加Tag,Tag命名为"SkySphere",方便在蓝图中找到这些Actor,总共包含ExponentialHeightFog,SkyAtmosphere,SM_SkySphere,VolumetricCloud这4个Actor
在这里插入图片描述
实现ShowHideSkySphere函数
在这里插入图片描述
在StartAR后隐藏SkySphere
在这里插入图片描述

6、实现界面中的Start AR功能

给Btn_Start_AR按钮添加On Clicked回调,在On Clicked之后调用自定义的Start AR函数
在这里插入图片描述

7、实现界面中的Stop AR功能

实现自定义的StopAR函数
在这里插入图片描述
给Btn_Stop_AR按钮添加On Clicked回调,在On Clicked之后调用自定义的Stop AR函数
在这里插入图片描述

8、Android申请相机权限

直接调用AugmentedReality的StartARSession函数会黑屏,因为Android相机权限需要运行时动态申请
1.创建1个自定义事件StartAREvent,判断是否是Android平台,如果是则请求相机权限,如果不是则直接启动AR相机
在这里插入图片描述
2.检查相机权限,如果已经授予权限,直接启动AR相机,如果没有授予权限,则请求相机权限
在这里插入图片描述
3.无论是否授予权限,都会回调OnPermissionGranted事件,已授予的权限存储在GrantResults中,因为这里只申请了1个权限,所以判断GrantResults的长度大于0,就表示授予权限了,授权后打开AR相机
在这里插入图片描述
4.在Btn_Start_AR按钮的On Clicked之后调用自定义的StartAREvent函数
在这里插入图片描述

9、解决Android打开AR相机黑屏

取消对Vulkan的支持即可
在这里插入图片描述

10、支持的机型

ARKit支持iOS所有机型,ARCore只支持Android部分机型,具体型号参考官方说明:
支持ARCore的设备: https://developers.google.com/ar/devices?hl=zh-cn

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

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

相关文章

iOS开发进阶(十一):ViewController 控制器详解

文章目录 一、前言二、UIViewController三、UINavigationController四、UITabBarController五、UIPageViewController六、拓展阅读 一、前言 iOS 界面开发最重要的首属ViewController和View,ViewController是View的控制器,也就是一般的页面,…

基于ssm网上服装销售系统论文

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于网上服装销售系统系统当然也不能排除在外,随着网络技术的不断成熟,带动了网上服装销售系统系统,它彻底…

shell脚本发布docker springboot项目示例

docker、git、Maven、jdk8安装略过。 使git pull或者git push不需要输入密码操作方法 约定: 路径:/opt/springbootdemo, 项目:springbootdemo, 打包:springbootdemo.jar, docker容器名字&#x…

Android ImageView以及实现截图

实现效果 截图前 截图后 代码 package cn.jj.huaweiad;import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.ViewGro…

硬件项目中的turn-key 是啥意思?案例应用

在硬件项目中,turn-key是指一种工程项目模式,即交钥匙工程。这种模式通常由独立的第三方软件厂商直接与芯片厂商合作,基于芯片厂商的硬件方案和协议,集成成熟的上层软件和应用,并整套提供给电子产品生产厂商。这种模式…

LLM之RAG实战(三十五)| 使用LangChain的3种query扩展来优化RAG

RAG有时无法从矢量数据库中检索到正确的文档。比如我们问如下问题: 从1980年到1990年,国际象棋的规则是什么? RAG在矢量数据库中进行相似性搜索,来查询与国际象棋规则问题相关的相关文档。然而,在某些情况下&#xff0…

平台介绍-搭建赛事运营平台(3)

上文介绍了品牌隔离的基本原理,就是通过不同的前端和微服务来实现。但是确实很多功能是类似的,所以从编程角度还是有些管理手段的。 前端部分:前端部分没有什么特别手段,就是两个独立的项目工程,分别维护。相同的部分复…

I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

网络驱动是 linux 里面驱动三巨头之一, linux 下的网络功能非常强大,嵌入式 linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动,本章我们就来学习一下linux 里面的网络设备驱动。 嵌入式网络简介 网络硬件接口 首先…

如何降低 BlueNRG-LPS 的开机峰值电流

1. 前言 BlueNRG 系列存在开机瞬间会出现很大的峰值电流的现象,预计有 20ma 左右。针对此现象,经常有客户询问该峰值电流会不会导致设备工作异常?会不会导致电池使用寿命缩短(考虑到一般纽扣电池能承受的峰值电流大概在 15ma 左右…

深度剖析MySQL锁:解开数据库并发控制的神秘面纱

MySQL 锁是 MySQL 数据库管理系统中为了实现并发控制和数据一致性的机制。在多用户并发访问数据库时,锁可以确保多个事务在对同一数据进行操作时不会相互干扰,以防止数据不一致的现象发生。 一、锁分类 MySQL支持多种类型的锁,主要包括…

定时器的原理和应用

#include<reg51.h> unsigned char s[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned char count0,num0; void inittimer() {TMOD0x01;//0000 0001TH0(65536-50000)/256; //定时50ms50000us 2562^8 初值向右边移动8位TL0(65536-50000)%256;ET01;//开启定…

多源统一视频融合可视指挥调度平台VMS/smarteye系统概述

系统功能 1. 集成了视频监控典型的常用功能&#xff0c;包括录像&#xff08;本地录像、云端录像&#xff08;录像计划、下载计划-无线导出&#xff09;、远程检索回放&#xff09;、实时预览&#xff08;PTZ云台操控、轮播、多屏操控等&#xff09;、地图-轨迹回放、语音对讲…

windows 下用使用api OCI_ConnectionCreate连接oracle报错 TNS:无法解析指定的连接标识符

背景&#xff0c;两台服务器系统一样&#xff0c;oracle版本一样&#xff0c;其中一台服务器在运行程序的时候报错 TNS:无法解析指定的连接标识符 但是PL/SQL可以正常连接&#xff0c;怀疑是oracle配置文件的原因 tnsnames.ora配置文件大概作用&#xff1a;是Oracle客户端的网…

实时数仓之实时数仓架构(Hudi)

目前比较流行的实时数仓架构有两类&#xff0c;其中一类是以FlinkDoris为核心的实时数仓架构方案&#xff1b;另一类是以湖仓一体架构为核心的实时数仓架构方案。本文针对FlinkHudi湖仓一体架构进行介绍&#xff0c;这套架构的特点是可以基于一套数据完全实现Lambda架构。实时数…

基于 StarRocks 的风控实时特征探索和实践

背景 金融风控特征是在金融领域中用于评估和管理风险的关键指标。它们帮助金融机构识别潜在风险&#xff0c;降低损失&#xff0c;并采取措施规避风险。例如&#xff0c;用户最后一次授信提交时间就是一个重要的金融风控特征。 金融风控实时特征场景是一个典型的大数据实时业务…

【人工智能Ⅱ】实验4:Unet眼底血管图像分割

实验4&#xff1a;Unet眼底血管图像分割 一&#xff1a;实验目的与要求 1&#xff1a;掌握图像分割的含义。 2&#xff1a;掌握利用Unet建立训练模型。 3&#xff1a;掌握使用Unet进行眼底血管图像数据集的分割。 二&#xff1a;实验内容 1&#xff1a;用Unet网络完成眼底血…

基于SpringBoot和Vue的在线视频教育平台的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的在线视频教育平台的设计与实现 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&…

STM32时钟简介

1、复位&#xff1a;使时钟恢复原始状态 就是将寄存器状态恢复到复位值 STM32E10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。 复位分类&#xff1a; 1.1系统复位 除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外,系统 复位将复位…

Redis中的LRU算法分析

LRU算法 概述 Redis作为缓存使用时&#xff0c;一些场景下要考虑内容的空间消耗问题。Redis会删除过期键以释放空间&#xff0c;过期键的删除策略 有两种: 1.惰性删除:每次从键空间中获取键时&#xff0c;都检查取得的键是否过期&#xff0c;如果过期的话&#xff0c;就删除…

【Java面试题】Redis上篇(基础、持久化、底层数据结构)

文章目录 基础1.什么是Redis?2.Redis可以用来干什么&#xff1f;3.Redis的五种基本数据结构&#xff1f;4.Redis为什么这么快&#xff1f;5.什么是I/O多路复用&#xff1f;6.Redis6.0为什么使用了多线程&#xff1f; 持久化7.Redis的持久化方式&#xff1f;区别&#xff1f;8.…