Mac SpriteKit - невозможно создать атлас текстуры во время компиляции

Я использовал SpriteKit некоторое время в iOS; сейчас я разрабатываю приложение для Mac.

Я установил текстурный атлас как обычно:

  1. Включите генерацию текстурного атласа как для проекта, так и для цели (я начал с шаблона "Document Based Application", а не "SpriteKit Game". У него разные настройки сборки).
  2. Перетащите все отдельные файлы изображений текстуры в папку,
  3. Переименуйте папку в "Something.atlas",
  4. Добавить папку в проект,
  5. Во время выполнения создайте атлас по имени (т.е. [SKTextureAtlas atlasNamed:@"Something"];).
  6. Получить отдельные "текстуры" по имени (т.е. [_atlas textureNamed:@"MyTexture"];) и создать SKSpriteNode примеры с ними.

Я предварительно загружаю атлас асинхронно, но обработчик завершения никогда не вызывается (см. Комментарии):

_atlas = [SKTextureAtlas atlasNamed:@"Something"];

        if (!_atlas) {
            NSLog(@"Error: Failed to create atlas!");
            // This line doesn't execute, so atlas is not nil.
        }

        [_atlas preloadWithCompletionHandler:^(void){
            // This block doesn't get executed either, 
            // so atlas loading somehow fails...

            NSLog(@"Atlas Loaded!");

            [self createSprites];
        }];

Когда я проверяю содержимое пакета продукта сборки (например, MyApp.app), в подкаталоге ресурсов я вижу папку atlas ("Something.atlasc"), но она содержит только файл.plist без записей, и Ресурсы изображений нигде не найти... Так что же дает?

1 ответ

Решение

На самом деле, это не было рабочее пространство в конце концов. То же самое рабочее пространство / проект, когда копируется на рабочий стол, строится нормально.

Причина, по-видимому, заключается в том, что один из промежуточных каталогов в пути к папке проекта имел имя в японских символах. Я проверил следующим образом:

  1. Измените имя папки на английский -> очистить папку сборки -> построить -> ОК
  2. Измените имя папки обратно на японский -> очистить папку сборки -> построить -> сломанный атлас
  3. Измените имя папки обратно на английский -> очистить папку сборки -> построить -> ОК

...(вы видите шаблон)...

Интересно, почему и как это влияет только на экспорт текстурных атласов и ничего больше.

Надеюсь, что этот опыт поможет кому-то еще в будущем...

Я также обновлю отчет об ошибках в Apple.

ОБНОВЛЕНИЕ: Согласно Apple, проблема была решена начиная с iOS 8 beta 2 (сборка 12A4297e). У меня не было возможности проверить (проект, над которым я работал, был прототипом, который не взлетел, и я согласился на решение по изменению имени). В любом случае, iOS 8 сейчас финальная.

Другие вопросы по тегам