LoginSignup
0
0

More than 1 year has passed since last update.

Xcode 5でSpriteKitのSKTextureAtlasを使用する

Last updated at Posted at 2022-03-21

SwiftUI ベースのプロジェクトで SpriteKit の SKTextureAtlas を使用したかったのですが、プロジェクトに ".atlas" サフィックスのフォルダを作成し、コンパイル時にアトラスを生成させる方法ではできなかったので、調査しました。

結論から述べますと、アセットカタログ (Assets.xcassets) に作成したフォルダをアトラスとして使用できます。

具体例を示します。次の通りにアセットカタログに "cat" フォルダを作成し、猫が歩くアニメーションのフレーム画像 (cat-walk.0 〜 3) を保存します。

Assets.xcassets
├─AccentColor
├─AppIcon
└─cat
  ├─cat_walk_0
  ├─cat_walk_1
  └─cat_walk_2

ソースコードで、SKTextureAtlasnamed 引数に作成した "cat" フォルダの名前を指定し、インスタンスを生成します。インスタンスの textureNamed メソッドを使用すると、同フォルダに保存したフレーム画像をアトラス内の名前付きテクスチャとして参照できます。

import SpriteKit

let atlas = SKTextureAtlas(named: "cat")
let textures = [
    atlas.textureNamed("cat_walk_0"),
    atlas.textureNamed("cat_walk_1"),
    atlas.textureNamed("cat_walk_2"),
]

アトラスの名前はフォルダの名前ですが、半角英数字のみ (?) で指定しなければいけないようです。フォルダの名前に ". (ドット)" を含む場合は、一番最初の "." より手前の文字までをアトラスの名前として認識しました。又、フォルダの名前に "- (ハイフン)" を含む場合は、アプリケーションが異常終了しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0