아카이브 통지 :이 저장소는 이제 공식 Blockadelabs SDK v2.0.0과 통합되었습니다.
모든 저작권, 상표, 로고 및 자산은 해당 소유자의 자산입니다.
Unity 2021.3 lts 이상이 필요합니다.
권장 설치 방법은 Unity Package Manager 및 OpenUPM입니다.
Package Manager 선택하십시오 
OpenUPMhttps://package.openupm.comcom.rest.blockadelabscom.utilitiesMy Registries 로 변경하십시오BlockadeLabs 패키지를 추가하십시오https://github.com/RageAgainstThePixel/com.rest.blockadelabs.git#upm 에서 패키지를 추가하십시오참고 :이 repo는 다른 저장소에 의존적입니다! 귀하는 직접 추가 할 책임이 있습니다.
우선 순위로 API 키를 제공하는 4 가지 방법이 있습니다.
경고
환경 변수를 사용하여 소스에 하드 코딩하는 대신 API 키를로드하는 것이 좋습니다. 이 방법을 제작에 사용하는 것이 아니라 사용자 자격 증명, 로컬 테스트 및 빠른 시작 시나리오를 수락하는 데만 사용하는 것이 좋습니다.
var api = new BlockadeLabsClient ( " yourApiKey " ) ; 또는 수동으로 BlockadeLabsAuthentication 객체를 만듭니다
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( " yourApiKey " ) ) ; 키를 Assets/Resources 폴더에있는 스크립트 가능한 객체에 직접 저장할 수 있습니다.
프로젝트 창의 컨텍스트 메뉴를 사용하여 새 BlockadeLabsConfiguration 스크립트 가능한 객체를 만들어 새 것을 만들 수 있습니다.

구성 파일에서 기본적으로 .blockadelabs 의 현재 디렉토리에서 API 키를로드하려고 시도하여 디렉토리 트리 또는 사용자의 홈 디렉토리에서 선택적으로 전환합니다.
구성 파일을 만들려면 .blockadelabs 라는 새 텍스트 파일을 만들고 줄을 포함하십시오.
{
"apiKey" : " yourApiKey " ,
}인증에서 정적 메소드를 호출하여 알려진 경로로 파일을 직접로드 할 수도 있습니다.
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromDirectory ( " your/path/to/.blockadelabs " ) ) ; ; 시스템의 환경 변수를 사용하여 사용할 API 키를 지정하십시오.
BLOCKADELABS_API_KEY 사용하십시오. var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromEnvironment ( ) ) ;Blockadelabs 대시 보드를 사용하여 편집기에서 Blockadelabs 웹 사이트에서 동일한 동일한 작업을 모두 수행 할 수 있습니다!
Window/Dashboards/BlockadeLabs

스카이 박스를 생성하고 편집기에서 직접 리믹스하십시오.

또한 생성 된 모든 스카이 박스의 전체 목록에 액세스 할 수 있으며 프로젝트에 직접 다운로드 할 수 있습니다.

스카이 박스 생성의 전반적인 미학에 영향을 줄 수있는 사전 정의 된 스타일 목록을 반환합니다.
var api = new BlockadeLabsClient ( ) ;
var skyboxStyles = await api . SkyboxEndpoint . GetSkyboxStylesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} 스타일 패밀리별로 정렬 된 스카이 박스 생성의 전반적인 미학에 영향을 줄 수있는 사전 정의 된 스타일 목록을 반환합니다. 이 경로는 가족이 분류 한 스타일 메뉴를 만들기 위해 사용할 수 있습니다.
var api = new BlockadeLabsClient ( ) ;
var skyboxFamilyStyles = await BlockadeLabsClient . SkyboxEndpoint . GetSkyboxStyleFamiliesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxFamilyStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} 사용 가능한 모든 내보내기 유형의 목록을 반환합니다.
var api = new BlockadeLabsClient ( ) ;
var exportOptions = await api . SkyboxEndpoint . GetAllSkyboxExportOptionsAsync ( ) ;
foreach ( var exportOption in exportOptions )
{
Debug . Log ( $" { exportOption . Id } : { exportOption . Name } | { exportOption . Key } " ) ;
}
var request = new SkyboxRequest ( " mars " , enhancePrompt : true ) ;
// Generates ALL export options for the skybox
var skyboxInfo = await api . SkyboxEndpoint . GenerateSkyboxAsync ( request , exportOptions ) ;
Debug . Log ( $" Successfully created skybox: { skyboxInfo . Id } " ) ; 스카이 박스를 생성하십시오.
var api = new BlockadeLabsClient ( ) ;
var skyboxStyles = await BlockadeLabsClient . SkyboxEndpoint . GetSkyboxStylesAsync ( SkyboxModel . Model3 ) ;
var request = new SkyboxRequest ( skyboxStyles . First ( ) , " mars " , enhancePrompt : true ) ;
// You can also get progress callbacks when the generation progress has changed/updated
var progress = new Progress < SkyboxInfo > ( async progress =>
{
Debug . Log ( progress ) ;
} ) ;
var skyboxInfo = await api . SkyboxEndpoint . GenerateSkyboxAsync ( request , progressCallback : progress ) ;
Debug . Log ( $" Successfully created skybox: { skyboxInfo . Id } " ) ;
if ( skyboxInfo . TryGetAsset < Texture2D > ( SkyboxExportOption . Equirectangular_PNG , out var texture ) )
{
skyboxMaterial . mainTexture = texture ;
} 주어진 Skybox ID의 Skybox 메타 데이터를 반환합니다.
var skyboxId = 42 ;
var api = new BlockadeLabsClient ( ) ;
var skyboxInfo = await api . SkyboxEndpoint . GetSkyboxInfoAsync ( skyboxId ) ;
Debug . Log ( $" Skybox: { result . Id } " ) ;
// Note: If you wish to use the returned skybox info textures you'll need to additionally call await SkyboxInfo.LoadAssetsAsync(); before you can assign them to a material property.
await skyboxInfo . LoadAssetsAsync ( ) ;
if ( skyboxInfo . TryGetAsset < Texture2D > ( SkyboxExportOption . Equirectangular_PNG , out var texture ) )
{
skyboxMaterial . mainTexture = texture ;
} 요청 된 내보내기 유형으로 Skybox를 내 보냅니다.
메모
처음에 Skybox를 생성 할 때 내보내기 유형을 지정할 수도 있습니다.
var skyboxId = 42 ;
var api = new BlockadeLabsClient ( ) ;
var skyboxInfo = await api . SkyboxEndpoint . GetSkyboxInfoAsync ( skyboxId ) ;
skyboxInfo = await api . SkyboxEndpoint . ExportSkyboxAsync ( skyboxInfo , DefaultExportOptions . DepthMap_PNG ) ;
await skyboxInfo . LoadAssetsAsync ( ) ;
if ( skyboxInfo . TryGetAsset < Texture2D > ( SkyboxExportOption . DepthMap_PNG , out var texture ) )
{
skyboxMaterial . depthTexture = texture ;
} ID별로 스카이 박스를 삭제합니다.
var skyboxId = 42 ;
var result = await api . SkyboxEndpoint . DeleteSkyboxAsync ( skybox ) ;
// result == true 이전에 생성 된 스카이 박스를 가져옵니다.
var history = await api . SkyboxEndpoint . GetSkyboxHistoryAsync ( ) ;
Debug . Log ( $" Found { history . TotalCount } skyboxes " ) ;
foreach ( var skybox in history . Skyboxes )
{
Debug . Log ( $" { skybox . Id } { skybox . Title } status: { skybox . Status } " ) ;
} ID로 보류중인 Skybox Generation 요청을 취소합니다.
var skyboxId = 42 ;
var result = await CancelSkyboxGenerationAsync ( skyboxId ) ;
// result == true 메모
이것은 취소 토큰을 사용하여 Skybox 생성을 취소 할 때 자동으로 수행됩니다.
보류중인 모든 Skybox Generation 요청을 취소합니다.
var result = await api . SkyboxEndpoint . CancelAllPendingSkyboxGenerationsAsync ( ) ;
Debug . Log ( result ? " All pending generations successfully cancelled " : " No pending generations " ) ;