在 RealityKit 中锚定多个场景

2023-12-23

将多个场景(来自 Reality Composer)加载到 arView 时,场景不会锚定在同一空间中。

在此示例中,scene1 在应用程序启动时加载。按下按钮后,scene2就被添加到场景中。在这两个场景中,模型都放置在原点,并预计与添加到视图中的 scene2 重叠。但是scene1和scene2添加到arView中时的位置是不同的。

import UIKit  
import RealityKit  

class ViewController: UIViewController {  

    @IBOutlet var arView: ARView!  
    @IBOutlet weak var button: UIButton!  

    var scene1: Experience.Scene1!  
    var scene2: Experience.Scene2!  

    override func viewDidLoad() {  
        super.viewDidLoad()  

        // Load the "Box" scene from the "Experience" Reality File  
        scene1 = try! Experience.loadScene1()  
        scene2 = try! Experience.loadScene2()  

        // Add the box anchor to the scene  
        arView.scene.addAnchor(scene1)  
    }  

    @IBAction func buttonPressed(_ sender: Any) {  
        arView.scene.addAnchor(scene2)  
    }  

}

注意:同时添加两个场景时不会出现此问题。

如何确保两个场景都锚定在同一个 ARAnchor 上?


使用以下策略,以便跟踪两个模型的单个锚点:

let scene01 = try! Cube.loadCube()
let scene02 = try! Ball.loadSphere()

let cubeEntity = scene01.steelCube!.children[0] as! ModelEntity
let ballEntity = scene02.glassBall!.children[0] as! ModelEntity

// var cubeComp: ModelComponent = cubeEntity.components[ModelComponent].self!
// var ballComp: ModelComponent = ballEntity.components[ModelComponent].self!

let anchor = AnchorEntity(plane: .horizontal)
anchor.addChild(cubeEntity)
anchor.addChild(ballEntity)

// scene01.steelCube!.components.set(cubeComp)
// scene02.glassBall!.components.set(ballComp)

arView.scene.anchors.append(anchor)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 RealityKit 中锚定多个场景 的相关文章

  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • 如何向 JSQMessagesViewController 单元添加自定义视图,使其包含一个带有一些按钮和文本视图的视图?

    我在用https github com jessesquires JSQMessagesViewController issues 1820 https github com jessesquires JSQMessagesViewCont
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 使用 Three.js 遮挡现实世界的对象

    我在实验性增强现实网络浏览器中使用 Three js 该浏览器称为 Argon 本质上 Argon 使用高通的 Vuforia AR SDK 来跟踪手机摄像头中的图像和物体 Argon 将跟踪信息发送到 Javascript 中 在 Jav
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self
  • UICollectionView 列的垂直偏移

    右图是我试图实现的目标 Does anyone know how I could achieve this on a two column UICollectionView I m able to discern my columns by
  • IOS Coredata 兼容 IOS 9 和 ios 10

    您好 我正在开发一个适用于 IOS 10 和 9 xcode 8 的应用程序 创建新实体对象的正确方法是什么 新的IOS 10有这个代码 var newEvent Event context context 我们如何让这段代码同时适用于 I
  • Xcode UI 测试 - 通过 id 在 Webview 中查找元素

    我们的应用程序是混合的 包含 webview 我正在尝试使用 Xcode UI 测试自动化我们的应用程序 我能够使用以下方法找到网络按钮 let app XCUIApplication app launch let button app s
  • 防止 UITableView 滚动到某个点以下

    如何让 UITableView 允许在某个索引行上方滚动 但在低于某个点时阻止滚动 例如 如果我有第 1 行到第 100 行 其中在给定时间视图中仅出现 5 行 我希望允许用户在第 1 50 行之间滚动 但在第 50 行可见时阻止进一步向下
  • 实时获取 Apple Watch heartRateVariabilitySDNN 吗?

    我正在使用下面的函数来获取 heartRateVariabilitySDNN 但它只获取一次并且不能像 heartbeat 那样实时计算 func HRVstart guard let quantityType HKObjectType q
  • RxSwift、RxCocoa 和 UITableview

    我在使用 RxSwift 实现 UITableView 时遇到问题 我尝试使用以下代码将模型数组的可观察对象绑定到表项 models bind to self tableView rx items cellIdentifier Cell c
  • 在 swift 中使用自定义字体[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个用于 swift sprite kit iOS 的字体 该字体用于商业目的 我正在尝试拥有一
  • 使用 AVAssetExportSession 导出延时会导致黑色视频

    我需要能够合并使用 iOS 上的相机应用程序中的延时拍摄功能拍摄的视频并导出为单个视频 但是 即使我尝试将单个未更改的延时视频导出到照片库 它也会保存为全黑视频 具有正确的持续时间 以下是我编写的示例代码 用于导出单个未更改的视频 其中大部
  • UIAlertController 显示延迟

    我在我的应用程序上遇到了 UIAlertController 问题 现已迁移到 iOS8 其中包含日期选择器 下面是代码 UIAlertController AlertView UIAlertController alertControll
  • 通过 firebase 登录获取更大的 Facebook 图片

    我正在使用 firebase 通过 facebook 登录用户 这一切都工作正常 我可以获取用户 FB 个人资料图像 尽管它太小了 有人可以告诉我如何获得更大的 我正在使用的代码 override func viewDidLoad let
  • 有关 UnsafeMutablePointer 的 destroy() 的术语

    Destroy the object the pointer points to Precondition the memory is initialized Postcondition the value has been destroy
  • 使用 Swift 过滤 Realm 对象

    尝试使用以下方法过滤我的领域数据库时 我总是收到以下错误NSPredicate 属性 text 不是类型 getType 对象中的链接 我想过滤我的领域数据库以仅显示其中包含某些特定文本的项目 这是我尝试过的 let realm try R
  • 为什么我不能在 func Swift 中使用 self

    我试图自行将 SKSpriteNodes 添加到函数中的视图中 但 Xcode 不允许我这样做 它给了我错误 使用未解析的标识符 self func indicate if test 0 var large CGFloat largest
  • UITableView 干扰状态栏

    我正在开发一个具有 UITableViewController 的应用程序 该应用程序显示值列表 如下所示 如何将表格向下移动 使其不会与状态栏冲突 看来我无法对这个场景施加任何限制 所以我不知所措 使用以下 3 个属性UIViewCont

随机推荐

  • 为什么我可以将并行流收集到任意大的数组,但不能收集顺序流?

    从回答这个问题 https stackoverflow com q 49760006 7294647 我遇到了一个奇怪的功能 以下代码按照我的预期工作 现有数组中的前两个值将被覆盖 Integer newArray Stream of 7
  • 我应该将 firebase api 密钥隐藏到后端吗?不是因为数据安全,而是项目克隆问题

    有人可以帮我解答 firebase 安全问题吗 这就是我试图弄清楚的 我知道要让客户端与我的 firebase 应用程序交互 需要配置和firebase initializeApp config 将公开 每个使用客户端的人都可以在浏览器开发
  • 在 JavaScript 中检查字符串相等性的正确方法是什么?

    在 JavaScript 中检查字符串之间是否相等的正确方法是什么 always 直到您完全理解使用的差异和含义 and 运营商 使用 运算符 因为它可以让您避免出现晦涩 不明显 的错误和WTF 常规 由于内部类型强制 运算符可能会产生非常
  • 实体框架加载具有排序顺序的子集合

    我有两张表 一张是父表 一张是子表 子表有一个列排序顺序 数值 由于 EF 缺少支持在不公开排序顺序的情况下保留包含排序顺序的 IList 请参阅 实体框架持久保留子集合排序顺序 https stackoverflow com q 4327
  • 在 API 中使用 Facebook 身份验证令牌

    我有一个 iOS 应用程序 用户在设备上通过 Facebook 进行身份验证 并与我的服务器 API 进行通信 验证 今天 我将发送 Facebook 用户访问令牌 通过 SSL 服务器会使用 Facebook 验证该令牌 这就是 API
  • 如何以编程方式触发 D3 拖动事件?

    所以我有一些与拖动事件侦听器绑定的数据 myNodes enter append svg g call d3 behavior drag on drag function console log d3 event dx d3 event d
  • 根据文件是否包含字符串进行搜索然后删除

    我想在单个目录中的多个文本文件中搜索字符串 monkey 如果该字符串存在 那么要么 取决于最简单的 重命名匹配的字符串 例如更改猴子monkey1并保存然后文件并进行搜索 处理 or 删除任何具有匹配字符串的文件 已经搜索过 但似乎找不到
  • 重定向 301 中的重定向过多

    我想从旧网址到新网址进行 301 重定向 旧网址 php zend framework captcha codigo anti spam zend framework 新网址 http www demo31 com blog php zen
  • 如何防止 Emacs org-mode 分割窗口?

    我是一个新的 emacs 用户 使用 emacs 来实现很棒的组织模式 我的页面顶部有指向所有组织文件的链接 但每次单击链接时 它都会分割我的窗口 因此我只有一半的屏幕空间可用 如何设置它以便 emacs 不会水平分割窗口 而是为我的链接打
  • 如何在swift 4中获取今天和明天的日期

    如何获取当前日期unix epoch timeIntervalSince1970打印当前时间 有什么办法可以获取今天中午 12 点的时间吗 例如 当前时间为 2018 年 1 月 7 日下午 5 30 timeIntervalSince19
  • 收到 pylint 警告:“未找到配置文件,使用默认配置”

    pylint reports n main py Output No config file found using default configuration 您将得到 No config file found using default
  • 如何将 foreach 与二维对象数组一起使用?

    这是我的尝试 但不起作用 我是初学者 这个想法是有一个简单的 Kid years 整数二维数组来了解如何将 foreach 与对象一起使用 using System namespace Test class Kid public int y
  • 禁用反应式 Elasticsearch 客户端

    我的 spring boot 版本 2 4 1 应用程序已使用自动连接的 org elasticsearch client RestHighLevelClient 成功连接到 ElasticSearch v7 9 3 实例 我只需指定应用程
  • ASM x64 scanf printf 双精度,GAS

    我不明白为什么这段代码对我不起作用 我需要对双精度使用 scanf 函数 然后对同一个双精度使用 printf 使用此代码时结果并不好 我看到的都是非常随机的角色 data d1 double format asciz lf n forma
  • 检测PHP是否安装了Mod_Security?

    有没有简单的方法可以仅使用 PHP 来检测 modsecurity 是否已安装并启用 理想情况下 无需执行任何 exec 终端类型命令 有些人建议使用 apache get modules 但这个特定的网络主机不允许它显示 其他用户也提到了
  • 如何获得 R 中前 n 个值及其索引?

    我有一个只有一列的数据框 我想用它的索引找到最大的三个值 例如我的数据框df好像 distance 1 1 2 4 3 2 4 3 5 4 6 5 7 5 我想找到最大的 3 个值及其索引 所以我的预期结果是 distance 6 5 7
  • 如何在本地调试EventHubTrigger?

    我正在尝试在本地调试 Azure 函数 这是一个EventHubTrigger 问题是我需要在本地调试代码 因为我仍然没有 真实 设置 我的代码目前如下所示 public static class Notificator FunctionN
  • 如何在 Spring Boot 中使用 Mapstruct 映射父级和子级?

    我有父级 产品 和子级 书籍 家具 并且希望将产品实体映射到产品 DTO 如您所见 产品被映射并存储在数据库中的单个表中 如何映射具有子项额外详细信息的父项产品 我看过this https stackoverflow com questio
  • 运行Qemu后只是黑屏

    我刚刚安装了 QEMU 并编译了支持 ARM 的 Linux 内核 但是当我运行下面的命令时 qemu system arm M versatilepb m 128M kernel home arit QEMU linux 3 8 4 ar
  • 在 RealityKit 中锚定多个场景

    将多个场景 来自 Reality Composer 加载到 arView 时 场景不会锚定在同一空间中 在此示例中 scene1 在应用程序启动时加载 按下按钮后 scene2就被添加到场景中 在这两个场景中 模型都放置在原点 并预计与添加