我試圖從我的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