다음을 통해 공유


WLT+ASA: 지원 소프트웨어 개요

IBinder - SpacePins를 Azure Spatial Anchors에 바인딩

IBinder 인터페이스는 중심에 있으며, 여기서는 SpacePinBinder 클래스를 통해 구현됩니다. SpacePinBinder는 Unity Monobehaviour이며 Unity Inspector 또는 스크립트에서 구성할 수 있습니다.

IBinder이름이 있으므로IBindingOracle 하나가 여러 IBinder의 바인딩을 관리할 수 있습니다.

IPublisher - 공간 앵커를 읽고 클라우드에 쓰기

IPublisher 인터페이스는 클라우드에 공간 앵커를 게시한 다음, 후속 세션 또는 다른 디바이스에서 공간 앵커를 검색하는 작업을 처리합니다. 여기서 IPublisherPublisherASA 클래스를 사용하여 구현됩니다. 현재 물리적 공간의 포즈 데이터는 Azure Spatial Anchors를 사용하여 캡처되고 검색됩니다.

공간 앵커가 게시되면 클라우드 앵커 ID를 얻게 됩니다. 이 ID는 같이 저장된 속성과 함께 후속 세션 또는 다른 디바이스에서 클라우드 앵커의 포즈를 현재 좌표계로 검색하는 데 사용할 수 있습니다. 시스템은 항상 클라우드 앵커와 연결된 SpacePin을 식별하는 속성을 추가합니다.

IPublisher 및 PublisherASA는 SpacePins에 대해 아무것도 알지 못한다는 사실에 유의해야 합니다. IPublisher는 클라우드 앵커 데이터로 수행되는 작업을 알거나 신경 쓰지 않습니다. 클라우드 앵커를 게시하고 검색하기 위한 간소화된 대기 가능 인터페이스를 제공합니다.

Read와 Find 비교

클라우드 앵커의 ID가 알려진 경우 ID로 클라우드 앵커를 검색할 수 있습니다. 이 메서드는 클라우드 앵커를 검색하는 가장 강력한 방법입니다. 이 메서드는 읽기입니다.

그러나 디바이스가 영역 내의 클라우드 앵커 ID를 모르지만 클라우드 앵커를 검색할 수 있으면 공간 데이터와 속성을 결합하여 충분히 유용한 정보를 제공할 수 있는 흥미로운 경우가 있습니다.

Find는 디바이스 주변 영역에서 클라우드 앵커를 검색하여 발견된 모든 항목을 반환합니다. 이 프로세스를 거친 재배치라고 합니다.

IBindingOracle - 클라우드 앵커 ID 공유

IBindingOracle 인터페이스는 SpacePins와 특정 클라우드 앵커 간에 바인딩을 유지하고 공유하는 수단을 제공합니다. 특히 IBinder 이름과 함께 space-pin-ID/cloud-anchor-ID 쌍을 유지합니다.

Oracle의 인터페이스는 매우 간단합니다. IBinder가 지정되면 IBinder의 바인딩을 Put할 수도 있고 Get할 수도 있습니다. Put은 바인딩을 저장하고, Get은 바인딩을 검색합니다. 스토리지 및 검색 메커니즘은 IBindingOracle 인터페이스를 구현하는 구체적인 클래스 구현에 남아 있습니다.

이 샘플은 가능한 가장 간단한 IBindingOracle을 SpacePinBinderFile 클래스의 형태로 구현합니다. Put은 IBinder의 바인딩을 텍스트 파일에 씁니다. Get은 텍스트 파일(사용 가능한 경우)에서 바인딩을 읽어 와서 IBinder에 제공합니다.

ILocalPeg - 실제 공간에 위치를 표시하는 Blob

ILocalPeg 인터페이스는 디바이스 로컬 앵커의 추상화입니다. 보다 완벽한 세계에서는 필요한 ILocalPegs가 내부적으로 IPublisher를 통해 관리됩니다. 그러나 디바이스 로컬 앵커는 디바이스가 앵커의 포즈 근처에 있는 동안 만들 때 훨씬 더 잘 작동합니다. IPublisher는 디바이스 로컬 앵커가 필요할 때 배치해야 하는 위치만 알고 있을 뿐, 최적의 시점은 알지 못합니다.

SpacePinASA는 로컬 앵커를 만드는 최적의 타이밍을 알고 있습니다. SpacePin 조작이 끝나고 포즈가 설정되면 SpacePinASA는 IPublisher에 원하는 포즈로 불투명 로컬 페그를 만들도록 요청합니다. 그 후 SpacePinBinder는 SpacePinASA에서 ILocalPeg를 끌어온 다음, 클라우드 공간 앵커 만들기에 사용할 수 있도록 IPublisher에 전달합니다.

추가 정보