- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚创建了项目:Xcode:文件 > 新建 > 项目 > 增强现实应用程序。
我想将 ship.scn 的颜色更改为黄色,但没有任何反应。如何更改 ship.scn 的颜色??
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
sceneView.showsStatistics = true
let scene = SCNScene(named: "art.scnassets/ship.scn")!
// here, trying to change the color of the ship.scn
scene.rootNode.geometry?.materials.first?.diffuse.contents = UIColor.yellow
sceneView.scene = scene
}
我尝试了断点和 po 命令来检查 rootNode 包含的内容。
(lldb) po scene.rootNode.childNodes
▿ 1 element
- 0 : <SCNNode: 0x1c01f8d00 'ship' | 1 child>
(lldb) po scene.rootNode.childNodes.first?.name
▿ Optional<String>
- some : "ship"
(lldb) po scene.rootNode.childNodes.first?.geometry
nil
为什么 geometry 是 nil?我可以看到彩色船。
最佳答案
欢迎来到 Stack Overflow!一些 Swift 101 的时间......这一行包含 optional chaining :
scene.rootNode.geometry?.materials.first?.diffuse.contents = UIColor.yellow
任何时候当您看到一连串涉及问号的属性访问/方法调用时,结果,好吧...有问题。在这种情况下,如果 rootNode.geometry
为 nil,则它之后的调用都不会发生。
那么,如何解决这个问题呢?通常,在运行时检查您的场景以确保您认为拥有的节点层次结构是您实际得到的。使用调试器或一些打印语句找出 rootNode
实际包含什么,它的子节点是什么,这些节点包含什么等等。或者查看你在 Xcode 场景编辑器中的 Assets ,并交叉-reference 找出哪些节点到search for by name .
在您使用的 Xcode 项目模板中,船舶几何体不在场景的根节点上……在您到达它之前有几层节点层次结构。找到正确的节点后,在其第一个 Material 上设置 diffuse.contents
会将纹理贴图替换为您的颜色。
关于ios - 无法使用 ARKit 和 SceneKit 更改 scn 文件 (materials/diffuse.contens) 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47810365/
所以我有一个这样的表格布局: XML 所以问题是,它在第一次启动时看起来不错,但在更改文本后它看起来很难看并且完全调整了大小。我尝试使用 percnet 作为宽度,但失败了。那么如何让它在更改文本
我刚刚创建了项目:Xcode:文件 > 新建 > 项目 > 增强现实应用程序。 我想将 ship.scn 的颜色更改为黄色,但没有任何反应。如何更改 ship.scn 的颜色?? override f
我是一名优秀的程序员,十分优秀!