ไคลเอนต์ AI RESTFUL ที่ไม่เป็นทางการที่ไม่เป็นทางการสำหรับเอ็นจิ้นเกม Unity
ลิขสิทธิ์เครื่องหมายการค้าโลโก้และสินทรัพย์ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง
พื้นที่เก็บข้อมูลนี้สามารถถ่ายโอนไปยังองค์กร Meshy ได้หากพวกเขาเลือกที่จะยอมรับ
ต้องใช้เอกภาพ 2021.3 LTS หรือสูงกว่า
วิธีการติดตั้งที่แนะนำคือแม้ว่า Unity Package Manager และ OpenUPM
Package Manager 
OpenUPMhttps://package.openupm.comcom.rest.meshyMy RegistriesMeshyhttps://github.com/RageAgainstThePixel/com.rest.meshy.git#upmหมายเหตุ: repo นี้มีการพึ่งพาที่เก็บอื่น ๆ ! คุณต้องรับผิดชอบในการเพิ่มสิ่งเหล่านี้ด้วยตัวคุณเอง
มี 4 วิธีในการจัดหาคีย์ API ของคุณตามลำดับความสำคัญ:
คุณใช้ MeshyAuthentication เมื่อคุณเริ่มต้น API ดังที่แสดง:
var api = new MeshyClient ( " msy_apikey123 " ) ; หรือสร้างวัตถุ MeshyAuthentication ด้วยตนเอง
var api = new MeshyClient ( new MeshyAuthentication ( " msy_apikey123 " ) ) ; คุณสามารถบันทึกคีย์ได้โดยตรงลงในวัตถุสคริปต์ที่อยู่ในโฟลเดอร์ Assets/Resources
คุณสามารถสร้างใหม่ได้โดยใช้เมนูบริบทของบานหน้าต่างโครงการและสร้างวัตถุสคริปต์ MeshyConfiguration ใหม่

ความพยายามในการโหลดคีย์ API จากไฟล์การกำหนดค่าโดยค่าเริ่มต้น .meshy ในไดเรกทอรีปัจจุบันโดยทางเลือกข้ามแผนผังไดเรกทอรีหรือในไดเรกทอรีบ้านของผู้ใช้
ในการสร้างไฟล์กำหนดค่าให้สร้างไฟล์ข้อความใหม่ชื่อ .meshy และมีบรรทัด:
รายการองค์กรเป็นทางเลือก
{
"apiKey" : " msy_apikey123 "
} นอกจากนี้คุณยังสามารถโหลดไฟล์กำหนดค่าได้โดยตรงด้วยเส้นทางที่รู้จักโดยเรียกวิธีการคงที่ใน MeshyAuthentication :
.meshy config ในไดเรกทอรีที่ระบุ: var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromDirectory ( " path/to/your/directory " ) ) ;.meshy ตราบเท่าที่มันสอดคล้องกับรูปแบบ JSON: var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromPath ( " path/to/your/file.json " ) ) ; ใช้ตัวแปรสภาพแวดล้อมของระบบของคุณระบุคีย์ API และองค์กรที่จะใช้
MESHY_API_KEY สำหรับคีย์ API ของคุณ var api = new MeshyClient ( new MeshyAuthentication ( ) . LoadFromEnvironment ( ) ) ;คุณสามารถทำงานเดียวกันในแผงควบคุมได้เช่นเดียวกับใน WebApp
Pro-Tip: คุณสามารถใช้หน้าต่างบริบทเพื่อเข้าถึงตัวเลือกตัวแก้ไขได้อย่างรวดเร็วสำหรับ prefabs และวัตถุฉาก!
เข้าถึงแดชบอร์ดผ่าน Window/Dashboards/Meshy




สร้างพื้นผิวที่มีคุณภาพสูงอย่างรวดเร็วสำหรับรุ่น 3 มิติที่มีอยู่ของคุณโดยใช้ข้อความแจ้งข้อความและแนวคิดศิลปะ
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 } " ) ;
} สร้างข้อความใหม่ไปยังงานพื้นผิวและรายงานความคืบหน้าจนกว่างานจะเสร็จสมบูรณ์
ผ่าน prefab หรือ scene gameObject ที่จะได้รับการปรับปรุงใหม่:
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 } " ) ; หากคุณต้องการควบคุมกระบวนการส่งออก GLB มากขึ้นคุณสามารถส่งผ่าน GLTFast.Export.GameObjectExport ของคุณเอง: วัตถุ:
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 } " ) ;คุณยังสามารถใช้ URL สาธารณะ:
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 } " ) ;สร้างรุ่น 3 มิติที่น่าประทับใจอย่างรวดเร็วโดยใช้ข้อความแจ้ง
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 } " ) ;เปลี่ยนภาพ 2D ของคุณอย่างรวดเร็วให้เป็นรุ่น 3 มิติที่น่าทึ่งและทำให้ภาพของคุณมีชีวิตชีวา
ปัจจุบันไม่ทำงานกับเวอร์ชัน API ปัจจุบัน
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 } " ) ;