2013-10-14 2 views
1

텍스처 아트라스를 사용하기 시작했습니다. 대문자로 된 이름에서 소문자로 된 이름으로 이름을 변경하려고 시도 할 때까지 잘 작동했습니다. 그 이후 Xcode는 내지도를 찾을 수 없었습니다. 그 중 하나 또는 누락 된 리소스 이미지를로드해야 할 때 사용할 이미지를로드 할 수 있습니다.텍스처 아트라스를 찾지 못했거나 리소스가없는 이미지가 사용되었습니다.

파생 데이터를 삭제하고 Xcode 및 Mac을 다시 시작했습니다. Xcode에서 아틀라스 폴더를 삭제하고 다시 만들었습니다. 지금까지 아무런 변화가없는 것 같습니다.

여기에 자산을로드하는 코드가 있습니다.

NSMutableArray *animationFrames = [NSMutableArray array]; 
SKTextureAtlas *animationAtlas = [SKTextureAtlas atlasNamed:@"animationImages"]; 

for (int i = 1; i < animationAtlas.textureNames.count; i++) { 
    NSString *texture = [NSString stringWithFormat:@"animationImage%02d", i]; 
    [animationFrames addObject:[animationAtlas textureNamed:texture]]; 
} 

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:[animationFrames firstObject]]; 
+0

나는 지금 실제로 일어나고있는 것에 거의 변하지 않습니다. animationAtlas 배열에서 텍스처 이름을 검색하면 시퀀스의 첫 번째 이미지에 대해 잘못된 이름이 표시됩니다. 결과적으로 잘못된 파일을로드하려고 시도 했으므로 찾을 수 없습니다. 나는 파생 된 데이터를 삭제하고 전에도 없었던 다른 장치에 응용 프로그램을로드했지만 여전히 잘못된 이름을 제공합니다. 내가 알아볼 수있는 건 없니? –

+0

이제는 올바른 파일을 찾고 있지만 찾지 못했습니다. –

답변

1

이름의 대소 문자를 변경 한 경우 텍스처 문제가 아닐 것입니다. 자원의 이름을 바꾼 방법에 따라 Xcode 이름은 디스크의 이름과 다를 수 있습니다. 실제 이미지를 복사하지 않고 프로젝트에 대한 참조로 추가 한 경우 문제가 될 가능성이 큽니다. 그룹에 복사 된 경우 (디스크의 폴더로 백업 됨) 어딘가에 이름이 잘못 표시 될 수 있습니다. 당신은 여전히 ​​더티 캐시 사본을 가리키는 거기에없는 리소스를로드 중이다라고 말했고, 그렇다면이 장치에서 앱을 완전히 제거했는지 확인하십시오.

1

iOS에서 파일 시스템은 대소 문자를 구분합니다. 당신은 실제로 예를 들어, 같은 이름은 경우에 서로 다른 두 개의 파일이있을 수 있습니다 프로젝트에서 파일 이름의 대소 문자를 변경한다면

animationImages.png 
animationimages.png 

,이 파일을로드 해당 코드를 변경해야 이름 바꾸기가 파일의 대소 문자를 변경 한 경우에도.

또한 파일을 바꿀 때 장치에서 앱을 삭제하고 프로젝트 -> 정리을 수행해야합니다. Xcode는 번들에 파일을 추가하기 만하면 파일을 제거하지 않으므로 더 이상 프로젝트에 있지 않더라도 코드가 실수로 이전 파일에 액세스 할 수 있습니다.

관련 문제