我正在尝试学习SceneKit开发并尝试在后台添加一个天空盒。 为了存储立方体贴图纹理,我发现XCAssets的类型为Cube Texture Set,看起来很合适。
但是。我没有找到任何方法来访问代码中的纹理(例如,在调用UIImage(named: "asset_name")
的图像集中)。我尝试从资产创建一个SKTexture
,MDLTexture
和MTKTexture
,但是没有成功。有人知道我如何使用多维数据集纹理集吗?
答案 0 :(得分:4)
您可以使用MetalKit轻松地从资产目录中加载立方体纹理。
import MetalKit
位于文件顶部。这两条线可以完成业务:
let textureLoader = MTKTextureLoader(device: scnView.device!)
scene.background.contents = try! textureLoader.newTexture(name: textureName,
scaleFactor: 1.0,
bundle: .main, options: nil)
我在默认的SceneKit游戏模板创建的项目中尝试了此操作,并在设置视图的背景颜色后将这两行放置在GameViewController.swift中
(我希望您也可以使用其他技术来做到这一点,但这是您可以使用Metal加载多维数据集纹理的方法)