如何通过代码调用RealityKitContent.rkassets中的图片文件?
解决RealityKitContent.rkassets中图片无法加载的问题
问题根源
RealityKit的.rkassets目录是Reality Composer专用的资源容器,里面的文件会被Xcode编译为RealityKit内部格式的资产(比如场景、模型资源),不会被当作普通图片资源加入模块bundle,因此直接用TextureResource.init(named:in:)无法找到这些图片。
可行解决方案
方案1:将图片移至普通资源目录(推荐)
- 在
RealityKitContent模块目录下新建Resources文件夹(若不存在) - 把
A.jpg从MyDict1/Textures路径移到Resources文件夹内 - 确保图片的Target Membership已勾选
RealityKitContent模块(在Xcode右侧检查器中设置) - 加载代码示例:
if let texture = try? TextureResource(named: "A.jpg", in: realityKitContentBundle) { // 在这里使用纹理资源 }
方案2:修改rkassets内图片的属性(仅特殊场景使用)
若必须将图片留在.rkassets中,需手动调整资源设置:
- 选中
A.jpg,在Xcode右侧检查器中,将类型从默认的RealityKit 资源改为图像 - 确认Target Membership已勾选
RealityKitContent模块 - 加载时使用不带后缀的完整路径名称:
if let texture = try? TextureResource(named: "MyDict1/Textures/A", in: realityKitContentBundle) { // 在这里使用纹理资源 }
注意:此方法可能干扰Reality Composer对资源的识别,优先推荐方案1。
内容的提问来源于stack exchange,提问作者StuCoder
相关产品推荐
相关产品推荐

