0
非機能コード:スウィフトSpriteKitベーステクスチャ
if sprite.texture == "texture" {
(code)
}
私はスプライトが、特定のテクスチャを持っている場合、コードを実行するために、スプライトのテクスチャにアクセスしようとしています。現在のところ、テクスチャは私のAssets、つまりカッコでしかありません。誰でもこのコードを書き直す方法を理解できますか?
非機能コード:スウィフトSpriteKitベーステクスチャ
if sprite.texture == "texture" {
(code)
}
私はスプライトが、特定のテクスチャを持っている場合、コードを実行するために、スプライトのテクスチャにアクセスしようとしています。現在のところ、テクスチャは私のAssets、つまりカッコでしかありません。誰でもこのコードを書き直す方法を理解できますか?
sprite.texture
はSKTexture?
であるため、文字列と比較することはできませんが、実際のSKTextureオブジェクトと比較する必要があります。
しかし、あなたの質問のコメントに他の人が示唆するように、コードを再設計しようとする必要があります。テクスチャそのものをチェックするのは良い設計ではありません。 1つは、スプライトのテクスチャを2か月後に決める場合は、このコードを再度覚えておく必要があります。
私はSKSpriteNodeからサブクラス化し、スプライトの型があなたのサブクラスと同じかどうかを確認することをお勧めします。他の代替手段は、sprite.name
またはスプライトのuserData
を比較することです。
これは良い設計ではありません。代わりに各スプライトでuserDataを使用してください。 –
[Swift 3でSKSpriteNodeのファイル名を取得する]の可能な複製(https://stackoverflow.com/questions/41272365/getting-the-filename-of-an-skspritenode-in-swift-3) – Knight0fDragon
私は投票しましたあなたの質問に答えるために閉じることができますが、現実には私はEl Tomatoに同意し、この問題をより良く解決するアプローチを再設計します – Knight0fDragon