カッパでも分かるiOSアプリゲーム開発

カッパがひたすらゲーム制作に関することを書くブログです。Railsに関するTipsもたまにまとめてます。

childNodeWithName("ノード名") は全ての階層を検索する訳ではなかった

スポンサードリンク

f:id:InvokeTwoA:20151106031914j:plain

spriteKit では様々なノードを childNodeWithName("ノード名")で取得する。

let hope : SKLabelNode? = childNodeWithName("hoge") as! SKLabelNode

しかしごく稀に下記のようなエラーが出てしまう事があるので注意。

flappyKappa was compiled with optimization - stepping may behave oddly; variables may not be available.

f:id:InvokeTwoA:20151009145746p:plain「これは……flappyKappa の compile 時に発生したエラーですね」
f:id:InvokeTwoA:20151023183618p:plain「要はそんなノードは見つからなかったというエラーだ」

childNodeWithName("ノード名") 一番上の階層しか検索しない。
そのため、 moge ノードの下にある hoge ノードを検索するには下記の方法を取る必要がある。

let hoge : SKLabelNode? = childNodeWithName("moge")?.childNodeWithName("hoge") as? SKLabelNode

これで無事に hoge ノードを取れる。