(三)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注入方法措施: 服务器…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...