我试图从我的SpriteKit场景的UIViewController
中将预加载的数组SKTexture
传递到场景中,当它初始化时。将变量传递给SKScene
但是,我似乎无法自定义SKScene
传递数组的初始化方法。
这就是我想要做的事:
@interface MyViewController()
@property (nonatomic, strong) NSArray *texturePack;
@end
<>
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
// Configure the view.
SKView * skView = (SKView *)self.spriteView;
if (!skView.scene) {
skView.showsFPS = YES;
skView.showsNodeCount = YES;
// Create and configure the scene.
// Pass variable?*
MyScene *scene = [MyScene initWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
}
}
* 我不知道它被初始化之前如何self.texturePack传递到现场吗?
如果任何人在初始化时如何将变量传递给SKScene,我将非常感激。
感谢您为我准备这个答案,但这是我通常会遵循的方法,它不起作用,因为在场景初始化时需要访问该变量。即看起来我需要继承'SKScene'来修改初始化方法,但是我找不到这样做的简单方法,因为SKScene和工厂子类之间的类初始化方法不同。 – Sarreph
@Rorz看我的编辑。 –
这似乎已经做到了,谢谢:) – Sarreph