【问题标题】:How to target an object in scene.scn programatically?如何以编程方式定位 scene.scn 中的对象?
【发布时间】:2019-06-25 15:15:13
【问题描述】:

我的 scene.scn 中有一个球体,并希望在 ViewController.swift 中定位该球体。我可以以某种方式为该对象创建一个出口吗?我是否必须创建一个变量并将其设置为等于该对象?

【问题讨论】:

    标签: swift xcode scenekit augmented-reality arkit


    【解决方案1】:

    您必须创建一个变量并使用childNodeWithNAme 实例函数来查找所需的节点。

     let sphereNode = childNode(withName: "sphereNodeName", recursively: true)!
    

    【讨论】:

      【解决方案2】:

      如果您在 Scene graph 中有手动加载的 3D 对象以及您以编程方式制作的其他对象和灯光,则可以轻松地在 .scn 文件中定位此对象。

      要使您的 3D 模型可供虚拟程序化灯光和其他几何图形访问,请使用以下代码:

      func childNode(withName name: String, recursively: Bool) -> SCNNode? {
          return SCNNode()
      }  
      
      let geometryNode = childNode(withName: "art.scnassets/your3Dmodel", 
                                   recursively: true)!
      
      scene.rootNode.addChildNode(geometryNode)
      

      其中recursively: true 表示:搜索整个子节点子树,或false 仅搜索节点的直接子节点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-05
        • 2012-01-12
        • 2016-10-10
        • 2010-11-06
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        相关资源
        最近更新 更多