Unity Apple Vision Pro 保姆级开发教程-环境配置、导入 PolySpatial 案例、程序发布到设备

news2024/11/27 20:25:35

视频教程

Unity 环境配置、导入 PolySpatial 案例、程序发布到设备


Unity Vision Pro 中文课堂教程地址:

Unity3D Vision Pro 开发教程【保姆级】 | Unity 中文课堂


教程说明

这期教程我将介绍使用 Unity 开发 Apple Vision Pro 应用所需要的 Unity 环境配置,以及如何导入 PolySpatial 样例场景、将 Unity 程序打包到头显中运行。

开发前期准备(软硬件要求,开启 vision pro 开发者模式和 Wi-Fi 无线调试功能,Xcode 程序打包至头显):

打开开发者选项,XCode无线调试发布

PolySpatial 官方文档:https://docs.unity3d.com/Packages/com.unity.polyspatial.visionos@1.3/manual/index.html

(需要时刻关注开发者文档,因为 PolySpatial 处于早期阶段,在未来可能有些地方会发生变动)

创建工程

要求

  • 安装 visionOS Build Support

  • 确保unity 账号为授权pro ,输入授权码激活授权

选择URP 模版 创建项目

Build Settings 里切换 visionOS

在 Unity 的 File>Build Settings 里将打包发布平台切换成切换 visionOS。Target SDK 处,如果要把程序打包到头显中运行,选择 Device SDK。如果要让程序在 Xcode 模拟器里运行,选择 Simulator SDK。

XR Plug-in Management 设置

Edit > Project Settings 添加 XR Plug-in Management,勾选 Apple visionOS(只有添加了 Unity Pro 许可证才能勾选上)

勾选后 Unity 会让你导入新版输入系统 Input System,然后重启编辑器,我们点击 Yes 就能自动进行。

然后 Unity 也会自动帮我们导入这些包:

Apple visionOS XR Plugin (com.unity.xr.visionos)

AR Foundation (com.unity.xr.arfoundation)

XR Core Utilities (com.unity.xr.core-utils)

导入PolySpatial 相关包

XR Plug-in Management 下方的 Apple visionOS 中将 App Mode 切换成自己想要的模式, 选择 Mixed Reality,会自动帮我们安装PolySpatial 包

然后 Unity 会帮我们导入 PolySpatial 相关的包。

PolySpatial (com.unity.polyspatial)

PolySpatial XR (com.unity.polyspatial.xr)

PolySpatial visionOS (com.unity.polyspatial.visionos)

如果导入后发现 XR Plug-in Management 下只剩下 Project Validation,可以重启一下 Unity 项目。

Project Validation 项目验证

XR Plug-in Management 下的 Project Validation 点击 Fix All。

设置开启手势和环境感知权限获取提示

XR Plug-in Management 下的 Apple visionOS 中填写 Hand Tracking Usage Description 和 World Sensing Usage Description,填写的内容会在程序请求手追和空间数据权限的时候出现。

导入 PolySpatial 样例场景

Window > Package Manager 中导入 PolySpatial 的两个 Sample

打开一个场景会提示,TMP Importer文本导入 ,进行导入

编辑器预览MR测试

开启 XR模拟器模拟XR环境测试

XR Plug-in Management 下的 PC平台 勾选XR Simulation

修复XRI

XR Grab Interactable 脚本引用丢失

导入XR Interaction Toolkit 包

Package Manage-> + ->Add package from git URL-> com.unity.xr.interaction.toolkit

导入案例资源

Starter Assets Hands Interaction Demo

Project Validation 修复

这里提示缺少 hand案例包 点击fix 自动导入

示例场景添加到发布列表

打开 File > Build Settings,把所有样例场景拖到 Scenes In Build 列表下,并且将 Project Launcher 场景放置第一位。

签名设置

Project Settings->Player ->Other Settings->Bundle Identifier

发布Xcode到电脑

Xcode 发布到Apple Vision Pro

找到发布的文件中 Unity-VisionOS.xcodeproj打开

发布

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

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

相关文章

055_基于python摄影平台交流系统

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

Android compose 重建流程1

前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…

实习冲刺Day2

算法题 反转链表 206. 反转链表 - 力扣(LeetCode) /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}*…

AI大模型应用(3)开源框架Vanna: 利用RAG方法做Text2SQL任务

AI大模型应用(3)开源框架Vanna: 利用RAG方法做Text2SQL任务 RAG(Retrieval-Augmented Generation,如下图所示)检索增强生成,即大模型LLM在回答问题时,会先从大量的文档中检索出相关信息,然后基于这些检索出…

【LLaMA-Facrory】【模型评估】:代码能力评估——Qwen-Coder-7B 和 deepseek-coder-7b-base-v1.5

目录 序言 1 拉取 Qwen2.5-Coder-7B 模型 2 编写python测试模型 3 启动webui导入模型测试 4 模型评估 4.1 前期准备工作 4.2 Qwen2.5-Coder-7B 模型评估 数据说明 综合分析 4.3 deepseek-coder-7b-base-v1.5 模型评估 数据说明 综合分析 4.4 模型比较 1. 文本生成…

软件安全测试报告如何编写?CMA、CNAS软件安全测试机构推荐

随着软件产品的增多,产品安全成为软件企业留住用户的方法之一。安全测试是验证和检查软件安全的重要手段,而软件安全测试报告则是测试人员工作成果的最好体现,那么软件安全测试报告该如何编写呢?权威的CMA、CNAS软件安全测试机构又有哪些? …

WeMapEngine开发实战,创建你的第一个GIS项目

我们在《WeMapEngine可快速构建的GIS应用功能》一文中为你分享了WeMapEngine可快速建的GIS应用功能。 今天再为你分享基于WeMapEngine的开发实战,演示如何快速创建第一个GIS项目。 创建你的第一个GIS项目 现在,我们开始构建第一个项目。 在这个项目中…

emulator -version报错解决方案

使用android studio安装安卓环境之后,会发现emulator -version报如下错 [14960]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt\lib Could not launch C:\Users\litbai\..\emulator\qemu\windows-x86_64\qe…

【Java小白图文教程】-04-循环结构

精品专题: 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…

深入理解计算机系统--计算机系统漫游

对于一段最基础代码的文件hello.c&#xff0c;解释程序的运行 #include <stdio.h>int main() {printf ( "Hello, world\n") ;return 0; }1.1、信息就是位上下文 源程序是由值 0 和 1 组成的位&#xff08;比特&#xff09;序列&#xff0c;8 个位被组织成一组…

springboot048校园资料分享平台(论文+源码)_kaic

校园资料分享平台 摘要 随着信息互联网购物的飞速发展&#xff0c;国内放开了自媒体的政策&#xff0c;一般企业都开始开发属于自己内容分发平台的网站。本文介绍了校园资料分享平台的开发全过程。通过分析企业对于校园资料分享平台的需求&#xff0c;创建了一个计算机管理校园…

无人机的电池放电详解!

一、定义与表示方法 无人机的电池放电率是指电池在一定时间内放出其储存电能的能力&#xff0c;这一参数通常用C数来表示。C数越大&#xff0c;表示放电速率越快。 例如&#xff0c;一个2C的电池可以在1/2小时内放完其全部电量&#xff0c;而一个10C的电池则可以在1/10小时内…

喜讯!望繁信科技荣膺2022年中国超自动化先锋企业TOP20

36氪重磅发布「2022中国超自动化先锋企业」调研结果。凭借多年在流程挖掘领域过硬的技术实力和突出的产品创新力&#xff0c;望繁信科技在众多调研样本企业中脱颖而出&#xff0c;赢得了专家评委的充分认可&#xff0c;成功入选2022年中国超自动化先锋企业TOP20。 什么是超自动…

【书生大模型实战营】闯关任务1-入关岛

这里写自定义目录标题 第一关 L0G1000 Linux 基础知识 第一关 L0G1000 Linux 基础知识 SSH连接与端口映射并运行hello_world.py 关键截图&#xff1a;

502 错误码通常出现在什么场景?

服务器过载场景 高流量访问&#xff1a;当网站遇到突发的高流量情况&#xff0c;如热门产品促销活动、新闻热点事件导致网站访问量激增时&#xff0c;服务器可能会因承受过多请求而无法及时响应。例如&#xff0c;电商平台在 “双十一” 等购物节期间&#xff0c;大量用户同时…

Windows解决localhost拒绝了连接请求

最近&#xff0c;在开发前端Vue项目时&#xff0c;Vue项目启动成功&#xff0c;没有任何报错&#xff0c;服务控制台已出现APP访问地址&#xff0c;如下图所示。 览器打开后页面先是空白&#xff0c;然后过了一会儿显示无法访问此网站&#xff0c;localhost拒绝了我们的连接请…

WPF MVVM模式实现DataGrid编辑

本文是一个MVVM模式开发的基础教程&#xff0c;完全手写实现&#xff0c;未借助三方框架&#xff0c;适用于初学者 要实现DataGrid的编辑&#xff0c;步骤如下&#xff1a; 1、创建两个窗口&#xff0c;第一个窗口用于显示DataGrid&#xff0c; 布局如下&#xff1a; 这个界…

Data+AI下的云数仓未来已来!

DataAI下的云数仓未来已来&#xff01; 前言云数仓是什么&#xff1f;云数仓的概念与背景数据孤岛问题与云数仓的优势 现代数仓如何建设&#xff1f;灵活架构与弹性扩展实时与离线处理并存安全与合规性&#xff1a;现代数仓的基石 AI如何助力数仓建设&#xff1f;AI驱动的数据处…

《探索 NESMA:软件度量领域的璀璨之星》

《探索 NESMA&#xff1a;软件度量领域的璀璨之星》 一、NESMA 初印象 NESMA&#xff08;Netherland Software Measurement Association&#xff09;&#xff0c;作为荷兰软件度量协会的简称&#xff0c;在软件规模度量领域占据着重要地位。它是五种 ISO 国际功能点标准之一&am…

C++学习路线(二十二)

构造函数 构造函数作用 在创建一个新的对象时&#xff0c;自动调用的函数&#xff0c;用来进行“初始化”工作:对这个对象内部的数据成员进行初始化。 构造函数特点 1.自动调用(在创建新对象时&#xff0c;自动调用) 2.构造函数的函数名&#xff0c;和类名相同 3.构造函数…