簡體   English   中英

ARkit中3d對象上的Pin按鈕

[英]Pin Button on 3d Object in ARkit

我試圖將按鈕固定在3d對象上。 加載TouchBegan函數時,我使用touch在世界上放置對象。 我希望在加載對象時將按鈕固定在對象上。

我在arkit中找不到AR Button。 我所能找到的就是將文本作為子節點並命名該節點,並獲得第一個匹配結果,並按名稱將子節點命名為觸發器按鈕。

將按鈕放置到相對於3d空間的對象上是一個問題。 尋找可能的解決方案。

在此處輸入圖片說明

這就是我想要實現的目標,目前正在使用github項目作為演示。

https://github.com/eh3rrera/ARKitSceneKitExample

我建議使用帶有SKScene的框/平面作為按鈕的材料,並以SKScene中的文本作為標題。 然后,您可以在tapGesture中使用hitTest。 也許可以動畫化顏色變化以具有按一下按鈕的效果。

我解決ARKit中的按鈕問題的方式是將物理按鈕創建為3D模型的一部分

在此處輸入圖片說明

您不需要創建帶有文本的按鈕,例如點擊打開門或切換燈...,但是您需要以某種方式與用戶聯系,他們可以點擊(打開門或點擊燈來打開)。

要激活該節點,請為其指定一個唯一的節點。名稱“ front_door”

node.name = “front_door”

缺點之一是您必須在執行程序之前使用xcode命名節點。

以下是使用hitTest響應門上按鈕輕擊的快速代碼。 觸摸按鈕時,門將旋轉打開。

let tappedNode = self.sceneView.hitTest(gesture.location(in: gesture.view), options: [:])

    if !tappedNode.isEmpty {

      let tappedName = tappedNode[0].node.name

      if tappedName == "front_door" {

       let doorNode = self.sceneView.scene.rootNode.childNode(withName: tappedName, recursively: true)

      // rotate the door open      
      doorNode?.eulerAngles = SCNVector3Make( 0,0,Float(2*M_PI))

                }

}

在此處輸入圖片說明

暫無
暫無

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

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