菜鸟教程小白 发表于 2022-12-12 13:16:39

ios - SpriteKit 有时无法加载 SKTexture


                                            <p><p>我目前在 SpriteKit 和 SKTexture 预加载方面遇到了一个奇怪的间歇性问题。我有多个图像数组,我按以下格式预加载:</p>

<pre><code>- (NSDictionary *)loadTexturesWithNames:(NSArray *)aNames
{
    NSMutableDictionary *dict = ;
    NSMutableArray *textureArray = ;

    for (NSString *textureName in aNames)
    {
      SKTexture *texture = ;
      if (texture)
      {
            ;
            ;
      }
    }

    [SKTexture preloadTextures:textureArray withCompletionHandler:^{
      _iCounter++;
      ;
    }];

    return dict;
}
</code></pre>

<p>这在 90% 的情况下都可以正常工作,但偶尔会出现以下错误:</p>

<blockquote>
<p>SKTexture: Error loading image resource:</p>
</blockquote>

<p>这不会发生在任何特定的图像集上,只是随机发生。因此,有时播放器会加载正常,而其他播放器则不会。这可能是内存问题吗?我使用 _iCounter 拆分纹理加载,确保在开始下一组图像之前加载前一组图像,以尝试停止过多的并发加载。这加快了进程,但我仍然看到这个间歇性问题。 </p>

<p>有没有其他人看到过这种情况,或者知道是什么原因造成的? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>根据我的经验,一个常见的原因是您没有等待调用完成处理程序。例如,在“图像”是预加载的图像之一的情况下执行此类操作可能是错误的来源:</p>

<pre><code>;
SKSpriteNode* sprite = ;
</code></pre>

<p>当然,如果你只在 <code>loadTexture</code> 方法中创建 Sprite 节点和纹理应该没问题。除非您执行其他后台任务或在后台运行 <code>loadTextureWithNames</code> 选择器(单独的线程)。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - SpriteKit 有时无法加载 SKTexture,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27292575/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27292575/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - SpriteKit 有时无法加载 SKTexture