Ein nicht offizielles Meshy generative KI RESTful-Kunde für die Unity Game Engine.
Alle Urheberrechte, Marken, Logos und Vermögenswerte sind Eigentum ihrer jeweiligen Eigentümer.
Dieses Repository steht zur Verfügung, um in die Meshy -Organisation zu wechseln, wenn sie dies akzeptieren.
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.meshyMy RegistriesMeshy -Paket hinzuhttps://github.com/RageAgainstThePixel/com.rest.meshy.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:
Sie verwenden das MeshyAuthentication , wenn Sie die API wie gezeigt initialisieren:
var api = new MeshyClient ( " msy_apikey123 " ) ; Oder erstellen Sie manuell ein MeshyAuthentication
var api = new MeshyClient ( new MeshyAuthentication ( " msy_apikey123 " ) ) ; 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 MeshyConfiguration -skriptierbares Objekt erstellen.

Versuche, API -Schlüssel aus einer Konfigurationsdatei standardmäßig zu laden .meshy im aktuellen Verzeichnis, wobei optional den Verzeichnisbaum oder im Heimverzeichnis des Benutzers durchquert werden.
So erstellen Sie eine Konfigurationsdatei, erstellen Sie eine neue Textdatei namens .meshy und enthalten die Zeile:
Der Organisationseintrag ist optional.
{
"apiKey" : " msy_apikey123 "
} Sie können die Konfigurationsdatei auch direkt mit dem bekannten Pfad laden, indem Sie statische Methoden in MeshyAuthentication aufrufen:
.meshy -Konfiguration im angegebenen Verzeichnis: var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromDirectory ( " path/to/your/directory " ) ) ;.meshy genannt werden, solange sie dem JSON -Format entspricht: var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromPath ( " path/to/your/file.json " ) ) ; Verwenden Sie die Umgebungsvariablen Ihres Systems an, geben Sie einen API -Schlüssel und eine Organisation an.
MESHY_API_KEY für Ihren API -Schlüssel. var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromEnvironment ( ) ) ;Sie können dieselben Aufgaben im Dashboard wie in der WebApp ausführen.
Pro-Tip: Sie können auch das Kontextfenster verwenden, um in Editor-Optionen für Prefabs und Szenenobjekte schnell zugreifen zu können!
Greifen Sie über Window/Dashboards/Meshy auf das Dashboard zu




Generieren Sie schnell qualitativ hochwertige Texturen für Ihre vorhandenen 3D-Modelle mit Texteingabeaufforderungen und Konzeptkunst.
var api = new MeshyClient ( ) ;
var textToTextureTasks = await api . TextToTextureEndpoint . ListTasksAsync ( 1 , 12 , SortOrder . Descending ) ;
foreach ( var meshyTask in textToTextureTasks )
{
Debug . Log ( $" { meshyTask . Id } | created_at: { meshyTask . CreatedAt } " ) ;
} Erstellt einen neuen Text zur Texturaufgabe und berichtet, dass die Aufgabe abgeschlossen ist.
Geben Sie in einem Prefab- oder Szenen-GameObject, um neu zu strengen:
var api = new MeshyClient ( ) ;
var sphere = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
var request = new TextToTextureRequest ( sphere , " Basketball " , " game assets " , enableOriginalUV : false , resolution : Resolutions . X1024 , artStyle : ArtStyles . Realistic ) ;
var taskResult = await MeshyClient . TextToTextureEndpoint . CreateTextToTextureTaskAsync ( request , new Progress < TaskProgress > ( progress => Debug . Log ( $" [ { progress . Id } ] { progress . Status } : { progress . PrecedingTasks ?? progress . Progress } " ) ) ) ;
Assert . IsNotNull ( taskResult ) ;
Debug . Log ( $" { taskResult . Id } | created_at: { taskResult . FinishedAt } | expires_at: { taskResult . ExpiresAt } " ) ; Wenn Sie mehr Kontrolle über den GLB -Exportprozess benötigen, können Sie auch Ihr eigenes Objekt GLTFast.Export.GameObjectExport übergeben:
var api = new MeshyClient ( ) ;
var sphere = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
var exportSettings = new ExportSettings
{
Format = GltfFormat . Binary ,
FileConflictResolution = FileConflictResolution . Overwrite ,
ComponentMask = ~ ( ComponentType . Camera | ComponentType . Animation | ComponentType . Light ) ,
} ;
var gameObjectExportSettings = new GameObjectExportSettings
{
OnlyActiveInHierarchy = false ,
DisabledComponents = true ,
} ;
var glbExport = new GameObjectExport ( exportSettings , gameObjectExportSettings ) ;
glbExport . AddScene ( new [ ] { sphere } ) ;
var request = new TextToTextureRequest ( glbExport , " Planet " , " game asset, space, vibrant, highly detailed " , enableOriginalUV : false , resolution : Resolutions . X1024 , artStyle : ArtStyles . Realistic ) ;
var taskResult = await MeshyClient . TextToTextureEndpoint . CreateTextToTextureTaskAsync ( request , new Progress < TaskProgress > ( progress => Debug . Log ( $" [ { progress . Id } ] { progress . Status } : { progress . PrecedingTasks ?? progress . Progress } " ) ) ) ;
Assert . IsNotNull ( taskResult ) ;
Debug . Log ( $" { taskResult . Id } | created_at: { taskResult . FinishedAt } | expires_at: { taskResult . ExpiresAt } " ) ;Sie können auch eine öffentliche URL verwenden:
var api = new MeshyClient ( ) ;
var modelUrl = " https://github.com/KhronosGroup/UnityGLTF/raw/master/UnityGLTF/Assets/StreamingAssets/Lantern/glTF-Binary/Lantern.glb "
var request = new TextToTextureRequest ( modelUrl , " Lantern " , " game assets " , resolution : Resolutions . X1024 , artStyle : ArtStyles . Realistic ) ;
var taskResult = await api . TextToTextureEndpoint . CreateTextToTextureTaskAsync ( request , new Progress < TaskProgress > ( progress => Debug . Log ( $" [ { progress . Id } ] { progress . Status } : { progress . PrecedingTasks ?? progress . Progress } " ) ) ) ;
Debug . Log ( $" { taskResult . Id } | created_at: { taskResult . FinishedAt } | expires_at: { taskResult . ExpiresAt } " ) ;Erzeugen Sie schnell beeindruckende 3D -Modelle mit Textanforderungen.
var api = new MeshyClient ( ) ;
var textTo3DTasks = await MeshyClient . TextTo3DEndpoint . ListTasksAsync ( 1 , 12 , SortOrder . Descending ) ;
foreach ( var meshyTask in textTo3DTasks )
{
Debug . Log ( $" { meshyTask . Id } | created_at: { meshyTask . CreatedAt } " ) ;
} var request = new TextTo3DRequest ( " a treasure chest " , " realistic, wooden, carved, highest quality " , resolution : Resolutions . X1024 , artStyle : ArtStyles . Realistic ) ;
var taskResult = await MeshyClient . TextTo3DEndpoint . CreateTextTo3DTaskAsync ( request , new Progress < TaskProgress > ( progress => Debug . Log ( $" [ { progress . Id } ] { progress . Status } : { progress . PrecedingTasks ?? progress . Progress } " ) ) ) ;
Debug . Log ( $" { taskResult . Id } | created_at: { taskResult . FinishedAt } | expires_at: { taskResult . ExpiresAt } " ) ;Verwandeln Sie Ihre 2D -Bilder schnell in atemberaubende 3D -Modelle und erwecken Sie Ihre Grafiken zum Leben.
Euen Derzeit funktioniert nicht mit der aktuellen API -Version.
var api = new MeshyClient ( ) ;
var imageTo3dTasks = await api . ImageTo3DEndpoint . ListTasksAsync ( 1 , 12 , SortOrder . Descending ) ;
foreach ( var meshyTask in imageTo3dTasks )
{
Debug . Log ( $" { meshyTask . Id } | created_at: { meshyTask . CreatedAt } " ) ;
} var api = new MeshyClient ( ) ;
var imageUrl = " https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/Fox/screenshot/screenshot-x150.jpg " ;
var request = new ImageTo3DRequest ( imageUrl ) ;
var taskResult = await api . ImageTo3DEndpoint . CreateImageTo3DTaskAsync ( request , new Progress < TaskProgress > ( progress => Debug . Log ( $" [ { progress . Id } ] { progress . Status } : { progress . PrecedingTasks ?? progress . Progress } " ) ) ) ;
Assert . IsNotNull ( taskResult ) ;
Debug . Log ( $" { taskResult . Id } | created_at: { taskResult . FinishedAt } | expires_at: { taskResult . ExpiresAt } " ) ;