17
> -[MTLDebugRenderCommandEncoder setScissorRect:]:2028: failed assertion (rect.x(0) + rect.width(1080))(1080) must be <= 240

使用以下代码SKSpriteNode向 a添加简单时出现此崩溃SKEffectNode

    SKSpriteNode *warpSprite = [SKSpriteNode spriteNodeWithImageNamed:@"art.scnassets/symbol.png"];
    SKEffectNode *entryEffectsNode = [[SKEffectNode alloc] init];
    [entryEffectsNode addChild:warpSprite];
    [self addChild:entryEffectsNode];

我没有在我的项目中的其他任何地方触及这些节点,当我更改精灵时,错误中的值(必须是 <= 值)会发生变化。

编辑:我已经用一个简单的精灵图像替换了spriteNodeWithColor:Size:(<=value)总是精灵大小的两倍。还应该注意的是,SKScene 被用作 SceneKit 场景中的叠加层。

我使用以下代码创建了一个单独的 SKScene,但仍然导致相同的错误。

@implementation testScene
    
    -(id)initWithSize:(CGSize)size {
        if (self = [super initWithSize:size]) {
            
            SKSpriteNode *testSprite = [SKSpriteNode spriteNodeWithColor:[SKColor purpleColor] size:CGSizeMake(100, 100)];
            SKEffectNode *testEffect = [[SKEffectNode alloc] init];
            [testEffect addChild:testSprite];
            [self addChild:testEffect];
            
        }
        return self;
    }
@end

编辑 2:我刚刚将上述场景作为默认 SceneKit 项目的叠加层进行了测试,它因相同的错误而崩溃。

编辑 3:我已经使用 swift 复制了这个。错误报告已向 Apple 提出。

4

0 回答 0