Archivitätshinweise: Dieses Repository wurde jetzt in die offiziellen Blockadelabs SDK v2.0.0 integriert
Alle Urheberrechte, Marken, Logos und Vermögenswerte sind Eigentum ihrer jeweiligen Eigentümer.
Erfordert Einheit 2021.3 LTs oder höher.
Die empfohlene Installationsmethode ist der Unity Package Manager und OpenUpM.
Package Manager aus 
OpenUPMhttps://package.openupm.comcom.rest.blockadelabscom.utilitiesMy RegistriesBlockadeLabs -Paket hinzuhttps://github.com/RageAgainstThePixel/com.rest.blockadelabs.git#upmHinweis: Dieses Repo hat Abhängigkeiten von anderen Repositorys! Sie sind dafür verantwortlich, diese selbst hinzuzufügen.
Es gibt 4 Möglichkeiten, Ihre API -Schlüsseln in der Reihenfolge der Vorrang vorzunehmen:
Warnung
Wir haben empfohlen, die Umgebungsvariablen zu verwenden, um den API -Schlüssel zu laden, anstatt sie in Ihrer Quelle schwer codiert zu haben. Es wird nicht empfohlen, diese Methode in der Produktion zu verwenden, sondern nur für die Akzeptanz von Benutzeranmeldeinformationen, lokalen Tests und Schnellstartszenarien.
var api = new BlockadeLabsClient ( " yourApiKey " ) ; Oder erstellen Sie ein BlockadeLabsAuthentication manuell
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( " yourApiKey " ) ) ; Sie können den Schlüssel direkt in ein skriptierbares Objekt speichern, das sich im Ordner Assets/Resources befindet.
Sie können eine neue erstellen, indem Sie das Kontextmenü des Projektbereichs verwenden und ein neues BlockadeLabsConfiguration -skriptierbares Objekt erstellen.

Versuche, API -Schlüssel aus einer Konfigurationsdatei .blockadelabs im aktuellen Verzeichnis zu laden, durchqueren Sie optional den Verzeichnisbaum oder im Heimverzeichnis des Benutzers.
Um eine Konfigurationsdatei zu erstellen, erstellen Sie eine neue Textdatei mit dem Namen .blockadelabs und enthalten die Zeile:
{
"apiKey" : " yourApiKey " ,
}Sie können die Datei auch direkt mit dem bekannten Pfad laden, indem Sie eine statische Methode in der Authentifizierung aufrufen:
var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromDirectory ( " your/path/to/.blockadelabs " ) ) ; ; Verwenden Sie die Umgebungsvariablen Ihres Systems an, geben Sie einen API -Schlüssel an.
BLOCKADELABS_API_KEY für Ihren API -Schlüssel. var api = new BlockadeLabsClient ( new BlockadeLabsAuthentication ( ) . LoadFromEnvironment ( ) ) ;Sie können alle dieselben Aktionen von der Blockadelabs -Website im Editor mit dem Blockadelabs Dashboard ausführen!
Window/Dashboards/BlockadeLabs

Generieren Sie Skyboxes und remixen Sie sie direkt im Editor.

Sie haben auch Zugriff auf die vollständige Liste aller generierten Skyboxes, die direkt in Ihr Projekt heruntergeladen werden können.

Gibt die Liste der vordefinierten Stile zurück, die die allgemeine Ästhetik Ihrer Skybox -Generation beeinflussen können.
var api = new BlockadeLabsClient ( ) ;
var skyboxStyles = await api . SkyboxEndpoint . GetSkyboxStylesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} Gibt die Liste der vordefinierten Stile zurück, die die allgemeine Ästhetik Ihrer Skybox -Generation beeinflussen können, sortiert von Style Family. Diese Route kann verwendet werden, um ein von der Familie sortierter Stilmenü zu erstellen.
var api = new BlockadeLabsClient ( ) ;
var skyboxFamilyStyles = await BlockadeLabsClient . SkyboxEndpoint . GetSkyboxStyleFamiliesAsync ( SkyboxModel . Model3 ) ;
foreach ( var skyboxStyle in skyboxFamilyStyles )
{
Debug . Log ( $" { skyboxStyle . Name } " ) ;
} Gibt die Liste aller verfügbaren Exporttypen zurück.
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 } " ) ; Generieren Sie eine 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 ;
} Gibt die Skybox -Metadaten für die angegebene Skybox -ID zurück.
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 ;
} Exportiert die Skybox mit dem angeforderten Exporttyp.
Notiz
Sie können die Exporttypen auch angeben, wenn Sie zunächst eine Skybox generieren.
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 ;
} Löscht eine Skybox mit ID.
var skyboxId = 42 ;
var result = await api . SkyboxEndpoint . DeleteSkyboxAsync ( skybox ) ;
// result == true Ruft die zuvor erzeugten Skyboxen ab.
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 } " ) ;
} Storniert eine ausstehende Skybox -Generierungsanforderung per ID.
var skyboxId = 42 ;
var result = await CancelSkyboxGenerationAsync ( skyboxId ) ;
// result == true Notiz
Dies erfolgt automatisch, wenn eine Skybox -Generation mithilfe von Stornierungsstoken abgesagt wird.
Storniert alle ausstehenden Anfragen zur Erzeugung von Skybox.
var result = await api . SkyboxEndpoint . CancelAllPendingSkyboxGenerationsAsync ( ) ;
Debug . Log ( result ? " All pending generations successfully cancelled " : " No pending generations " ) ;