我有一个立方体(圆形),想在它的一侧显示纹理。我可以通过以下方式访问那一侧的 Material :
var tex1: SCNMaterial! = cube.geometry?.materialWithName("_1")!
然后我设置它的图片内容:
tex1.diffuse.contents = "cube1"
这看起来像这样:
这表明它确实有效,但白色部分不在中心
它应该是。 (我使用的图像中间有白色部分。)
我尝试使用偏移在表面上四处移动图像,我也想缩放它。我这样试过:
tex1.diffuse.contents.offset = SCNVector3Make(20, 0, 0)
这给了我错误:它说它不能分配那个表达式的结果。 (我也试过 contentMode
,同样的错误,我想是因为这些是针对 UI,而不是 SCN)
问题
- 有人知道我能做什么吗?
- 也许抵消不是可行的方法?
- 如何缩放图像?
最佳答案
Material 属性的contents
类型是AnyObject
,这意味着编译器将允许您调用其上的任何方法(在任何对象类型上定义)。这并不意味着所有方法或属性访问器实际上都是由您的特定 contents
中的实际类实现的。
Material 属性确实有 contentsTransform
选项,虽然。你看过了吗?
关于ios - SceneKit - 纹理显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780653/