22

SpriteKit ゲームを実行すると、コンソールにこのエラーが複数回表示されます。私が知る限り (完全にはわかりませんが)、ゲーム自体には影響はありませんが、このエラーはデバッグ コンソールを混雑させているだけでなく、他の意味を持っている可能性があります。

エラーについて調査したところ、いくつかの可能な解決策が見つかりましたが、どれも完全に機能していないようです。これらの解決策には、への変換、およびテクスチャを として指定することignoresSiblingOrderが含まれますが、これらは機能しませんでした。falseSKTextureAtlas(named: "atlasName").textureNamed("textureName")

完全にはわかりませんが、アセット カタログでテクスチャとテクスチャ アトラスを使用しているため、どこかでエラーが発生していると思います。これらのテクスチャ/画像のいくつかを実装する方法は次のとおりです。

let Texture = SKTextureAtlas(named: "character").textureNamed("\character1")
    character = SKSpriteNode(texture: Texture)

また:

let Atlas = SKTextureAtlas(named: "character")
    var Frames = [SKTexture]()

    let numImages = Atlas.textureNames.count

    for var i=1; i<=numImages; i++ {
        let textureName = "character(i)"
        Frames.append(Atlas.textureNamed(textureName))
    }
    for var i=numImages; i>=1; i-- {
        let TextureName = "character(i)"
        Frames.append(Atlas.textureNamed(textureName))
    }


    let firstFrame = Frames[0]
    character = SKSpriteNode(texture: firstFrame)

上記のコードは、キャラクターをアニメーション化するための配列を作成するために使用されただけで、アニメーションは完全に正常に実行されます。

他のすべてのスプライト ノードについてはSKSpriteNode(imageNamed: "imageName")、テクスチャ アトラス内ではなく、アセット カタログの画像名で初期化します。すべてのイメージには、@1x、@2x、および @3x バージョンがあります。

エラー メッセージに他に考えられる原因があるかどうか、または上記の例がエラーの原因であるかどうかはわかりません。

これはスプライト キットの単なるバグですか、それともコードまたはアセットの正当なエラーですか?

ありがとう!

4

2 に答える 2

19

私にもこのエラーがあります。私の意見では、これは Xcode 7.2 のバグであり、あなたのせいではありません。アプリの作成中に Xcode を更新したところ、このメッセージがコンソールに常に表示されるようになりました。これそのリンクによると、ここで恐れることは何もありません。

于 2015-12-16T19:28:08.050 に答える
3

製品 > クリーン

トリックを行うようです。

アセット カタログからアイテムを削除すると、エラーがポップアップし始めたように見えますが、その参照はコードのどこかに埋もれたままです。(私の場合、削除したのはデフォルトの宇宙船アセットでした。)

于 2016-02-23T16:50:03.180 に答える