عميل Rectful من الذكاء الاصطناعي غير الرسمي لمحرك لعبة الوحدة.
جميع حقوق الطبع والنشر والعلامات التجارية والشعارات والأصول هي ملك لأصحابها المعنيين.
هذا المستودع متاح للانتقال إلى المنظمة المشوية إذا اختاروا قبولها.
يتطلب الوحدة 2021.3 LTS أو أعلى.
طريقة التثبيت الموصى بها هي على الرغم من أن Manager Unity Package Manager و OpenUPM.
Package Manager 
OpenUPMhttps://package.openupm.comcom.rest.meshyMy RegistriesMeshyhttps://github.com/RageAgainstThePixel/com.rest.meshy.git#upmملاحظة: هذا الريبو لديه تبعيات على مستودعات أخرى! أنت مسؤول عن إضافة هذه بنفسك.
هناك 4 طرق لتوفير مفاتيح واجهة برمجة التطبيقات الخاصة بك ، حسب الأسبقية:
يمكنك استخدام MeshyAuthentication عند تهيئة واجهة برمجة التطبيقات كما هو موضح:
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 meshy في الدليل المحدد: 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: يمكنك أيضًا استخدام نافذة السياق للوصول بسرعة إلى خيارات المحرر للبكتيريا المسبقة وكائنات المشهد!
الوصول إلى لوحة القيادة عبر Window/Dashboards/Meshy




قم بإنشاء قوام عالية الجودة بسرعة لنماذج ثلاثية الأبعاد الحالية باستخدام مطالبات النص وفن المفهوم.
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 compject لإعادة تكوينها:
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 } " ) ;قم بإنشاء نماذج ثلاثية الأبعاد رائعة باستخدام مطالبات النص.
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 } " ) ;قم بتحويل صورك ثنائية الأبعاد بسرعة إلى نماذج ثلاثية الأبعاد مذهلة وتجلب صورك إلى الحياة.
️ حاليا لا يعمل مع إصدار 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 } " ) ;