如何在XCassets中使用多维数据集纹理类型

时间:2018-07-04 10:33:08

标签: ios xcode scenekit

我正在尝试学习SceneKit开发并尝试在后台添加一个天空盒。 为了存储立方体贴图纹理,我发现XCAssets的类型为Cube Texture Set,看起来很合适。

enter image description here

但是。我没有找到任何方法来访问代码中的纹理(例如,在调用UIImage(named: "asset_name")的图像集中)。我尝试从资产创建一个SKTextureMDLTextureMTKTexture,但是没有成功。有人知道我如何使用多维数据集纹理集吗?

1 个答案:

答案 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加载多维数据集纹理的方法)