将设备更新到iOS 11后,3D模型颜色发生了变化

Dev*_*shM 8 objective-c uicolor ios scenekit

我正在使用场景工具包进行应用程序.并且eveything工作正常,直到iOS 10.

我可以看到3D模型正确但在我将设备更新到iOS 11后,模型的颜色发生了变化.

-(void)applyColor:(SCNNode*)node{
    NSArray *materials = node.geometry.materials;
    for (SCNMaterial *material in materials) {
        material.diffuse.contents = [UIColor purpalColor];
    }
}
Run Code Online (Sandbox Code Playgroud)

iOS 9和iOS 10: 在此输入图像描述

iOS 11: 在此输入图像描述

Cod*_*der 6

据Apple称,默认颜色为白色meterial.diffuse.contents.

默认情况下,diffuse属性的contents对象是白色.

没有看到你的代码,我想知道这一行,因为这似乎是一个明显的错字:

[UIColor purpalColor];
Run Code Online (Sandbox Code Playgroud)

据推测,它构建,所以我认为它是一个有效的名称.

您是否能够验证上面的颜色是否提供了所需的值?因为看起来iOS正在期待某些东西,而不是它,并在这里发回默认颜色.


Vol*_*tan -2

只是一个想法,尝试使用非自定义颜色,看看是否能让您回到正轨。可能是 iOS 10 Wide Color 的夹紧问题?尝试搜索这篇文章: iOS 10 Wide Color:我需要担心吗?。它特别提到了 UIKit,我没有看到任何特定于 scenekit 的内容,但同样,这只是一个想法。