(三)Unity开发Vision Pro——入门
3.入门
1.入门
本节涵盖了几个重要主题,可帮助您加快visionOS 平台开发速度。在这里,您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接,以及 PolySpatial XR 开发时的一些开发最佳实践。
2.开发与迭代
有关先决条件、开发、迭代、部署和调试的信息,请参阅开发和迭代。
3.创建新项目
这些指南提供了 VisionOS 入门的分步说明。
- 在从头开始新的visionOS项目中,您将找到一个分步教程,指导您从头开始安装、设置和部署一个简单的Unity应用程序以定位visionOS和Apple Vision Pro。
- 在从沉浸式应用模板启动新的visionOS 项目中,您将找到使用沉浸式应用模板设置新项目的分步教程。
- 在示例内容:了解如何使用visionOS 和应用程序示例中,您会发现各种垂直切片演示项目,解释如何使用PolySpatial 技术进行visionOS 开发。
4.移植现有项目
将现有 Unity 项目移植到 visonOS 时,需要考虑几个因素。最大的限制是不支持某些核心 Unity 功能,而其他功能则提供减少的功能集。此外,输入不同,处理能力和支持的组件也会有所不同。有时您必须开发自己的系统来支持您独特的项目功能并解决这些限制。
您可以找到有关将 VR 体验移植到 VisionOS 的信息,了解沉浸式应用程序当前支持哪些Unity 功能和组件,或者如何使用项目验证来获得有用的编辑器内帮助来移植项目。有关输入和其他开发主题的更多信息,请查看参考文档。
3.1 从头开始创建VisionOS项目
1.有关硬件和 Unity 版本要求的更多信息,请访问要求
2.确保切换visionOS的构建平台(实验)
3.1.1 完全沉浸式虚拟现实
确保您已安装xr.sdk.visionos软件包
1)选择编辑 > 项目设置...
2)打开XR 插件管理器菜单
3)选中视觉操作系统复选框
4)选择文件 > 构建设置...
>添加场景(SampleScene)
>选择构建。
您的应用程序将渲染一个完全沉浸式的空间,您应该看到 Unity 天空盒(或您的应用程序)在 Apple Vision Pro 模拟器中运行。
有关更多信息,请参阅完全沉浸式 VR文档
3.1.2 混合现实和共享空间
确保已安装com.unity.polyspatial、com.unity.polyspatial.visionos和com.unity.polyspatial.xr软件包
1.在场景中创建体积相机
a.打开场景工具/XR Building Blocks 菜单,然后单击体积相机
b.创建一个空游戏对象并添加体积相机组件
2.将体积相机配置为有界或无界模式并调整尺寸
a.尺寸将调整内容的渲染比例
b.对于有界应用程序,请确保某些内容在体积相机的尺寸内可见
3.打开项目设置 > PolySpatial ...
>选中启用 PolySpatial 运行时框
无界应用程序
对于想要使用 ARKit 功能的无界应用程序,您需要在 XR 插件管理设置中启用visionOS,并确保您的项目中有AR Foundation 包。对于 ARKit Hands,请确保您的项目中有XR Hands 包。
1.选择文件 > 构建设置...
>添加场景(SampleScene)
>选择构建。
对于有界应用程序,您的应用程序可以与共享空间中的其他应用程序一起存在,对于无界应用程序,您的应用程序将是唯一可见的内容。
注意:Apple Vision Pro 模拟器不提供任何 ARKit 数据,因此平面、网格、跟踪手等将无法工作。
有关更多信息,请参阅PolySpatial MR 应用程序文档
3.2 示例
Unity 的PolySpatial 示例为 Unity 中的 VisionOS 开发提供了一个起点,该起点围绕具有有限体积和无限体验的特定用例。
3.2.1 有界体积样本
有针对性的输入 - 气球画廊
目标输入 - 气球画廊是一款迷你游戏,演示如何使用间接捏合和直接(戳)输入来定位有界体积场景中的内容。
3.2.1.1 动态体积相机 - 角色跑步者
动态体积相机- 角色跑者是一款迷你游戏,演示了在有界体积中动态重新定位体积相机的能力。奔跑者迷你游戏会跟随角色在一个大于有限体积范围的环境中导航。
3.2.1.2 调试界面
Debug UI场景允许用户测试各种输入类型;直接(戳)、直接捏、间接捏以及使用调试 UI分析数据。
3.2.1.3 操纵
操纵场景允许用户在有界体积内操纵具有不同碰撞器形状的各种对象。
3.2.1.4 用户界面
UI场景为用户提供了有界应用程序中使用的常见空间 UI 的示例。这包括按钮、滑块、切换按钮和下拉菜单等元素。
3.2.1.5 项目启动器
项目启动器场景允许用户使用轮播风格的空间 UI 从有限体积启动各种 Unity 场景。
3.2.2无限样本
3.2.2.1 图像追踪
图像跟踪场景允许用户在无限制的应用程序中使用预定义的、唯一的图像标记生成内容。
3.2.2.2 混合现实
混合现实场景允许用户在无限制的应用程序中使用自定义 ARKit 手势生成内容。它还可视化物理环境中的平面数据信息** **。
相关文章:

(三)Unity开发Vision Pro——入门
3.入门 1.入门 本节涵盖了几个重要主题,可帮助您加快visionOS 平台开发速度。在这里,您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接,以及 PolySpatial XR 开发时的一些开发最佳实践。 2.开发与迭代 有关先决条件、开…...

召集令:CloudQuery 社区有奖征文活动来啦!
CloudQuery 社区第一期征文活动来袭!!!只要你对 CloudQuery 产品感兴趣,或者是希望了解 CQ ,都可以来参加,在本期活动中,我们也为大家准备了多种主题供你选择,CQ 使用案例、版本对比…...

【傅里叶级数与傅里叶变换】数学推导——1、基础知识点回顾及[Part1:三角函数的正交性]介绍
文章内容来自DR_CAN关于傅里叶变换的视频,本篇文章提供了一些基础知识点,比如三角函数常用的导数、三角函数换算公式等。 文章全部链接: 基础知识点 Part1:三角函数系的正交性 Part2:T2π的周期函数的傅里叶级数展开 P…...

BUUCTF [MRCTF2020]Ezpop解题思路
题目代码 Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier {protected $var;publi…...

【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树
一、驱动程序分离的思想 【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序的代码存在不少弊端:移植性差…...
深度学习中的python语法笔记总结
解释 torch中的 .clamp(min0) 在PyTorch中,torch.clamp将张量中的元素限制在指定的范围内。 torch.clamp(min0)会将张量中的每个元素与0进行比较,并将小于0的元素替换为0。其他大于等于0的元素则保持不变。 clamp函数原理 def clamp(x, lower, upper)…...

Reids 的整合使用
大家好 , 我是苏麟 , 今天带来强大的Redis . REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选…...

Vue3 —— watchEffect 高级侦听器
该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>,且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect,它的类型是: function watchEffect(effect: (onCleanup: OnCleanup) > void,o…...
Java异步子线程读取主线程参数的若干好玩场景
在开发过程中,我们难免会因为性能、实时响应等,需要异步处理的一些事务,并且在子线程中有时我们还需要获取主线程相关的参数。下面有若干方案可以实现上述场景,但会出现一定的问题。 场景1-基础场景 在主线程中开启子线程&#x…...
Android 视频开发
在 Android 平台上进行视频开发,您需要掌握以下关键知识点,以确保能够成功地开发和调试视频应用程序: Android视频架构: 了解 Android 的视频系统架构,包括视频捕获、编码、解码、渲染和显示等。 视频格式和编解码&am…...

【计算机网络篇】UDP协议
✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! UDP协议 1,UDP 简介 UDP(User Datagram Protocol)是一种无连…...
LeetCode 2682. 找出转圈游戏输家
【LetMeFly】2682.找出转圈游戏输家 力扣题目链接:https://leetcode.cn/problems/find-the-losers-of-the-circular-game/ n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i …...

数据结构单链表
单链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前,我们是写了顺序表,顺序表就是类似一个数组的东西࿰…...

自定义WEB框架结合Jenkins实现全自动测试
自定义WEB框架结合Jenkins实现全自动测试 allure生成 allure生成 1.allure–纯命令运行 -固定的–稍微记住对应的单词即可。2 安装,2个步骤: 1.下载allure包,然后配置环境变量。 https://github.com/allure-framework/allure2/releases/tag/2.22.4 2.在…...

PHP加密与安全的最佳实践
PHP加密与安全的最佳实践 概述 在当今信息时代,数据安全是非常重要的。对于开发人员而言,掌握加密和安全的最佳实践是必不可少的。PHP作为一种常用的后端开发语言,提供了许多功能强大且易于使用的加密和安全性相关函数和类。本文将介绍一些P…...

SQL Server数据库无法连接
问题如下: 原因:sql server服务器未开启 解决方法:以管理员身份打开cmd,输入:net start mssqlserver。...

videojs 播放视频
背景:在项目中使用第三方插件videojs进行播放视频,点击事件更改播放的数据源。 一、视频相关理论 (一)、背景 网络流媒体的呈现形式分为两种:直播点播 (二)、流媒体的3种协议 分类:HTTPHLSRTMP定义:基于HTTP的流媒体…...
vue强制刷新变量
在前端开发中,我们经常需要变量的值实时响应到界面上。Vue就是一个非常强大的前端框架,它的数据绑定能够非常好地实现变量与界面的同步更新。但是有时候,我们需要强制刷新某个变量的值,以便界面能及时地反映出它的变化。本文将介绍…...
[QCA6174]QCA6174 5G WiFi DFS处理逻辑分析及雷达误检率高优化规避
DFS认证信息 WIFI DFS测试要求 Master设备需要测试的项目 4.6.2.1 Channel Availability Check 信道可用性检查 定义其作为雷达脉冲检测机制,当雷达脉冲出现时所占用的信道需要能被设备检测到已经被占用。当相关信道未被占用时,这些信道被称为Avaliable Channel可用信道 …...

预防SQL漏洞注入和规避网络攻击
前言: 虽然近些年SQL注入已经被各类的安全开发框架规避了绝大部分,但SQL注入作为一种最原始的攻击手段之一,破坏力仍然十分强大,因为它直捣黄龙数据中心。所以未雨绸缪,各位不可不重视。 预防SQL注入方法措施: 服务器…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...