كيفية الرسم باستخدام نظام الجسيمات في الوحدة

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

المتطلبات الأساسية

1. إعداد المشهد

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

2. إنشاء نظام الجسيمات

  • انقر بزر الماوس الأيمن في نافذة التسلسل الهرمي وحدد 'Effects' -> 'Particle System'.
  • إعادة تسمية نظام الجسيمات إلى "ParticlePainter".
  • ضع الكائن "ParticlePainter" أعلى المستوى قليلاً.

3. تكوين نظام الجسيمات للرسم

  • مع تحديد الكائن "ParticlePainter"، انتقل إلى نافذة المفتش.

ضمن 'Particle System'، قم بإجراء التغييرات التالية:

  • 'Duration': 1
  • 'Start Lifetime': 'Infinity' (وهذا يضمن عدم موت الجزيئات)
  • 'Start Speed': 0 (يجب ألا تتحرك الجزيئات)
  • 'Emission' -> 'Rate over Time': 100 (اضبط وفقًا لتفضيلات كثافة الطلاء)
  • انتقل إلى 'Shape' وحدد "Circle". اضبط نصف القطر إلى قيمة أصغر للتحكم في حجم الفرشاة.
  • ضمن 'Renderer'، قم بتغيير المادة إلى مادة أو لون مخصص لتمثيل الطلاء.

4. كتابة ميكانيكي الطلاء

الآن، سيتم إضافة script للتحكم في متى وأين تنبعث الجسيمات.

  • انقر بزر الماوس الأيمن في نافذة الأصول، وحدد 'Create' -> 'C# Script'، وقم بتسميته "ParticlePainterScript".
  • انقر نقرًا مزدوجًا على البرنامج النصي لفتحه في المحرر، والصق الكود أدناه بداخله، ثم احفظ البرنامج النصي:
using UnityEngine;

public class ParticlePainterScript : MonoBehaviour
{
    private ParticleSystem painterParticles;
    private bool canPaint = false;

    void Start()
    {
        painterParticles = GetComponent<ParticleSystem>();
    }

    void Update()
    {
        PaintMechanic();
    }

    void PaintMechanic()
    {
        if (Input.GetMouseButton(0))
        {
            if (!canPaint) 
            {
                painterParticles.Play();
                canPaint = true;
            }
        }
        else
        {
            painterParticles.Stop();
            canPaint = false;
        }

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        
        if (Physics.Raycast(ray, out hit))
        {
            transform.position = hit.point;
        }
    }
}
  • قم بإرفاق "ParticlePainterScript" بالكائن "ParticlePainter" في المحرر Unity.

5. ضبط الكاميرا

اضبط الكاميرا الرئيسية للحصول على عرض من أعلى إلى أسفل:

  • اضبط الموضع على (0، 10، 0) والدوران على (90، 0، 0).

6. اختبار المشهد

  • انقر على زر تشغيل.
  • اضغط مع الاستمرار على زر الماوس الأيسر وحرك المؤشر فوق المستوى. يجب أن تنبعث الجزيئات، مما يخلق تأثيرًا يشبه الطلاء.

أسئلة و أجوبة:

  1. لماذا نستخدم نظام الجسيمات للرسم بدلاً من طرق طلاء النسيج التقليدية؟ : يوفر نظام الجسيمات ردود فعل ديناميكية في الوقت الحقيقي، وهو قابل للتخصيص بدرجة كبيرة، ويمكن أن يوفر تأثيرات بصرية فريدة. بالإضافة إلى ذلك، يمكن أن يكون أكثر ملاءمة للأداء في بعض المواقف، خاصة بالنسبة لتأثيرات الطلاء المؤقتة.
  2. هل يمكن رسم ألوان متعددة بهذه الطريقة؟ : نعم، من خلال إنشاء أنظمة جسيمات متعددة أو ضبط لون الجسيمات بمرور الوقت، يمكن تحقيق تأثيرات ألوان مختلفة.
  3. كيف يمكن تغيير حجم الفرشاة ديناميكيًا؟ : عن طريق ضبط قيمة 'radius' لشكل نظام الجسيمات في الوقت الفعلي من خلال البرمجة النصية، يمكن تغيير حجم الفرشاة ديناميكيًا.

خاتمة

مع نهاية هذا البرنامج التعليمي، تم استكشاف تطبيق جديد وفريد ​​من نوعه لـ Unity Particle System. سواء كان الأمر يتعلق بآليات اللعبة، أو الأدوات الفنية، أو التجارب المبتكرة، فإن Unity يستمر في مفاجأة قدراته المتنوعة.

المقالات المقترحة
تنفيذ تأثيرات الجسيمات في الوحدة
إنشاء تأثير رغوة غسالة الضغط في الوحدة
كيفية عمل ملفات تعريف الارتباط الخفيفة في الوحدة
العمل مع نظام واجهة المستخدم الخاص بـ Unity
إنشاء تظليل العشب بسيط في الوحدة
إنشاء واجهة مستخدم لشاشة الفائز في Unity
إنشاء محاكيات الطيران في الوحدة