Nreal眼镜的开发与部署(二)

2024-02-21 01:20
文章标签 部署 开发 眼镜 nreal

本文主要是介绍Nreal眼镜的开发与部署(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Nreal简单的开发:

1.添加Nreal的摄像机

在新建的场景里删掉原来的摄像机,把SDK里的Prefab摄像机NRCameraRig预制体拉到场景中
在这里插入图片描述
NRCameraRig上的属性
在这里插入图片描述
①操作系统的状态设置,一般是配置好使用默认的,配置里包括地面监测、图像跟踪等等
②该组件用于设置相机参数,更新设备模式,当TrackingType选择Tracking6Dof,设备可以前后左右移动并旋转;当TrackingType选择Tracking3Dof,只能原地旋转
③应用app的管理,里面是对手柄控制器操控监听
④Nreal虚拟显示器,保持默认就好


2.添加手柄操控交互

把NRInput预制体拉到场景中
在这里插入图片描述
NRInput上的属性
在这里插入图片描述
需要将Override Camera Center那一项值更改为CenterCamera,只需要将NRCameraRig下的CenterCamera拖放进来就行了
在这里插入图片描述
其他的值默认不需要改变,已经配置好了。


 

如何与UI交互

在Canvas上,需要添加CanvasRaycastTarget脚本,添加之后,该Canvas下的所有UI组件都可以手柄进行交互
在这里插入图片描述
在这里插入图片描述


如何使用AR图片识别功能在这里插入图片描述

在这里插入图片描述
①将NRTrackableImageTarget预制体拖到场景中
②场景中放置识别图片后出来的模型(例如:Cube)
在这里插入图片描述
③新建个空物体,挂载脚本TrackableFoundTest
在这里插入图片描述
④Observer的值为NRTrackableImageTarget,Obj的值为物体Cube,这就好了

打开TrackableFoundTest脚本,只有几行代码,通俗易懂。这几行代码就是识别后在识别图上显示物体。在此基础上我添加了手柄与物体的交互,手柄指向物体摁下Trigger键,物体随机变色,需要引入using NRKernal命名空间

using NRKernal;
using UnityEngine;public class TrackableFoundTest : MonoBehaviour
{public TrackableObserver Observer;public GameObject Obj;void Start(){
#if !UNITY_EDITORDestroy(GameObject.Find("EmulatorRoom"));
#endifObj.SetActive(false);Observer.FoundEvent += Found;Observer.LostEvnet += Lost;}private void Update(){if (NRInput.GetButtonDown(ControllerButton.TRIGGER)){Obj.GetComponent<Renderer>().material.color = new Color(Random.value, Random.value, Random.value);}}private void Found(Vector3 pos, Quaternion qua){Obj.transform.position = pos+new Vector3(0,0.15f,0);Obj.transform.rotation = qua;Obj.SetActive(true);}private void Lost(){Obj.SetActive(false);}
}

 

下一章是介绍如何部署到Nreal眼镜中

请看Nreal眼镜开发与部署(三)

这篇关于Nreal眼镜的开发与部署(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730161

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3