مهارات الوحدة الأساسية



يوم جيد يا عزيزي خاباروفسك!

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

المهارة رقم 1 - العمل مع هيكل المشروع


للحفاظ على النظام في المشروع ، تحتاج إلى فهم هيكله. يمكن تمثيلها على النحو التالي:

  1. النماذج - تخزن جميع النماذج المستخدمة في المشروع
  2. الجاهزة - يخزن جميع القوالب النموذجية
  3. القوام - يخزن جميع القوام
  4. المواد - يخزن جميع المواد
  5. البرامج النصية - يخزن جميع النصوص
  6. الأصوات - يخزن كل الأصوات
  7. الرسوم المتحركة - يخزن جميع الرسوم المتحركة

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


هيكل مجلد الشخصية

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


هيكل مجلد الرسوم المتحركة

المهارة رقم 2 - العمل باستخدام تسلسل هرمي للكائنات في المشهد


لتبسيط العمل مع مجموعات من الكائنات المتماثلة ، يمكن دمجها في مجموعات حيث يكون الكائن الفارغ بمثابة الوالد.

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

يسمى كل عنصر بالنسبة إلى ما هو عليه ، في نهاية المطاف ، يتم إضافة بوستفيش للكائن الأصل. على سبيل المثال ، سيتم تسمية شريط ذهبي في كهف باسم "goldBar_cv1" ، حيث يعني cv1 الكهف 1 ، وشجرة في الغابة "tree_frt1" ، حيث تعني frt1 الغابة 1. بالنسبة إلى postfix ، يتم أخذ الحرف الأول من الكلمة والحرف الأول من المقطع الثاني والحرف الأخير من الكلمة.


مثال على التسلسل الهرمي للكائنات في المشهد

المهارة رقم 3 - العمل مع العرض التقديمي المرئي


الوحدة لديها 3 مصادر رئيسية للضوء:

  1. ضوء الاتجاه - تناظرية الشمس
  2. نقطة الضوء - التناظرية لمبة
  3. الأضواء - التناظرية من مصباح يدوي

إذا كان هناك ضوء ، فيجب أن يكون هناك مصدر للضوء. على سبيل المثال ، في الكهف لا يمكن أن يكون خفيفًا إذا لم يكن للحرف مشعل (للشعلة ، يكون المصباح الموضعي مناسبًا).

استخدم PostProcessing لتطبيق التأثيرات.

صورة
المشهد دون مرحلة ما بعد المعالجة

صورة
مشهد ما بعد المعالجة

محدث من thenonsense :

بالإضافة إلى مصادر الإضاءة المقدمة بصريًا ، هناك أيضًا إعدادات إضاءة عامة: علامة تبويب في الجزء العلوي من النافذة ، وعنصر الإضاءة ، وعنصر الإعدادات الفرعي. هناك يمكنك ، على سبيل المثال ، تشديد إضاءة البيئة ، وتثبيت صندوق skybox ، وإضافة الضباب. في الواقع ، يجب عليك هنا أن تنظر إذا ما طرحت على نفسك السؤال "حذف جميع مصادر الإضاءة ، ولكن كل هذا الضوء على المسرح كما هو الحال في النهار". بالمناسبة ، يمكنك الدخول إلى هذه الإعدادات بالفعل أثناء تشغيل اللعبة في المحرر حتى تتمكن من رؤية التغييرات فورًا. ومع ذلك ، بعد إغلاق وضع اللعبة ، ستعود الإعدادات إلى الحالة التي كانت عليها قبل بدء اختبار اللعبة. لذلك عليك الصعود إلى هذه النافذة مرة أخرى وضبط القيم. تفاصيل مفيدة - على سبيل المثال ، إذا كنت ترغب في تغيير لون الإضاءة (اللون المحيط في مجموعة بيئة الإضاءة) ، ثم على اللوحة مع لوحة الانتباه إلى عنصر سداسي عشري - تتم الإشارة إلى رقم اللون الحالي في النافذة ، يمكنك نسخه ولصقه في نفس الحقل لاحقًا عند إيقاف تشغيل وضع اللعبة. نفس الخدعة مفيدة لضبط لون الضباب وما إلى ذلك.

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


المهارة رقم 4 - العمل مع الكاميرا


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

تريد أن تطير عبر المرحلة من شخص واحد؟ اضغط باستمرار على يوان وتحرك باستخدام مفاتيح WASD ، تسريع Shift.

تريد أن ترى المشهد من زوايا مختلفة؟ استفد من Gizmos (Gizmos).


Gizmo الموقع

المهارة رقم 5 - العمل مع الأشياء


تريد إضافة شخصية إلى المشهد؟ أضف مكونات RigidBody و CapsuleCollaider. يخبر RigidBody المحرك أنه يجب تطبيق فيزياء الحالة الصلبة على هذا الكائن.

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

مثال على تطبيق التحقق من تصادم شخصية مع كائن
private void OnCollisionEnter(Collision collision) { switch (collision.gameObject.tag) { case "Moneys": Destroy(collision.gameObject); // Do something break; case "TrapSpikes": hitPoints -= 5.5; break; } } 



محدث من thenonsense :
ليس من الضروري دائمًا لشخص ما أن يستخدم شخصًا جامدًا ؛ فقد تكون طرق الإدارة مختلفة. ولكن ستكون هناك حاجة دائمًا لمصادم لشخص ما ، إلا إذا كنت ستحسب الاصطدامات بطريقة أكثر صعوبة. لدى الوحدة أيضًا عدة وحدات تحكم / مصادمات محددة - من الأفضل قراءة الوثائق لفهمها بمزيد من التفاصيل. لكن من الأفضل أن نبدأ بأمثلة بسيطة على YouTube.

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

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


المهارة رقم 6 - استيراد النماذج


ضع في اعتبارك الإجراء باستخدام مثال استيراد نموذج من Blender. من المفترض أنك أجريت بالفعل مسحًا أو طبّقت مادة أو مواد محددة.

  1. ضع النموذج في إحداثيات صفرية (مركز نسبة إلى المحاور)
  2. ضبط النطاق على واحد
  3. قم بإزالة الأشياء غير الضرورية (الكاميرا ، مصدر الضوء)
  4. احفظ النموذج بتنسيق .fbx
  5. نقل الملف إلى الوحدة
  6. اسحب إلى مجلدات - النموذج إلى الطرازات ، المواد إلى المواد ، إلخ.
  7. إنشاء نموذج الجاهزة
  8. مزيد من العمل مع الجاهزة


محدث من thenonsense :

المولف


يرجى ملاحظة أنه إذا تم تخصيص مواد الخلاط للنموذج ، فسيتم نقلها في شكل مبسط وستجمع قائمة المواد.
ليس عليك القيام بالتطوير والتركيب المعقدين في Blender على الإطلاق - أسهل طريقة هي استعراض جميع عناصر النموذج وتحديد عنصر البيانات في النافذة على اليمين. هذا رمز على شكل مثلث ينظر لأسفل بثلاث نقاط بين عناصر التعديل (مفتاح الربط) وعناصر المادة (الكرة الوردي). في ذلك ، انقر على + بجوار الرسم البياني للأشعة فوق البنفسجية خرائط - يظهر مسح تلقائي مع أيقونة كرة الشطرنج. يجب القيام بذلك لكل عنصر من عناصر النموذج وبعد ذلك فقط التصدير. بعد ذلك ، في Unity بالفعل ، سيكون من الممكن تطبيق مادة ذات نسيج على هذا الجزء ، وإذا لم يتم ذلك ، فإن المادة سوف ترسم الجزء بلون صلب فقط. (إذا قمت في وقت لاحق بتشويه عنصر النموذج ، فتجاهل عملية المسح وقم بإعادة تعيينه بحيث لا يتم تمديده).

إذا كان النموذج الخاص بك يتكون من عناصر مختلفة ، فعندئذٍ في Unity بالفعل ، يمكنك نقل العناصر الفردية للنموذج الخاص بك أو تعطيلها. هذا يمكن أن يكون مفيدا في المواقف المختلفة.

كيفية كتابة نموذج بطريقة بسيطة.


تحتاج أولاً إلى أن تكون من 512 إلى 512 قوامًا من البلاط. أضفه بنفس طريقة النموذج ثلاثي الأبعاد عبر Import New Asset (تذكر أنه يجب تحديد مجلد مناسب). في نفس الوقت ، على اليمين ، في المفتش ، في النسيج المضاف في الإطار الافتراضي ، قم بتعيين المعلمة Max Size على 512. ثم انقر فوق " تطبيق" . الآن أصبح الملمس جاهزًا لإضافته إلى المادة ، أو ، على سبيل المثال ، يمكن رسمه الآن بشكل عتيق. انتبه إلى النقطة الأولى - Texture Type ، فهي الآن في الوضع الافتراضي ، ولكن عندما تحتاج إلى تحميل خريطة عادية ، وصورة لعفاريت شفافة ، وهكذا ، ستحتاج إلى ضبط الإعداد المناسب هناك.
التالي نحتاج إلى إنشاء المواد. ننتقل مرة أخرى إلى القائمة أعلاه - الأصول ، القائمة المنسدلة إنشاء ، مادة (مرة أخرى ، لا تنس أن المواد سيتم إنشاؤها في المجلد المحدد حاليًا). أنت تقود سيارتك باسم المادة وفي المفتش تفتح عنصر Albedo (حتى نتوقف عند معايير أخرى ، لكن المبدأ مماثل) ، حيث تقوم بالبحث وتعيين نسيجك الذي تم تحميله مسبقًا. يوجد في مكان قريب نافذة ملونة يمكنها أن تضفي صبغة إضافية على نسيجك ، بالإضافة إلى منزلقات Metalic و Smoothness لإضافة الوهج أو البلادة. المعلمة Tiling size مفيدة أيضًا ، فهي بضعة أسطر أدناه.
بعد إنشاء المادة ، يمكنك الاستيلاء عليها ورميها مباشرة على النموذج أو عناصره ، ولا تفوتها ، وإلا فإنك لا ترسم ما تحتاج إليه.

لا تنس أنه يمكن استخدام نفس الملمس في مواد مختلفة. على سبيل المثال ، مع الشوائب بألوان مختلفة و / أو أحجام البلاط المختلفة.

منازل جاهزة.


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

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


المهارة رقم 7 - تنفيذ المنطق


تجنب العمليات المكلفة. مثال على ذلك هو تحديد المسافة إلى كائن.

مثال عملية مكلفة
 using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform other; void Example() { if (other) { //       //         float dist = Vector3.Distance(other.position, transform.position); print("Distance to other: " + dist); } } } 


مثال أسرع للتنفيذ
 using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform other; public float closeDistance = 5.0f; void Update() { if (other) { Vector3 offset = other.position - transform.position; //     float sqrLen = offset.sqrMagnitude; //    ,     if (sqrLen < closeDistance * closeDistance) { print("The other transform is close to me!"); } } } } 


قراءة المزيد عن عمليات باهظة الثمن هنا .

استنتاج


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

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

Source: https://habr.com/ru/post/ar459184/


All Articles