如何在 XCassets 中使用立方体纹理类型

mli*_*dal 3 xcode ios scenekit

我正在尝试学习 SceneKit 开发并尝试在后台添加一个天空盒。为了存储立方体贴图纹理,我发现 XCAssets 有一个Cube Texture Set类型,它似乎完全符合要求。

在此处输入图片说明

然而。我还没有找到任何方法来访问代码中的纹理(例如作为您调用的图像集UIImage(named: "asset_name"))。我尝试从资产创建SKTexture, MDLTextureogMTKTexture但没有成功。有谁知道我如何使用立方体纹理集?

Car*_*ine 5

您可以使用 MetalKit 从资产目录轻松加载立方体纹理。

import MetalKit
Run Code Online (Sandbox Code Playgroud)

在文件的顶部。这两条线做生意:

  let textureLoader = MTKTextureLoader(device: scnView.device!)
  scene.background.contents = try! textureLoader.newTexture(name: textureName, 
                                       scaleFactor: 1.0, 
                                       bundle: .main, options: nil)
Run Code Online (Sandbox Code Playgroud)

我在从默认 SceneKit 游戏模板创建的项目中尝试了这个,并在设置视图的背景颜色后将这两行放在 GameViewController.swift 中

(我希望你也可以使用其他技术来做到这一点,但这是你可以使用 Metal 加载立方体纹理的方法)