2016-09-15 2 views
0

GKObstacleGraph를 파일에 저장하고로드 할 수 있습니까? 나는 이것에 관해 무엇이라도 발견한다.GamePlayKit GKObstacleGraph 저장 및로드

내 수준의 미리 계산 된 그래프를 저장하고로드하고 싶습니다.

지금까지

NSArray * obstacles = [SKNode obstaclesFromNodePhysicsBodies:arrayOfBodies]; 
_graph = [GKObstacleGraph graphWithObstacles:obstacles bufferRadius:[(BaseUnit *)[_units firstObject] size].width/2]; 
[NSKeyedArchiver archiveRootObject:_graph toFile:@"/Users/roma/Desktop/myGraph.graph"]; 

시도하지만이 내가 가진 것입니다 :

- [GKObstacleGraph encodeWithCoder이 :] : 인식 할 수없는 선택기 인스턴스로 전송이 0x6180000432d0

답변

0

GKObstacleGraph입니다 서브 클래스가 GKGraph이고, (은 macOS 10.12, iOS 10, tvOS 10)은 NSCoding 프로토콜에 대한 적합성을 선언합니다. 즉, NSKeyedArchiver (및 NSKeyedUnarchiver)을 사용하여 NSCoding을 지원하는 다른 모든 개체와 마찬가지로 데이터 또는 파일로 직렬화하고 파일에서 인스턴스를 역 직렬화 할 수 있습니다.

보관에 대한 일반적인 정보 (NSCoding 호환 클래스에 해당)는 Apple Archives and Serializations Programming Guide을 참조하십시오.

또한 MacOS 10.12, iOS 10 또는 tvOS 10에 배포 할 때 Xcode 8에서 비주얼 편집기에서 GKGraph을 만들면 SpriteKit 장면과 함께 사용할 수 있습니다. 그렇게하면 GKScene 클래스를 사용하여 Xcode에서 작성한 .sks 파일의 SpriteKit 장면과 GK 개체 (경로 찾기 그래프뿐만 아니라 엔터티/구성 요소 정보도 포함 할 수 있음)를 모두로드합니다. 이전 OS 버전에서


GKGraph 가족은 NSCoding를 지원하지 않습니다. 그러나 GKObstacleGraph을 재구성하는 데 필요한 모든 정보는 공개적으로 액세스 할 수 있습니다. 따라서 그래프의 버퍼 반경과 장애물 목록을 읽고 장애물의 각 꼭지점 목록을 읽어서 자신의 순차 나열을 구현할 수 있습니다. 그 정보를 원하는대로 파일에 쓰십시오 ... 그래프를 재구성하려면 저장 한 꼭지점에서 GKPolygonObstacle을 만들고 그 장애물과 저장된 버퍼 반경에서 새로운 GKObstacleGraph을 만듭니다.

+0

NSAtchiever (키가 입력되지 않은)를 사용하려고 시도했지만 나에게 예외가 발생했습니다 : – ColdSteel

+0

KeyedArchiever와 동일 – ColdSteel

+0

iOS 9/tvOS 9/OS X 10.11을 사용하고 있습니까? GKGraph 클래스에 보관 기능이 추가되었습니다. (IOS 10/tvOS 10/macOS 10.12) – rickster