استخدام مواد التجسيد لعرض محتويات مشهد آخر كمواد

تحديث الصفحة :
تاريخ إنشاء الصفحة :

بيئة التحقق

نوافذ
  • ويندوز ١١
محرر الوحدة
  • 2021.3.3f1
حزمة نظام الإدخال
  • 1.3.0

المتطلبات الأساسية لهذه النصيحة

تم إجراء الإعدادات التالية مسبقا كمقدمة لوصف هذه النصيحة.

في البداية

تسمح لك مواد التجسيد بكتابة رسوماتك على نسيج بدلا من الشاشة. يتيح لك ذلك إنشاء مواد بحرية أثناء تنفيذ اللعبة دون إعداد صور النسيج مسبقا.

يمكنك أيضا الكتابة إلى نسيج تجسيد يتغير ديناميكيا كل إطار ، على سبيل المثال ، لعرض صورة مختلفة من الكاميرا الرئيسية على شاشة موجودة في اللعبة.

تحضير الصور

عند استخدام نسيج تجسيد، لا تحتاج إلى إعداد صورة، ولكن يمكنك تحضيرها كعينة لجعل نتيجة الرسم أسهل في الفهم.

إنشاء نسيج تجسيد

إنشاء أصل من المشروع. من إنشاء، حدد تجسيد النسيج.

يمكن أن يكون الاسم تعسفيا. نظرا لعدم تحديد الاسم مباشرة من NewRenderTexture الخارج في هذا الوقت ، اترك ك .

حدد نسيج التجسيد وحدد حجمه من المراقب. بما أن نسيج التجسيد هو مساحة رسم، يجب عليك تحديد حجم. هذه المرة ، أريد أن أكتب مشهدا تم إنشاؤه بشكل منفصل ، لذلك قمت بتعيين نسبة العرض إلى الارتفاع على 16: 9.

إعداد وجهة نسيج التجسيد

حدد "واجهة المستخدم" > "الصورة الأولية" من التسلسل الهرمي للمشهد الذي تم إنشاؤه في البداية. عرض محتويات نسيج التجسيد في هذا الكائن. إنه كائن من واجهة المستخدم ، ولكن ما تحتاجه هو مكون "صورة خام" ، والذي يمكن تعيينه على كائن آخر.

تم وضع RawImage. نظرا لأنه كائن واجهة مستخدم ، يتم وضعه في Canvas. لم أقم بتعيين أي شيء بعد ، لذلك أحصل على مستطيل أبيض.

نريد أن يكون المقياس مساويا لبعضه البعض، لذلك قمنا بتعيين حجم كائن RawImage ليكون هو نفسه نسيج التجسيد. إذا حافظت على نسبة العرض إلى الارتفاع كما هي ، فلن يتم تغيير حجم نتيجة الرسم إلا إذا قمت بتغيير الحجم ، ولكن إذا قمت بتغيير نسبة العرض إلى الارتفاع ، سحق نتيجة الرسم رأسيا أو أفقيا.

يحتوي مكون الصورة الأولية لكائن RawImage على "نسيج" ، لذا قم بتعيين نسيج التجسيد الذي أنشأته للتو هناك. محتويات نسيج التجسيد لا تزال فارغة، لذا فهي شفافة في العرض.

إنشاء مشهد من محتوى رسم نسيج التجسيد

بعد ذلك ، قم بإنشاء مشهد جديد لإنشاء المحتوى المراد رسمه في نسيج التجسيد. اختر ملف من القائمة وحدد مشهد جديد.

نظرا لأن هذه العينة ثنائية الأبعاد ، فستختار مشهدا ثنائي الأبعاد أيضا.

قم بإنشائه في مجلد المشهد. SampleSceneTexture اترك الاسم ك .

بعد إنشاء المشهد ، ضع الكائنات بشكل مناسب. كل ما عليك فعله هو التأكد من معرفة محتويات نسيج التجسيد. للتأكد من أن أي شيء يبرز خارج الكاميرا لم يتم رسمه ، يتم أيضا وضع كائن بالقرب من إطار الكاميرا.

إذا تداخلت الكائنات، فإن سياق الكائنات سيكون غير محدد، لذلك إذا كان لديك خلفية، قم بخفض ترتيب طبقات الخلفية.

بعد تحديد "MainCamera" ، اضبط نسيج التجسيد في "النسيج المستهدف". يؤدي هذا إلى رسم الرسم في نسيج التجسيد.

قم بإزالة مكون مستمع الصوت المعين إلى MainCamera. كل ما تحتاجه لنسيج التجسيد هو الرسم ، لذلك لا تحتاج إلى مستمع الصوت. سيتم عرض تحذير إذا كان هناك العديد من "مستمعي الصوت" في وقت التشغيل.

بالمناسبة ، إذا قمت بتشغيل المشهد لنسيج العرض في هذه الحالة ، فلن يتم عرض أي شيء على الشاشة. هذا لأنك ترسم على نسيج تجسيد. إذا كنت تريد التحقق من ذلك على الشاشة ، فاحذف "النسيج المستهدف" ثم قم بتنفيذه.

إعدادات الطبقة

في هذا النموذج ، سيتعين عليك نقل مشهدين في نفس الوقت ، ولكن إذا قمت بنقلهما كما هما ، أيضا عرض المحتويات المراد رسمها في نسيج التجسيد على الشاشة الرئيسية ، لذلك لن يتم رسم الطبقات بشكل منفصل.

أولا ، حدد "تحرير الطبقة" من الطبقة الموجودة في الزاوية اليمنى العليا من المحرر.

الاسم والموقع تعسفيان ، ولكن هنا سنضيف طبقة جديدة RenderTarget باسم .

بعد إضافة الطبقة ، افتح المشهد لنسيج التجسيد ، وحدد كل الكائنات التي تريد رسمها ، وقم بتغيير قيمة الطبقة إلى القيمة التي أنشأتها RenderTarget للتو .

SampleSceneTexture سيؤدي هذا إلى إنهاء تحرير المشهد ، لذا يرجى حفظه.

عرض مواد التجسيد

SampleScene بمجرد فتح مشهد ، أضفه إلى التسلسل SampleSceneTexture الهرمي عن طريق سحب المشهد وإفلاته. بعد ذلك ، يجب أن يكون هناك مشهدان في التسلسل الهرمي ، ويجب عرض محتويات المشهد على SampleSceneTexture الشاشة.

SampleSceneTexture محتوى المشهد مزعج ، لذا انقر فوق رمز العين للمشهد من التسلسل SampleSceneTexture الهرمي. SampleSceneTexture سيؤدي هذا إلى إخفاء الكائنات في المشهد وستكون محتويات المشهد SampleScene فقط مرئية. بالمناسبة ، نظرا لأن جميع إعدادات نسيج التجسيد قد اكتملت ،SampleScene يجب عرض محتويات نسيج التجسيد في الصورة الأولية الموضوعة في المشهد.

ومع ذلك ، فإن إخفاء أيقونة العين هو مجرد إعداد لجعله غير مرئي على المحرر ، لذلك إذا قمت بتشغيل SampleSceneTexture اللعبة كما هي ، أيضا عرض محتويات المشهد على الشاشة. SampleScene ثم حدد المشهد Main Camera وقم بإلغاء تحديد من RenderTarget قناع الإعدام في Camera المفتش. هذا يمنع عرض الكائنات في الطبقة عند RenderTarget تشغيل اللعبة.

حاول تشغيل اللعبة. يجب أن تظهر على النحو المنشود.

حاول تحريك نسيج التجسيد

ومع ذلك ، في هذه الحالة ، من الصعب معرفة ما إذا كان يعمل بالفعل كنسيج تجسيد أو ببساطة يعرض الصورة كاقتصاص ، لذلك دعونا ننقلها.

يمكن أن يكون المحتوى أي شيء ، ولكن هنا سنقوم بتعيين الحركة لتدوير الكائن تلقائيا. إنشاء برنامج SelfRotate نصي وإنشائه ك .

هنا ، سنقوم بتضمين عملية بسيطة لتدوير نفسها شيئا فشيئا.

using UnityEngine;

public class SelfRotate : MonoBehaviour
{
  // 更新はフレームごとに 1 回呼び出されます
  void Update()
  {
    transform.Rotate(0, 0, 0.1f);
  }
}

بعد إنشاء البرنامج النصي ، قم بإرفاق المزيد والمزيد بالكائن الذي تريد تدويره.

ثم قم بتشغيل اللعبة ومعرفة ما إذا كانت تدور. أعتقد أنه يمكنك رؤية أن الكائن يتحرك في نسيج العرض.

كيفية نقل مشاهد متعددة في نفس الوقت

هنا ، أنشأنا مثالا بسيطا بحيث يكون لدينا مشهدان يعملان من البداية ، ولكن في لعبة حقيقية ، هناك العديد من الحالات التي يتعين عليك فيها البدء بمشهد واحد. في هذه الحالة ، أعتقد أنه سيتعين عليك إضافة مشاهد ديناميكيا في بداية المشهد لجعلها مشاهد متعددة.

يرجى الرجوع إلى "إضافة مشهد" لشرح كيفية إضافة مشهد. في الأساس ، SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive); يجب أن يحل الاتصال معظم المشاكل.

كيفية منع محتويات نسيج التجسيد من الظهور على الشاشة الرئيسية بدون استخدام الطبقات

يتم عرض محتوى نسيج التجسيد على الشاشة الرئيسية لأن المشهد الرئيسي ومشهد نسيج التجسيد في نفس المكان. لذلك، إذا قمت بنقل محتويات نسيج التجسيد إلى مكان لا يظهر أبدا في المشهد الرئيسي، فلن يتم عرضه على الشاشة الرئيسية. على سبيل المثال، يمكنك نقل كائن نسيج تجسيد أو كاميرا إلى الموقع (-10000، -10000). بهذه الطريقة ، تكون إعدادات الطبقة غير ضرورية.

عندما تريد إكمال محتويات نسيج تجسيد في مشهد واحد دون تقسيمه إلى مشاهد مختلفة

يتم ذلك باستخدام نفس الأسلوب مثل الطريقة السابقة بدون طبقات. يمكنك نقل المحتوى المعروض بواسطة نسيج التجسيد إلى مكان لن يتم عرضه فيه أبدا على الكاميرا الرئيسية. الفرق عن طريقة فصل المشاهد هو أنك تحتاج إلى وضع كاميرتين ، ولكن بخلاف ذلك ، سيكون لديك في الأساس نفس إعدادات طريقة فصل المشاهد.

إذا كنت ترغب في التقاط المحتوى الذي تم التقاطه من منظور مختلف في لعبة 3D كنسيج عرض

لم تتحدث هذه النصيحة كثيرا عن 3D لأنها ركزت على 2D ، لكن النهج هو نفسه في الأساس. نظرا لأنك تعرض مساحة 3D واحدة من وجهات نظر متعددة ، فلن تحتاج إلى أكثر من مشهدين. كل ما عليك فعله هو وضع أكبر عدد تريده من الكاميرات ، وتعيين وجهة الرسم كنسيج التجسيد ، وتعيين مكان عرض نسيج التجسيد.