首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >USDZ模型的SceneKit变换颜色

USDZ模型的SceneKit变换颜色
EN

Stack Overflow用户
提问于 2022-06-05 10:03:41
回答 1查看 189关注 0票数 1

我使用USDZ文件创建了一个带有SceneKit的视图,如何在SwiftUI代码中将特定材料的颜色从灰色直接更改为其他颜色?

代码语言:javascript
复制
var scene = SCNScene(named: "2020_BMW_M5.usdz")
var body: some View {       
    VStack {
        SceneView(scene: scene, 
                options: [.autoenablesDefaultLighting, .allowsCameraControl])
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-06 13:48:31

使用下标方法(.childNodes[n].childNodes[n].childNodes[n])在所需的层次结构中建模,然后按照通常的方式更改其颜色:

代码语言:javascript
复制
import SwiftUI
import SceneKit

struct ContentView : View {
    var body: some View {
        return SceneKitViewContainer().ignoresSafeArea()
    }
}

struct SceneKitViewContainer: UIViewRepresentable {
    
    func makeUIView(context: Context) -> SCNView {
        let scnView = SCNView(frame: .zero)
        scnView.allowsCameraControl = true
        scnView.autoenablesDefaultLighting = true
        scnView.scene = SCNScene(named: "Model.usdz")
        
        let model = scnView.scene?.rootNode.childNode(withName: "SomeModel", 
                                                   recursively: true)
        model?.childNodes[1].geometry?.firstMaterial?.diffuse.contents = 
                                                                UIColor.red
        print(model?.childNodes[1])

        return scnView
    }
    func updateUIView(_ uiView: SCNView, context: Context) { }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72506419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档