【问题标题】:How can I change the object's texture from ARKit app?如何从 ARKit 应用程序更改对象的纹理?
【发布时间】:2018-08-07 08:57:32
【问题描述】:

对象在场景中,我想在按下按钮时实时更改它的纹理。可能吗? 我试过这样,但它不起作用。

VirtualObjectsManager.shared.getVirtualObjectSelected()?.geometry?.materials.first?.diffuse.contents = UIColor.red

【问题讨论】:

    标签: ios textures arkit


    【解决方案1】:

    假设这是你的对象:

    let obj = SCNNode()
    obj.name = "obj1" // set a name, so you can access your object node later
    

    首先,为对象的材质设置一个名称:

    let material = SCNMaterial()
    material.name = "BackgroundImage" // set a name for the material
    material.diffuse.contents = UIImage(named: "texture1.jpg")
    
    obj.geometry?.materials = [material]
    

    然后,在你的按钮按下方法中,你需要一个对象的实例:

    let node = sceneView.scene.rootNode.childNode(withName: "obj1", recursively: true)
    

    然后你可以改变它的纹理:

    let material = node.geometry?.material(named: "BackgroundImage")
    material.diffuse.contents = UIImage(named: "texture2.jpg")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多