
المؤلف:YMC_MHZآخر تحديث:06/08/2025 08:42:5310.4M2.1MB
تم إنشاء جميع النماذج بواسطة قط يوري كاليبسو، خصيصًا لهذا التعديل: 3
جميع النماذج مصنوعة منقطة يوري كاليبسوصنع لهذه الوحدة: 3

تعديل ديكور بسيط وممتع يوفر أ للاعبين لاستيراد النماذج المخصصة.
في الوقت الحالي، لا تتوفر سوى عدد قليل من الزخارف، ولكن من المخطط لمزيد من التحديثات.
قائمة نيك ماو تعديل مطلوب كشرط مسبق.
إذا واجهت مشاكل في فقدان القوة، يرجى تنزيل قوة ثابتة نمط.
وحدات زخرفية بسيطة وممتعة، توفر حزمة الوحدة، للاعبين لاستيراد نماذج مخصصة.
لا يوجد سوى عدد قليل من الزخارف حاليًا وسيتم تحديثها باستمرار في المستقبل.
مطلوب التثبيت قائمة نيك ماو الوحدة الأمامية.
إذا واجهت مشكلة فقدان القوة، يرجى تنزيلها قوة ثابتة وحدة.
* منقار الدجاج في لقطة الشاشة يأتي من EvenMoreHead.
).التنظيم الكهربائي، يمكن العثور عليه في الزاوية اليسرى السفلية زر "المزيد من الرأس"。


مع تم تحديثه إلى 2.1.3, مور هيد يجب تحديثه إلى 1.3.0 أو لاحقًا للعمل بشكل صحيح.
⚠ ️ إذا كنت لا تزال تستخدم
مور هيد 1.2.8أو قبل ذلك، يرجى الاحتفاظ بهامينوليبفي2.1.1أو قبل ذلك لتجنب مشاكل التوافق.
للحصول على أفضل تجربة واستقرار، نوصي دائمًا باستخدام أحدث إصدار.
تم تحديثه إلى 2.1.3، وبالتالي مور هيد تحتاج إلى الترقية إلى 1.3.0 أو إصدار أحدث للعمل بشكل صحيح.
⚠ ️ إذا كنت لا تزال تستخدم
مور هيد 1.2.8أو إصدار سابق ، تأكد منمينوليبلا يزال2.1.1أو إصدار سابق، وإلا فقد تحدث مشكلات التوافق.
لضمان أفضل تجربة واستقرار، يوصى دائمًا باستخدام أحدث إصدار.
→ 1.2.8+
1.0.3 → 1.1.8+ مطلوب.
مينوليب 2.0.0 → مطلوب مور هيد 1.2.8+
مينوليب 1.0.3 → مطلوب مور هيد 1.1.8+ نسخة.
يوفر morehead العديد من خيارات التكوين التي يمكن تعديلها في ملف تكوين bepinex (BepInEx/config/Mhz.REPOMoreHead.cfg):
| خيار | ||
|---|---|---|
| EscButtonPosX | X موضع زر morehead في قائمة esc | 0 |
| EscButtonPosY | موضع y لزر morehead في قائمة esc | 0 |
| LobbyButtonPosX | X موضع زر morehead في الردهة | 0 |
| زر الردهة | Y موضع زر morehead في الردهة | 0 |
يسمح لك ضبط هذه القيم بإعادة تحديد موضع أزرار الرأس الأخرى إذا تعارضت مع عناصر mod ui الأخرى.
| خيار | وصف | الافتراضي |
|---|---|---|
| وضع القائمة الأسود | تعيين على "ENABLE_BLACKLIST" لتمكين وظيفة القائمة السوداء | "" (معاق) |
عند تمكين وضع القائمة السوداء:
تحول + انقر على أزرار الديكور لإضافة/إزالة العناصر من القائمة السوداءالتحول + مسح الكل لمسح القائمة السوداء بأكملها في وقت واحدلن تظهر الزخارف المدرجة في القائمة السوداء في قائمة الزخارف الخاصة بك، وهي مفيدة لإخفاء العناصر التي لا تريد استخدامها.
💡 يوصى بأن يقوم لاعب واحد بإدارة القائمة السوداء ومشاركتها عبر رمز التعديل أو
BepInEx/config/MoreHeadBlacklist.jsonالملف لضمان مزامنة المظهر في متعدد اللاعبين.
💡 قبل المشاركة، تأكد من تعطيل وضع القائمة السوداء (مسح قيمة التكوين) لمنع التغييرات غير المقصودة من اللاعبين الآخرين.
| خيار | الافتراضي | |
|---|---|---|
| تمكين التسجيل | تمكين السجلات التفصيلية لتحميل النموذج | كاذبة |
قم بتمكين هذا الخيار لرؤية سجلات أكثر تفصيلاً حول عملية تحميل النموذج، وهو مفيد لاستكشاف الأخطاء وإصلاحها.
| ملف | مسار | وصف |
|---|---|---|
| MoreHeadConfig.json | |
ملف التكوين الرئيسي لتخزين حالات الديكور |
| MoreHeadOutfits.json | [Unity.persistentDataPath]/REPOModData/MoreHead/ |
تخزين ما يصل إلى 5 مجموعات من تكوينات الملابس |
| Mhz.REPOMoreHead.cfg | |
ملف تكوين bepinex مع تحديد المواقع ui وإعدادات أخرى |
| MoreHeadBlacklist.json | بيبينكس/تكوين/ |
ملف القائمة السوداء لإخفاء الزخارف غير المرغوب فيها |
| الديكورات (ملفات. hhh) | بيبينكس/المكونات الإضافية/ أوBepInEx/المكونات الإضافية/MoreHead/الديكورات/ |
نماذج الديكور المخصصة |
ملاحظة: [Unity.persistentDataPath] عادةً ما يقرر:
ج: /Users/[YourName]/AppData/LocalLow/semiwork/Repo/~/.config/unity3d/semiwork/Repo/~/مكتبة/دعم التطبيق/نصف العمل/إعادة الإعمار/يوفر MoreHead العديد من خيارات التكوين التي يمكن تعديلها في ملف تكوين BepInEx (BepInEx/config/Mhz.REPOMoreHead.cfg):
| الخيارات | الوصف | القيمة الافتراضية |
|---|---|---|
| EscButtonPosX | إحداثيات X لزر MoreHead في قائمة ESC | 0 |
| EscButtonPosY | الإحداثيات Y لزر MoreHead في قائمة ESC | 0 |
| LobbyButtonPosX | إحداثيات X لزر MoreHead في الردهة | 0 |
| زر الردهة | الإحداثيات Y لزر MoreHead في الردهة | 0 |
يمكن أن يؤدي ضبط هذه القيم إلى إعادة وضع زر MoreHead لتجنب التعارض مع عناصر واجهة المستخدم للوحدات الأخرى.
| الخيارات | الوصف | القيمة الافتراضية |
|---|---|---|
| وضع القائمة الأسود | اضبط على "ENABLE_BLACKLIST" لتمكين القائمة السوداء | "" (معطل) |
بعد تمكين وضع القائمة السوداء:
تحول + انقر زر مستحضرات التجميل لإضافة/إزالة عناصر القائمة السوداءالتحول + مسح الكل يمكن مسح جميع إدخالات القائمة السوداء دفعة واحدةمستحضرات التجميل المدرجة في القائمة السوداء لن تظهر في قائمة الديكور الخاصة بك، وهو أمر مفيد لإخفاء العناصر التي لا تريد استخدامها.
💡 يوصى بأن يحتفظ لاعب واحد بالقائمة السوداء ، عن طريق مشاركة رمز الوحدة أو إرسالها مباشرة
BepInEx/config/MoreHeadBlacklist.jsonملفات لضمان مزامنة المظهر أثناء الألعاب متعددة اللاعبين.
💡 يرجى التأكد من إيقاف تشغيل وضع القائمة السوداء (مسح سلسلة عنصر التكوين) قبل المشاركة لتجنب عدم مزامنة البيانات بسبب لمسها عن طريق الخطأ من قبل اللاعبين الآخرين.
| الخيارات | الوصف | القيمة الافتراضية |
|---|---|---|
| تمكين التسجيل | تمكين السجلات التفصيلية لتحميل النموذج | كاذبة |
قم بتمكين هذا الخيار لعرض سجل أكثر تفصيلاً لعملية تحميل النموذج ، مما يساعد في استكشاف الأخطاء وإصلاحها.
| الوثائق | الطريق | الوصف |
|---|---|---|
| MoreHeadConfig.json | |
ملف التعريف الرئيسي، الذي يخزن حالة الديكور |
| MoreHeadOutfits.json | [Unity.persistentDataPath] /REPOModData/MoreHead/ |
تخزين ما يصل إلى 5 مجموعات من تكوينات المعدات |
| Mhz.REPOMoreHead.cfg | |
ملف تعريف BepInEx الذي يحتوي على تحديد موقع واجهة المستخدم والإعدادات الأخرى |
| MoreHeadBlacklist.json | بيبينكس/تكوين/ |
ملفات القائمة السوداء لإخفاء الزخارف غير المرغوب فيها |
| ملف الديكور (ملف. hhh) | بيبينكس/المكونات الإضافية/ 或BepInEx/المكونات الإضافية/MoreHead/الديكورات/ |
نموذج الديكور المخصص |
ملاحظة: [Unity.persistentDataPath] عادة ما يتوافق مع:
C:/Users/[اسم المستخدم الخاص بك]/AppData/LocalLow/semiwork/Repo/~/.config/unity3d/semiwork/Repo/~/مكتبة/دعم التطبيق/نصف العمل/إعادة الإعمار/إقامة وحدة (2022.3 * موصى به ، اللعبة تستخدم خط أنابيب العرض المدمج ، يرجى الانتباه إلى مواد النموذج المقابلة) ، الاستيراد MoreHead-Asset-Pack_v1.3.unitypackage.
استيراد نموذجك و سحب الصورة الرمزية للاعب الجاهزة في المشهد.
تأكد من أن نموذجك متوافق مع الوحدة ومزورًا بشكل صحيح إذا كان متحركًا.
ابحث عن الأجزاء التالية في الصورة الرمزية للاعبحيث سيتم وضع النماذج:
| الاسم | وصف | علامة |
|---|---|---|
| زخرفة الرأس (لا تتحرك) | جزء الرأس الذي يرفع عند التحدث | رأس |
| زخرفة الرقبة (لا تتحرك) | منطقة الذقن/الصدر | الرقبة |
| ديكور الجسم (لا تتحرك) | جسم | جسم |
| زخرفة الورك (لا تتحرك) | منطقة الورك/الجزء السفلي من الجسم | الورك |
| زخرفة ذراع l (لا تتحرك) | الذراع اليسرى | الذراع اليسرى |
| R-الذراع الديكور (لا تتحرك) | الذراع اليمنى | اليمين |
| زخرفة l-الساق (لا تتحرك) | الساق اليسرى | الساق اليسرى |
| R-الساق الديكور (لا تتحرك) | الساق اليمنى | الساق اليمنى |
| زخرفة العالم (لا تتحرك) | يتبع موضع الحرف ولكن يحافظ على الاتجاه الأفقي | |
⚠ ️ هذه المناصب هي مراجع مرساة. لا تعدل الإحداثيات، وإلا سيتم عدم محاذاة نموذجك داخل اللعبة.
💡 هذاالعالمالعلامة مفيدة للزينة التي يجب أن تحافظ على اتجاهها الأفقي بغض النظر عن حركة الشخصية.
💡 يمكن عرض العلامات المتعلقة بالأطراف (اليسرى، اليمنى، الساق اليسرى، الساق اليمنى) معًا داخل اللعبة تحت العلامة الرئيسية "الأطراف".
إنشاء كائن فارغ تحت الجزء الهدف (يشار إليه باسم أ) وتسميته.
سيتم عرض هذا الاسم داخل اللعبة كاسم الديكور الخاص بك.
ضع نموذجك داخل a وضبطه إلى موضع مناسب.
اسحب أ إلى المشروع نافذة لإنشاء جاهزة.
⚠ ️ ملاحظة: يرجى تجنب إضافة مكونات المصادم إلى نماذج الديكور لأنها قد تؤثر على فيزياء الشخصيات، مما يتسبب في مشكلات الدوران أو الحركات غير المستقرة. لتفاعلات التصادم، فكر في تقنيات بديلة.
تشغيل أدوات → رأس الديكورات بناةاسحب جاهزًا (أو أكثر، يتم دعم تصدير الدفعات) إلى لوحة البرنامج النصي، وحدد الجزء المقابل من الخطوة 3، ثم انقر إضافة نموذج إلى القائمة.
تأكد من تحديد جزء الجسم الصحيح (الرأس/الرقبة/الجسم/الورك، وما إلى ذلك) الذي يطابق المكان الذي وضعت فيه الديكور الخاص بك.
انقر بناء جميع حزمة الأصولثم حدد موقع [اسم الديكور الخاص بك].hhh ملف في حزم الأصول المجلد.
فقط
. حححملف مطلوب للتثبيت. يمكن تجاهل الملفات الأخرى التي تم إنشاؤها.
تحريك ملف إلى BepInEx\plugins (ستقوم اللعبة بتحميل جميع ملفات. hhh في مجلد المكونات الإضافية. إذا لم تكن متأكدًا من مكان وضعها ، فيمكنك وضعها فيه \ MoreHead\ الديكورات من أجل تنظيم أفضل).
⚠ ️ للرؤية متعددة اللاعبين: يجب أن يكون لديك أنت وأصدقائك نفس الشيء
تم تثبيت الملف لرؤية الديكورات الصحيحة.
⚠ ️ لا تعبئةMoreHead.dllالملف في التعديل الخاص بك، فقط. حححالملف وهذا التعديل مطلوبة للاستمتاع بالزخارف.
ابدأ اللعبة واستمتع!
اضغط على esc داخل اللعبة وابحث عن "MoreHead" في أسفل اليسار للوصول إلى الديكور الجديد الخاص بك.
نشر Unity(الإصدار الموصى به 2022.3*، تستخدم اللعبة خط أنابيب العرض المدمج، يرجى الانتباه إلى مادة النموذج المقابلة)، الاستيراد MoreHead-Asset-Pack_v1.3.unitypackage。
استيراد النموذج ووضع سحب الجسم الجاهز إلى المشهد。
تأكد من أن نموذجك متوافق مع Unity إذا كانت هناك رسوم متحركة تحتاج إلى ربط العظام بشكل صحيح.
العثور الصورة الرمزية للاعب تتوافق الأجزاء التالية في الموضع الذي سيتم فيه وضع النموذج:
| الاسم | الوصف | التسميات |
|---|---|---|
| زخرفة الرأس (لا تتحرك) | رفع الرأس عند التحدث | رأس |
| زخرفة الرقبة (لا تتحرك) | الذقن/الصدر | الرقبة |
| ديكور الجسم (لا تتحرك) | الجسم | جسم |
| زخرفة الورك (لا تتحرك) | الوركين/الجسم السفلي | الورك |
| زخرفة ذراع l (لا تتحرك) | الذراع اليسرى | الذراع اليسرى |
| R-الذراع الديكور (لا تتحرك) | الذراع اليمنى | اليمين |
| زخرفة l-الساق (لا تتحرك) | الساق اليسرى | الساق اليسرى |
| R-الساق الديكور (لا تتحرك) | الساق اليمنى | الساق اليمنى |
| زخرفة العالم (لا تتحرك) | اتبع موضع الشخصية للتحرك ولكن الحفاظ على الاتجاه الأفقي | |
⚠ ️ هذه المواقع هي مراجع مرساة الإحداثيات. لا تعديل الإحداثيات ، وإلا فإن نموذجك سيكون في غير محاذاة أثناء اللعبة.
💡العالمالعلامات مناسبة للزخارف التي تحتاج إلى الحفاظ على اتجاهها الأفقي ، بغض النظر عن كيفية تحرك الشخصية.
💡 يمكن عرض العلامات المتعلقة بالأطراف (leftarm، rightarm، leftleg، rightleg) بشكل موحد في اللعبة من خلال العلامة الرئيسية "LIMBS".
قم بإنشاء كائن فارغ (يسمى A) أسفل الموقع الهدف وقم بتسميته。
سيظهر هذا الاسم كاسم الزخرفة الخاص بك في اللعبة.
ضع النموذج في A وضبطه إلى الموضع المناسب。
اسحب A إلىالمشروعنافذة ، إنشاء جسم مسبق。
⚠ ️ نصيحة: لا تضيف مكونات جسم الاصطدام إلى نموذج الزخرفة. قد يؤثر الاصطدام على السلوك المادي للشخصية ، مما يؤدي إلى دوران غير طبيعي أو حركة غير مستقرة. لتفاعل الاصطدام ، فكر في استخدام تقنيات أخرى.
تشغيلالأدوات → رأس الديكورات بناة، اسحب الجسم المسبق (أو أكثر، يتم دعم تصدير الدُفعة)، وحدد الجزء المقابل في الخطوة 3، ثمإضافة نموذج إلى القائمة。
تأكد من اختيار أجزاء الجسم الصحيحة (الرأس/الرقبة/الجسم/الوركين، إلخ) التي تتطابق مع المكان الذي تضع فيه الزخرفة.
انقربناء جميع حزمة الأصول، ثم فيحزم الأصولتم العثور عليها في المجلد[اسم الزخرفة الخاصة بك].hhhالوثائق.
تحتاج فقط عند التثبيت
الملفات، يمكن تجاهل الملفات الأخرى التي تم إنشاؤها.
将نقل الملف إلىBepInEx\plugins(سيؤدي بدء تشغيل اللعبة إلى تحميل جميع ملفات. hhh ضمن الإضافات. إذا كنت لا تعرف أين تضعها، فيمكنك وضعها\ MoreHead\ الديكوراتسهلة الإدارة).
⚠ ️ رؤية متعددة اللاعبين: يجب عليك أنت وأصدقائك تثبيت نفس
. حححالملفات لرؤية الزخرفة الصحيحة لبعضها البعض.
⚠ ️ لا تعبئهMoreHead.dllالملفات إلى مود الخاص بك، فقط. حححيمكنك اللعب بالملحقات باستخدام الملفات وهذا التعديل.
بدء اللعبة والتمتع بالديكور!
اضغط على ESC في اللعبة وابحث عن "MoreHead" في الزاوية اليسرى السفلية للوصول إلى ديكورك الجديد.
بدءًا من الإصدار 1.2.4، يوفر morehead apis عامة للتمديد. تسمح هذه الواجهات للمطورين بتحميل موارد حزمة الأصول برمجيًا، وحقن البرامج النصية المخصصة، وتعزيز وظائف الديكور.
تتوفر الواجهات العامة التالية في مدير ديكور الرأس الفئة:
| الأسلوب | وصف |
|---|---|
LoadExternalAssetBundlesFromAssembly (تجميع التجميع) |
تحميل الكل . ححح الموارد المضمنة في التجميع المحدد |
إعادة إنشاء () |
تحديث UI لعرض الديكورات المحملة حديثًا |
GetDecorationsFromAssembly (Assembly assembly) |
إرجاع قائمة بجميع الديكورات المحملة من التجميع المحدد |
GetDecorationGameObjectsFromAssembly (تجميع التجميع) |
إرجاع قائمة بالأجهزة الجاهزة لكائن اللعبة المحملة من التجميع المحدد |
GetDecorationByName (تجميع التجميع، اسم تزيين السلسلة) |
يجد زخرفة محددة بالاسم من التجميع المحدد |
FindDecorationsByPartialName(تجميع التجميع، اسم سلسلة جزئي) |
يبحث عن الزخارف التي تحتوي على الاسم الجزئي المحدد |
هناك طريقتان رئيسيتان للاستفادة من واجهة برمجة تطبيقات morehead للحصول على وظيفة موسعة:
يمكنك تضمين حزمة الأصول الخاصة بك () الملفات مباشرة في dll الخاص بك كموارد مضمنة:
الملفات إلى مشروعك//قم بتحميل جميع موارد. hhh المدمجة من تجميع التجميع الخاص بك Assembly=Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly)؛ MoreHead.HeadDecorationManager.RecreateUI ();
ملاحظة: تضمين الموارد في dll الخاص بك ليس إلزاميًا. يمكنك أيضًا استخدام الطرق القياسية لـ morehead لتحميل المحلي
. حححالملفات واستخدم ببساطة dll الخاص بك لحقن البرنامج النصي وتنفيذ الوظيفة.
يمكنك كتابة البرامج النصية التي تصل إلى الديكورات وتعديلها ، بغض النظر عما إذا كانت قد تم تحميلها من dll أو مصادر أخرى:
باستخدام بيبينيكس؛ باستخدام bepinex.logg؛ باستخدام system.reflection؛ استخدام محرك الوحدة؛ استخدام system.collections.generic؛ مساحة الاسم mycustomdecorations {[BepInPlugin("com.yourname.customdecorations","custome decorations mod","1.0.0 ")] [bepindependenty("Mhz.REPOMoreHead",bepindependenty.dependencyflags.harddependency)] class public customdecorationsplugin: BaseUnityPlugin {public static CustomDecorationsPlugin Instance {get; private set;} private manuallogsource_Logger; private const string TARGET_MODEL_NAME="Cigar";// اسم النموذج الهدف void private awake () {Instance = this;_Logger=Logger; _logger.LogInfo("تم تحميل تعديل الديكورات المخصصة")؛ //قم بتحميل الديكورات وقم بإعداد معالجات loaddecorations (); } private void LoadDecorations () {try {//Get current assembly assembly assembly = assembly.GetExecutingAssembly ();//تحميل جميع موارد. hhh من dll الحالي morehead.headdecorationmanager.loadexternalassetbundlesfromassembly (assembly);//إعادة إنشاء ui لعرض النماذج المحملة حديثًا morehead.headdecorationmanager.recreateui ();//العثور على نماذج محددة مطابقة لقائمة الاسم المستهدف<MoreHead.DecorationInfo>targetDecorations = MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly، TARGET_MODEL_NAME)؛ if (targetDecorations.Count > 0) {_logger.LogInfo($"Found {targetDecorations.Count} النماذج المطابقة لـ '{TARGET_MODEL_NAME}' ");//إضافة مكون إلى كل نموذج هدف تم العثور عليه foreach(var decoration in targetDecorations) {if (decoration.Prefab! = null<SpaceKeyHandler>() == فارغ) {_logger.LogInfo($"إضافة spacekeyhandler إلى {decoration.DisplayName} "); decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch(System.Exception ex) {_logger.LogError($ "decorations معالجة الخطأ: {ex.Message}");}} //class للتعامل مع سلوك الديكور الفئة العامة spacekeyhandler: MonoBehaviour {private void Awake () {//log عندما يتم تهيئة مثيل المكون. _logger.loginfo($ "spacekeyhandler تهيئة على {gameObject.name}");} private void Update () {//تحقق من مفتاح المسافة اضغط مباشرة في المكون إذا (Input.GetKeyDown(KeyCode.Space)) {// ببساطة تسجيل الرسالة عند تشغيل المثيل. _logger.loginfo($ "مفتاح المسافة الضغط عند الديكور: {gameObject.name}");}}}}}
⚠ ️ ملاحظات مهمة
لا تحتاج بالضرورة إلى إرفاق البرامج النصية بالنموذج المقابل-قم بتنفيذها حسب الحاجة للحصول على وظيفة مناسبة. على سبيل المثال، يستجيب نموذج الرمز أعلاه فقط للضغط على مفتاح المسافة عند عرض الحرف في القائمة.
لماذا يحدث هذا؟
لأنه في طريقة عرض الشخص الأول، تقوم اللعبة بتعيين الشخصية المحلية
[الحفر]كائن اللعبة إلى غير نشط (SetActive (خاطئ)).
هو الكائن الأصل الذي يحتوي على نموذج الحرف، و يتم أيضًا تركيب المزيد من الزخارف تحت هذا التسلسل الهرمي.- متى
تم تعطيله، وفقًا لميكانيكا الوحدة، جميع مكونات الكائنات الفرعية لن يكون لديهمتحديث,تصحيح تحديثوغيرها من أساليب دورة الحياة يسمى.- كما يتم وضع نماذج الديكور المخصصة تحت
[الحفر]التسلسل الهرمي ، لذلك عند إرفاق البرامج النصية مباشرة بالنموذج ، بمجرد إدخال طريقة عرض الشخص الأول ، ستكون هذه البرامج النصية لا يمكن تنفيذها بشكل طبيعي لأن الكائن الأصل معطل.- ومع ذلك، في اللعبة واجهة القائمةنموذج الشخصية يبقى دائما نشطلذا يمكن أن تعمل البرامج النصية المرفقة بالزينة بشكل طبيعي، حيث تقوم الوحدة بتنفيذ أساليب المكونات فقط على كائنات اللعبة النشطة.
هذا الفرق في حالات التنشيط هي النقطة الرئيسية التي تفسر سبب تصرف نفس البرنامج النصي بشكل مختلف في سيناريوهات مختلفة.
ملاحظات مهمة حول مزامنة متعدد اللاعبين
على الرغم من وجهة نظر الشخص الأول لا يمكنك رؤية نموذج الديكور الخاص بك (لأن [الحفر] المحلي معطل)، لا تزال اللعبة مزامنة حالتك عبر الشبكةهذا يعني أنه طالما أنك التعامل بشكل صحيح مع منطق المزامنة متعدد اللاعبينلا يزال بإمكان اللاعبين الآخرين رؤية التغييرات والإجراءات الخاصة بنموذج الديكور الخاص بك.
لذلك، حتى لو لم يتم تنفيذ البرامج النصية المحلية بسبب تعطيل [الحفر]، فلا يزال بإمكانك تنفيذ التأثيرات التفاعلية من خلال المديرين العالميين أو آليات مزامنة الشبكة، السماح جميع اللاعبين لرؤيتهم تغييرات على نموذج الديكور الخاص بك. وهذا يخلق إمكانيات ل الديكورات التفاعلية.
النقاط التي يجب مراعاتها عند تنفيذ منطق سلوك النموذج:
- استراتيجية تركيب البرنامج النصي -النظر في استخدام المديرين العالميين أو أنظمة الأحداث كبدائل
- الاختلافات بين شخصية المشهد وشخصية القائمة -قد تعمل بعض البرامج النصية فقط في سياقات محددة
- مشاكل المزامنة متعددة اللاعبين -ضمان سلوك متسق عبر عملاء الشبكة
- حالة تنشيط المكون -لن تقوم المكونات الموجودة على كائنات اللعبة المعطلة بتنفيذ طرق التحديث/fixedupdate
- إدارة الموارد -تهيئة الموارد وتنظيفها بشكل صحيح لتجنب تسربات الذاكرة
- سلطة الشبكة -النظر في العمليات التي يجب تنفيذها محليا والتي تحتاج إلى مزامنة الشبكة
بدءًا من الإصدار 1.2.4 ، يوفر MoreHead واجهة API العامة لتوسيع الوظائف. تسمح هذه الواجهات للمطورين بتحميل موارد AssetBundle برمجيًا ، وحقن البرامج النصية المخصصة ، وتحسين وظائف الزخرفة.
وفيما يليمدير ديكور الرأسالواجهات العامة المتاحة في الفئة:
| منهجية | الوصف |
|---|---|
LoadExternalAssetBundlesFromAssembly (تجميع التجميع) |
يقوم بتحميل جميع المضمنات في التجميع المحدد. حححالموارد |
إعادة إنشاء () |
قم بتحديث واجهة المستخدم لعرض الزخارف المحملة حديثًا |
GetDecorationsFromAssembly (Assembly assembly) |
إرجاع قائمة بجميع الزخارف المحملة من التجميع المحدد |
GetDecorationGameObjectsFromAssembly (تجميع التجميع) |
إرجاع قائمة بجميع أجهزة GameObject المسبقة المحملة من التجميع المحدد |
GetDecorationByName (تجميع التجميع، اسم تزيين السلسلة) |
ابحث عن زخرفة محددة في تجميع محدد بالاسم |
FindDecorationsByPartialName(تجميع التجميع، اسم سلسلة جزئي) |
ابحث عن الزخارف التي تحتوي على اسم الجزء المحدد |
هناك طريقتان رئيسيتان لاستخدام واجهة برمجة تطبيقات MoreHead لتوسيع الوظائف:
يمكنك وضع AssetBundle (. ححح) يتم تضمين الملفات مباشرة في DLL كمورد مضمن:
أضف ملفات إلى مشروعك//قم بتحميل جميع موارد. hhh المضمنة من التجميع الخاص بك Assembly assembly = Assembly.GetExecutingAssembly (); Morehead.headdecorationmanager.loadeexternalassetbundlesfromassembly(assembly)؛ MoreHead.HeadDecorationManager.RecreateUI ();
ملاحظة: تضمين الموارد في DLL ليس ضروريًا. يمكنك أيضًا تحميل محلي باستخدام طريقة MoreHead القياسية
. حححالملفات ، استخدم فقط DLL لحقن البرامج النصية وتنفيذ الوظائف.
يمكنك كتابة البرامج النصية للوصول إلى الزخارف وتعديلها ، سواء تم تحميلها من ملف DLL الخاص بك أو مصدر آخر:
باستخدام بيبينيكس؛ باستخدام bepinex.logg؛ باستخدام system.reflection؛ استخدام محرك الوحدة؛ استخدام system.collections.generic؛ مساحة الاسم mycustomdecorations {[BepInPlugin("com.yourname.customdecorations","自定义装البح","1.0.0 ") ] [bepindependenty("Mhz.REPOMoreHead",bepindependenty.dependentyflags.harddependenty)]class public customdecorationsplugin: BaseUnityPlugin {public static CustomDecorationsPlugin Instance {get; private set;} private manuallogsource_logger; private const string TARGET_MODEL_NAME = "Cigar雪<s>]; //اسم النموذج المستهدف private void Awake () {Instance = this;_Logger = Logger;_logger.LogInfo("تم تحميل MOD الديكور المخصص");// تحميل الزخرفة وإعداد البرنامج النصي للمعالجة LoadDecorations();} private void LoadDecorations () {try {//الحصول على التجميع الحالي assembly assembly = assembly.GetExecutingAssembly ();//تحميل جميع موارد. hhh في DLL الحالي MoreHead.HeadDecorationManager.LoadExternalAssetBundlesFromAssembly(assembly)؛ //إعادة بناء واجهة المستخدم لعرض النموذج المحمل حديثًا MoreHead.HeadDecorationManager.RecreateUI (); //ابحث عن قائمة نماذج معينة تطابق اسم الهدف<MoreHead.DecorationInfo>targetDecorations = MoreHead.HeadDecorationManager.FindDecorationsByPartialName(assembly، TARGET_MODEL_NAME)؛ if (targetDecorations.Count > 0) {_logger.LogInfo($ "{targetDecorations.Count}" {TARGET_MODEL_NAME} ");//foreach (var decoration in targetDecorations) {if (decoration.Prefab! = null & decoration.Prefab.GetComponent<SpaceKeyHandler>() == فارغ) {_logger.LogInfo($"{decoration.DisplayName} 添加 SpaceKeyHandler "); decoration.Prefab.AddComponent<SpaceKeyHandler>(); }}}} catch(System.Exception ex){_logger.LogError($"خطأ أثناء معالجة الزخرف:{ex.Message}");}}//الفئة المستخدمة لمعالجة سلوك الزخرفpublic class SpaceKeyHandler: MonoBehaviour {// تسجيل سجل عند تهيئة المكون Instance._logger.LogInfo ($"SpaceKeyHandler تهيئة على {gameObject.name});}}}} {// اكتشاف شريط المسافة مباشرة في المكون if(Input.GetKeyDown(KeyCode.Space)) {// ببساطة تسجيل الرسالة عند التشغيل Instance._logger.LogInfo ($"شريط المسافة على الزخرف:{gameObject.name}");}}
⚠ ️ ملاحظات مهمة
ليس من الضروري ربط البرنامج النصي بالنموذج المقابل ، ويمكن معالجته حسب الطلب لتحسين الوظيفة. على سبيل المثال ، يمكن استخدام نموذج التعليمات البرمجية أعلاه فقطعند عرض الشخصية في القائمةإخراج سجل الاستجابة للمسافات.
لماذا يحدث هذا؟
لأن اللعبة فيمنظور الشخص الأولسيتم تحويل الأدوار المحلية إلى
تم تعيين كائن اللعبة علىحالة غير نشطة(SetActive (خاطئ))。
[الحفر]هو الكائن الأصل الذي يحتوي على نموذج الدور ،يتم أيضًا تثبيت النماذج الزخرفية لـ MoreHead تحت هذا المستوى。- 当
عند تعطيله، وفقًا لآلية عمل Unity،مكونات جميع الكائنات الفرعية的تحديث、تصحيح تحديثنهج دورة حياة متساويةلن يتم استدعاؤه。- يتم أيضًا وضع نماذج الديكور المخصصة في
[الحفر]تحت المستوى الهرمي ، لذلك عند تثبيت البرامج النصية مباشرة على النموذج ، بمجرد دخولك وجهة نظر الشخص الأول ، ستكون هذه البرامج النصية لأن الكائن الأصل معطللا يمكن تنفيذه بشكل صحيح。- وفي اللعبةواجهة القائمةفي ، يتم الحفاظ على نموذج الدور دائمًاحالة التنشيط، يمكن للبرنامج النصي المثبت على الزخرفة أن يعمل بشكل صحيح في هذه المرحلة، لأن Unity سيقوم فقط بتنفيذ أساليب المكونات على كائن لعبة الحالة النشطة.
هذا النوعالاختلافات في حالة التنشيطهي النقطة الرئيسية التي تشرح سبب أداء نفس البرنامج النصي بشكل غير متسق في سيناريوهات مختلفة.
ملاحظات مهمة حول مزامنة متعددة اللاعبين
على الرغم من أنه من منظور الشخص الأوللا تشوف نموذج الديكور الخاص بك(لأنه تم تعطيل [RIG] المحلي)، لكن اللعبة ستظل فيمزامنة حالتك في الشبكة。 يعني طالما أنتالتعامل بشكل صحيح مع منطق التزامن متعدد اللاعبين، لا يزال اللاعبين الآخرين قادرين على رؤية التغييرات والحركات في نموذج الديكور الخاص بك.
لذلك ، حتى لو لم يتم تنفيذ البرنامج النصي المحلي بسبب تعطيل [RIG] ، فلا يزال بإمكانك القيام بذلك عبرالمدير العالمي أو آلية مزامنة الشبكةلتحقيق التأثير التفاعلي والسماحيمكن لجميع اللاعبين رؤيتهاالتغييرات التي تحدث في نموذج الديكور الخاص بك. وهذا يخلقديكور تفاعلييوفر إمكانيات.
تحتاج إلى الانتباه إلى النقاط التالية عند تنفيذ منطق سلوك النموذج:
- سياسة تثبيت البرنامج النصي -فكر في استخدام طرق بديلة مثل المدير العالمي أو نظام الأحداث
- الفرق بين أدوار المشهد وأدوار القائمة -قد تعمل بعض البرامج النصية فقط في سياق معين
- مشكلة مزامنة متعددة اللاعبين -ضمان سلوك متسق عبر عملاء الشبكة
- حالة تنشيط المكون -المكونات الموجودة على كائنات اللعبة المعطلة لا تنفذ طريقة Update/FixedUpdate
- إدارة الموارد -تهيئة وتنظيف الموارد بشكل صحيح لتجنب تسرب الذاكرة
- أذونات الشبكة -النظر في العمليات التي يجب القيام بها محليا وما يتطلب مزامنة الشبكة
المزيد من القبعات
لقطات شاشة للديكورات للمساعدة في الاختيار (غير مضمون)
المزيد من القبعات
توفير لقطات شاشة للديكورات لسهولة الاختيار (غير مضمونة)
الفسيفساء الفسيفساء:
يوريسكات كاليبسو قطة يوري كاليبسو:بيليبيلي
للأسئلة والاقتراحات، قم بتقديم الأسئلة:
إذا كان لديك أسئلة أو اقتراحات، يرجى إرسال القضايا:مشاكل github
هل تريد دعمنا بالقهوة وبلورات الطاقة الصفراء؟
هل تريد أن تشتري لنا القهوة وشراء بلورات الطاقة الصفراء؟
التبرع على ko-fi
همس، نحن نصنع لعبة مستقلة!
بصراحة ، نحن نصنع ألعاب مستقلة!

تنزيل التعديلات الآن
قم بتثبيت LagoFast، ثم قم بتشغيل R.E.P.O. والعب بالتعديلات التي تحبها.