簡體   English   中英

"ARKit - 在現實作曲家中以編程方式添加“廣告牌”(看相機)元素"

[英]ARKit - Programmatically 'billboard' (look at camera) elements added in Reality composer

我正在使用 Xcode (11.3.1) 使用 ARKit 制作 AR 應用程序。 我在 Reality Composer 中添加對象、文本等。 然后我可以通過在ViewController.swift<\/code>中加載場景和對象來訪問這些對象。

我想讓這些物體中的一些不斷面對相機。

我知道我可以在 Reality Composer 中添加一個觀察相機的“行為”,但我不想這樣做有兩個原因;

a)它只允許您以這樣的方式添加效果持續一定時間(最多 5 分鍾)

b)我想知道如何以編程方式執行此操作。

我知道這里提供了一系列 ARKit 中的廣告牌解決方案,其中大部分都包含在這個問題<\/a>的答案中,但所有這些解決方案都涉及使用 SceneKit。

因此,我的問題是——是否可以在不使用 SceneKit 的情況下實現這種“廣告牌”效果? 有沒有辦法只在 RealityKit 中做到這一點? 似乎有,因為您可以通過使用 Reality Composer 將其添加為行為來包含此效果(據我所知,它不需要 SceneKit,但我可能是錯的)。 我試圖深入研究 Reality Composer 場景以了解廣告牌是如何在那里實現的,但您可以在對上一個問題的回復中<\/a>看到“行為”沒有暴露,所以我看不出這是如何實現的。

我的“從頭開始”的方法是了解相機<\/a>的位置\/旋轉,但我太缺乏經驗,不知道從哪里開始。 本質上我正在尋找相當於SCNBillboardConstraint<\/code>但不使用 SceneKit,也許這是不可能的?

extension Entity {
    /// Billboards the entity to the targetPosition which should be provided in world space.
    func billboard(targetPosition: SIMD3<Float>) {
        look(at: targetPosition, from: position(relativeTo: nil), relativeTo: nil)
    }
}

var subscriptions = Set<AnyCancellable>()

  arView.scene.subscribe(to: SceneEvents.Update.self) { [self] _ in
                            箭頭.billboard(targetPosition: arView.cameraTransform.translation)
                         }.store(in: &subscriptions)

https://developer.apple.com/forums/thread/656611

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM