我创建了一个简单的项目,其中有一个名为 GameScene.sks 的文件。这包含一个名为object1
的空节点。在另一个名为 Scene2.sks 的文件中,我有一个精灵节点。如何将此节点添加到GameScene.sks中的空节点?我已经关注了WWDC的Session 608视频,但屏幕上没有显示任何内容。这只是一个"测试"因为我希望能够通过这种方法将一个.sks中的许多孩子添加到一个空节点,类似于Apple在WWDC Session 604中用他们的图腾示例所展示的内容。我一定会遗漏一些东西。这是我的代码:
GameScene.m
#import "GameScene.h"
#import "AppDelegate.h"
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
SKNode *object1 = [self childNodeWithName:@"object1"];
for (SKNode *child in [GameScene unarchiveFromFile:@"Scene2"].children) {
[object1 addChild: [child copy]];
}
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
}
@end
GameScene.sks
Scene2.sks
注意:修改了AppDelegate.h文件,以便可以在GameScene.m中使用unarchiveFromFile
。这是代码:
AppDelegate.h
#import <Cocoa/Cocoa.h>
#import <SpriteKit/SpriteKit.h>
@interface SKScene (Unarchive)
+ (instancetype)unarchiveFromFile:(NSString *)file;
@end
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet SKView *skView;
@end