【问题标题】:Swift, add Node to SCNNode and place in cornerSwift,将节点添加到 SCNNode 并放置在角落
【发布时间】:2018-10-05 00:58:27
【问题描述】:

我尝试在 SCNNode 中放置一个节点(图像)。我希望它位于右上角。但是我该如何实现呢?

所以:我想把 buttonNode 放在 urlNode 里面:

 let urlNode =  createWebView(url: url)
 urlNode.scale = SCNVector3(x: 0.3, y: 0.3, z: 0.3)
 let image = UIImage(named: "arrows-expand")
 let buttonNode = SCNNode(geometry: SCNPlane(width: 1, height: 1))
 buttonNode.geometry?.firstMaterial?.diffuse.contents = image
 urlNode.addChildNode(buttonNode)
 currentNode?.addChildNode(urlNode)

创建WebView:

 private func createWebView(url: String) -> SCNNode  {
    print(url)

    let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 640, height: 480))
    let request = URLRequest(url: URL(string: url)!)
    webView.loadRequest(request)

    let tvPlane = SCNPlane(width: 4.0, height: 2.75)
    tvPlane.firstMaterial?.diffuse.contents = webView
    tvPlane.firstMaterial?.isDoubleSided = true

    let tvPlaneNode = SCNNode(geometry: tvPlane)

    var translation = matrix_identity_float4x4
    translation.columns.3.z = -1.0

    tvPlaneNode.eulerAngles = SCNVector3(0,0,0)
    return tvPlaneNode
}

【问题讨论】:

    标签: ios swift arkit scnnode


    【解决方案1】:

    你的 urlNode 是一个 SCNPlane,它的大小是 4 x 2.75。 您的 buttonNode 也是一个 SCNPlane,其大小为 1 x 1。 创建 urlNode 后,创建按钮节点并计算其位置: x = urlNode 宽度 / 2.0 - imageNode 宽度 / 2.0 y = urlNode 高度 / 2.0 + imageNode 高度 / 2.0

    let urlNode =  createWebView(url: url) 
    let buttonNode = SCNNode(geometry: SCNPlane(width: 1, height: 1))
    let image = UIImage(named: "arrows-expand")
    buttonNode.geometry?.firstMaterial?.diffuse.contents = image
    // Clean this up to get both the urlNode and buttonPlane SCNPlane geometry with a method of your choice here
    buttonNode.postion = SCNVector3(x: urlNodePlane.width / 2.0 - buttonPlane.width / 2.0, y: urlNodePlane.height / 2.0 + buttonPlane.width / 2.0)
    urlNode.addChildNode(buttonNode)
    urlNode.scale = SCNVector3(x: 0.3, y: 0.3, z: 0.3)
    currentNode?.addChildNode(urlNode)
    

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2019-02-24
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多