Pemberitahuan Arsip: Repositori ini sekarang telah diintegrasikan dengan Blockadelab resmi SDK V2.0.0
Semua hak cipta, merek dagang, logo, dan aset adalah milik pemiliknya masing -masing.
Membutuhkan persatuan 2021.3 LTS atau lebih tinggi.
Metode instalasi yang disarankan adalah meskipun Unity Package Manager dan OpenUpm.
Package Manager 
OpenUPMhttps://package.openupm.comcom.rest.blockadelabscom.utilitiesMy RegistriesBlockadeLabshttps://github.com/RageAgainstThePixel/com.rest.blockadelabs.git#upmCatatan: Repo ini memiliki dependensi pada repositori lain! Anda bertanggung jawab untuk menambahkan ini sendiri.
Ada 4 cara untuk memberikan kunci API Anda, dalam urutan prioritas:
Peringatan
Kami merekomendasikan menggunakan variabel lingkungan untuk memuat kunci API alih -alih memiliki kode keras di sumber Anda. Tidak disarankan menggunakan metode ini dalam produksi, tetapi hanya untuk menerima kredensial pengguna, pengujian lokal dan skenario start cepat.
var api = new BlockadeLabsClient ( " yourApiKey " ) ; Atau membuat objek BlockadeLabsAuthentication secara manual
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( " yourApiKey " ) ) ; Anda dapat menyimpan kunci langsung ke objek skrip yang terletak di folder Assets/Resources .
Anda dapat membuat yang baru dengan menggunakan menu konteks panel proyek dan membuat objek skrip BlockadeLabsConfiguration baru.

Upaya memuat tombol API dari file konfigurasi, secara default .blockadelabs di direktori saat ini, secara opsional melintasi pohon direktori atau di direktori home pengguna.
Untuk membuat file konfigurasi, buat file teks baru bernama .blockadelabs dan berisi baris:
{
"apiKey" : " yourApiKey " ,
}Anda juga dapat memuat file secara langsung dengan jalur yang diketahui dengan memanggil metode statis dalam otentikasi:
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromDirectory ( " your/path/to/.blockadelabs " ) ) ; ; Gunakan variabel lingkungan sistem Anda Tentukan kunci API untuk digunakan.
BLOCKADELABS_API_KEY untuk kunci API Anda. var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromEnvironment ( ) ) ;Anda dapat melakukan semua tindakan yang sama dari situs web Blockadelabs, di editor menggunakan dasbor Blockadelabs!
Window/Dashboards/BlockadeLabs

Hasilkan skybox dan remix langsung di editor.

Anda juga memiliki akses ke daftar lengkap semua skybox yang Anda hasilkan, siap untuk diunduh langsung ke proyek Anda.

Mengembalikan daftar gaya yang telah ditentukan yang dapat memengaruhi keseluruhan estetika generasi Skybox Anda.
var api = new BlockadeLabsClient ( ) ;
var skyboxStyles = await api . SkyboxEndpoint . GetSkyboxStylesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} Mengembalikan daftar gaya yang telah ditentukan yang dapat memengaruhi estetika keseluruhan generasi Skybox Anda, diurutkan berdasarkan keluarga gaya. Rute ini dapat digunakan untuk membangun menu gaya yang diurutkan berdasarkan keluarga.
var api = new BlockadeLabsClient ( ) ;
var skyboxFamilyStyles = await BlockadeLabsClient . SkyboxEndpoint . GetSkyboxStyleFamiliesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxFamilyStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} Mengembalikan daftar semua jenis ekspor yang tersedia.
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 } " ) ; Menghasilkan skybox.
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 ;
} Mengembalikan metadata Skybox untuk ID Skybox yang diberikan.
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 ;
} Ekspor Skybox dengan jenis ekspor yang diminta.
Catatan
Anda juga dapat menentukan jenis ekspor saat awalnya menghasilkan 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 ;
} Menghapus skybox dengan ID.
var skyboxId = 42 ;
var result = await api . SkyboxEndpoint . DeleteSkyboxAsync ( skybox ) ;
// result == true Mendapat skybox yang dihasilkan sebelumnya.
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 } " ) ;
} Membatalkan permintaan pembuatan skybox yang tertunda oleh ID.
var skyboxId = 42 ;
var result = await CancelSkyboxGenerationAsync ( skyboxId ) ;
// result == true Catatan
Ini secara otomatis dilakukan saat membatalkan generasi Skybox menggunakan token pembatalan.
Membatalkan semua permintaan generasi Skybox yang tertunda.
var result = await api . SkyboxEndpoint . CancelAllPendingSkyboxGenerationsAsync ( ) ;
Debug . Log ( result ? " All pending generations successfully cancelled " : " No pending generations " ) ;