Ios 为什么健全资产可以';不能从Xcode中的代码引用

Ios 为什么健全资产可以';不能从Xcode中的代码引用,ios,xcode,sprite-kit,Ios,Xcode,Sprite Kit,我已拖入Sounds.xAssets文件夹,如下所示: 然后我打算将其添加到我的演示游戏中,代码片段如下: class GameScene: SKScene, SKPhysicsContactDelegate { override func didMoveToView(view: SKView) { ... let backgroundMusic = SKAudioNode(fileNamed: "background-music-aac.caf")

我已拖入Sounds.xAssets文件夹,如下所示:

然后我打算将其添加到我的演示游戏中,代码片段如下:

class GameScene: SKScene, SKPhysicsContactDelegate {

    override func didMoveToView(view: SKView) {
        ...

        let backgroundMusic = SKAudioNode(fileNamed: "background-music-aac.caf")
        backgroundMusic.autoplayLooped = true
        addChild(backgroundMusic)
    }

    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
        ...

        runAction(SKAction.playSoundFileNamed("pew-pew-lei.caf", waitForCompletion: false))
    }
}
类游戏场景:SKScene,skphysiccontactdelegate{
覆盖func didMoveToView(视图:SKView){
...
let backgroundMusic=SKAudioNode(文件名为:“backgroundMusic aac.caf”)
backgroundMusic.autoplayloped=true
addChild(背景音乐)
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
...
运行操作(SKAction.playSoundFileNamed(“pew-pew-lei.caf”,waitForCompletion:false))
}
}
它们都不起作用,出现错误消息:SpriteKitSimpleGame[29290:927376]SKAction:加载声音资源时出错:“pew pew lei.caf”


这两个声音文件是
背景音乐aac.caf
pew pew lei.caf
,有人能帮我吗?谢谢。

使用资产文件夹时,不要在文件名中包含任何扩展名

资源会查找包含实际文件名的元文件,因此可以为不反映文件名的声音添加别名,因此请确保在atlas中使用别名,而不是文件名

按照我以前的回答:

我相信您需要为此使用NSDataAsset。正如达贡骑士所指出的,这似乎只适用于AVF基金会


直接将它们拖到项目中似乎更容易。

您是否尝试使用另一个caf更改声音,或使用mp3、aac…更改声音?如果您使用的是资产,则在名为的
文件中不包括
.caf
,使用连字符也可能是一件坏事,这一点并不积极,但这可能会影响资产命名约定仅仅将它们直接拖动到项目和xcassets中有什么区别?这只适用于AVFoundation,不适用于SKAudio我相信对于SKAudio,唯一的方法是不将声音放入资产文件夹@Knight0fDragon@JasonZhu,请查看我的评论,您可以使用AssetsNoooo,如果我说的答案只会让人困惑,请不要接受,@crashoverride777如果我说的是答案,请您更改您的答案以反映给未来的人。