إضافة مراقبة الفيديو في Unity
إن إنشاء نظام مراقبة بالفيديو في Unity يمكن أن يضيف طبقة مثيرة من العمق إلى ألعابك أو عمليات المحاكاة الخاصة بك. سواء كنت تقوم بتطوير لعبة تسلل أو تجربة رعب أو محاكاة أمنية، فإن نظام مراقبة الفيديو يمكن أن يعزز من طريقة اللعب والانغماس في اللعبة. سيرشدك هذا البرنامج التعليمي خلال الخطوات اللازمة لإعداد نظام مراقبة بالفيديو عملي في Unity باستخدام الكاميرات وقوام العرض وعناصر واجهة المستخدم.
الخطوة 1: إعداد المشهد
قبل أن نبدأ بنظام المراقبة بالفيديو، نحتاج إلى إنشاء بيئة أساسية حيث يمكن وضع كاميرات المراقبة. إذا كان لديك بالفعل مشهد، فيمكنك تخطي هذه الخطوة.
- قم بإنشاء مشهد ثلاثي الأبعاد جديد في Unity بالانتقال إلى
ملف > مشهد جديد
. - أضف Terrain أو بعض Cubes لتكون بمثابة جدران وأرضيات.
- قم بوضع بعض الكائنات ثلاثية الأبعاد حول المشهد لجعله مثيرًا للاهتمام بصريًا وتوفير مناطق للمراقبة بالكاميرات.
- أضف كائن لعبة Player إلى المشهد. يمكنك استخدام أصول Unity القياسية أو وحدة التحكم في الشخصية المخصصة لك.
الخطوة 2: إضافة كاميرات المراقبة
إن جوهر نظام مراقبة الفيديو هو الكاميرات التي تلتقط المشهد. سنقوم بإنشاء كاميرات مراقبة متعددة وإعدادها لمراقبة مناطق مختلفة.
- انقر بزر الماوس الأيمن في التسلسل الهرمي h10 وحدد إنشاء h7 > كاميرا h8 لإضافة كاميرا جديدة إلى المشهد.
- ضع الكاميرا في المكان الذي تريد مراقبته. يمكنك تحريك الكاميرا وتدويرها في Scene View للحصول على الزاوية المطلوبة.
- قم بإعادة تسمية الكاميرا إلى شيء وصفي، مثل "SurveillanceCamera1".
- كرر الخطوات المذكورة أعلاه لإنشاء كاميرات متعددة تغطي مناطق مختلفة من المشهد الخاص بك.
- قم بضبط خصائص Field of View وClipping Planes لكل كاميرا حسب الحاجة لتغطية مساحة أكبر أو أقل.
الخطوة 3: إنشاء مواد عرض للكاميرات
لعرض بث المراقبة من الكاميرات، نحتاج إلى استخدام Render Textures. Render Textures هي نسيج خاص يمكن لـ Unity عرض إخراج الكاميرا عليه، مما يسمح لنا بعرض بث الكاميرا على الشاشات في اللعبة.
- انقر بزر الماوس الأيمن في المجلد Assets في نافذة Project وحدد
Create > Render Texture
. - قم بإعادة تسمية نسيج العرض الجديد إلى "SurveillanceFeed1".
- حدد نسيج العرض واضبط دقته إذا لزم الأمر. الدقة الأعلى تعني جودة أفضل ولكنها قد تؤثر على الأداء.
- قم بتعيين خاصية Target Texture من "SurveillanceCamera1" إلى "SurveillanceFeed1". سيؤدي هذا إلى جعل الكاميرا تعرض منظرها على نسيج العرض.
- كرر العملية لإنشاء نسيج العرض لكل كاميرا مراقبة.
الخطوة 4: عرض موجزات الكاميرا على الشاشات
الآن بعد أن أصبحت الكاميرات تقوم بمعالجة القوام، يمكننا عرض هذه القوام على شاشات اللعبة أو عناصر واجهة المستخدم لمحاكاة نظام مراقبة حقيقي.
استخدام شاشات اللعبة
- قم بإنشاء شاشة ثلاثية الأبعاد في المشهد الخاص بك باستخدام Quad أو Plane لتكون بمثابة شاشة تلفزيون أو شاشة مراقبة.
- انقر بزر الماوس الأيمن في التسلسل الهرمي h10 وحدد h7 إنشاء > كائن ثلاثي الأبعاد > رباعي h8.
- قم بوضع الجهاز الرباعي في المكان الذي تريد وضع الشاشة فيه.
- أنشئ مادة جديدة بالنقر بزر الماوس الأيمن في المجلد Assets وتحديد
Create > Material
. أطلق عليها اسم "SurveillanceScreen1". - اضبط Shader للمادة على Unlit/Texture. سيعرض هذا التظليل الملمس دون أي تأثيرات إضاءة.
- قم بتعيين "SurveillanceFeed1" إلى خاصية Main Texture للمادة.
- اسحب المادة "SurveillanceScreen1" إلى Quad لتطبيقها.
- كرر الخطوات لكل تغذية كاميرا، وإنشاء شاشات متعددة في مواقع مختلفة حسب الحاجة.
استخدام عناصر واجهة المستخدم
- قم بإنشاء Canvas في Hierarchy عن طريق النقر بزر الماوس الأيمن وتحديد
Create > UI > Canvas
. - داخل اللوحة القماشية، قم بإنشاء صورة خام عن طريق النقر بزر الماوس الأيمن على اللوحة القماشية وتحديد
إنشاء > واجهة المستخدم > صورة خام
. - قم بضبط حجم وموضع الصورة الخام إلى حجم الشاشة المطلوب.
- تعيين "SurveillanceFeed1" كنسيج للصورة الخام.
- كرر هذه الخطوات لإنشاء صور خام متعددة، بحيث تعرض كل منها تغذية كاميرا مختلفة.
الخطوة 5: التبديل بين موجزات الكاميرا
للحصول على نظام مراقبة أكثر ديناميكية، قد ترغب في السماح للاعبين بالتبديل بين مصادر الكاميرات المختلفة. ويمكن القيام بذلك باستخدام نص برمجي بسيط.
إنشاء برنامج نصي لتبديل الكاميرا
using UnityEngine;
using UnityEngine.UI;
public class CameraSwitcher : MonoBehaviour
{
public RenderTexture[] cameraFeeds; // Assign RenderTextures in the Inspector
public RawImage displayImage; // Assign the UI Raw Image in the Inspector
private int currentFeedIndex = 0;
void Start()
{
if (cameraFeeds.Length > 0)
{
displayImage.texture = cameraFeeds[currentFeedIndex];
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space)) // Use Space to switch feeds
{
currentFeedIndex = (currentFeedIndex + 1) % cameraFeeds.Length;
displayImage.texture = cameraFeeds[currentFeedIndex];
}
}
}
- قم بإنشاء برنامج نصي C# جديد يسمى CameraSwitcher وأضف الكود أعلاه.
- قم بإرفاق البرنامج النصي إلى GameObject فارغ في المشهد الخاص بك.
- قم بتعيين أصول RenderTexture ومكون Raw Image في Inspector.
- اضغط على تشغيل واستخدم مفتاح
المسافة
للتبديل بين موجزات الكاميرا.
الخطوة 6: إضافة تأثيرات إضافية
لجعل نظام المراقبة الخاص بك أكثر واقعية وجاذبية، يمكنك إضافة تأثيرات مثل الثبات أو الضوضاء أو التراكبات لمحاكاة التداخل أو تعزيز الانغماس.
إضافة تأثير ثابت
أنشئ برنامج تظليل أو استخدم أحد أصول برنامج التظليل من Unity Asset Store لإضافة تأثير ضوضاء ثابت. قم بتطبيقه على مواد شاشة المراقبة أو مباشرة على موجزات الكاميرا باستخدام تأثيرات Post-Processing.
محاكاة حركة الكاميرا
يمكنك أيضًا إضافة بعض الحركات البسيطة أو اهتزازات الكاميرا العشوائية لجعل نظام المراقبة أكثر ديناميكية. قم بإرفاق نص برمجي بكل كاميرا لتحقيق ذلك.
public class CameraSway : MonoBehaviour
{
public float swayAmount = 0.5f;
public float swaySpeed = 0.5f;
private Vector3 initialPosition;
void Start()
{
initialPosition = transform.position;
}
void Update()
{
float sway = Mathf.Sin(Time.time * swaySpeed) * swayAmount;
transform.position = initialPosition + new Vector3(0, sway, 0);
}
}
خاتمة
باتباع هذه الخطوات، يمكنك إنشاء نظام مراقبة فيديو قوي في Unity، مزود بكاميرات متعددة، وتبديل ديناميكي للشاشة، وتأثيرات واقعية. يمكن لهذا النظام تحسين آليات اللعب بشكل كبير في أنواع مختلفة، من ألعاب التخفي إلى مغامرات الرعب. جرِّب إعدادات ونصوصًا مختلفة لتخصيص نظام المراقبة بما يتناسب مع متطلبات لعبتك الفريدة.