الوحدة هو محرك اللعبة الشعبية التي تسمح لك لخلق مختلف الألعاب وتصورات. تتمثل إحدى الوظائف المهمة في تطوير اللعبة في إنشاء كاميرات تتبع اللاعب. يتيح لك ذلك الحصول على نظرة عامة أفضل على عالم اللعبة وتحسين تجربة الألعاب. في هذه المقالة ، سننظر في كيفية إعداد كاميرا في الوحدة بحيث تتبع المشغل تلقائيا.
هناك عدة طرق لتنفيذ المراقبة بالكاميرا للاعب في الوحدة. واحدة من أسهل الطرق هي استخدام البرامج النصية التي ستتحكم في موضع الكاميرا ودورانها وفقا لموضع المشغل ودورانه. للقيام بذلك ، تحتاج أولا إلى إنشاء كائن فارغ يمثل الكاميرا.
بعد ذلك ، تحتاج إلى ربط الكاميرا بهذا الكائن وإضافة برنامج نصي إليه. في البرنامج النصي ، تحتاج إلى تحديد مرجع لكائن اللاعب وتعيين موضع الكاميرا ودورانها وفقا لموضع اللاعب ودورانه. عندما يتحرك اللاعب ، ستتبعه الكاميرا تلقائيا ، مما سيخلق تأثير تتبع.
- كيفية إنشاء تتبع تلقائي للكاميرا للاعب في الوحدة
- العمل مع مكون الكاميرا
- تكوين مكون الكاميرا
- إنشاء برنامج نصي لمتابعة الكاميرا
- إعداد تتبع اللاعب
- 1. باستخدام مكون "المتابعة السلسة"
- 2. باستخدام البرنامج النصي
- 3. استخدام مكون "آلة السينما"
- استخدام البرامج النصية لمتابعة الكاميرا تلقائيا
- تحقيق حركة الكاميرا على نحو سلس
- إعدادات الكاميرا الإضافية
- تدمير حدود الشاشة
- المسافة وزاوية الرؤية
- حركة الكاميرا على نحو سلس
- المرشحات والمعالجة اللاحقة
- إعدادات متعددة اللاعبين
- تركيب الكاميرا
- سؤال وجواب
- كيف يمكنني جعل الكاميرا في الوحدة تتبع تلقائيا لاعب?
- ما هو البرنامج النصي الذي يجب أن أستخدمه لجعل الكاميرا في الوحدة تراقب المشغل?
- هل من الممكن جعل الكاميرا في الوحدة تتبع اللاعب دون استخدام البرامج النصية?
كيفية إنشاء تتبع تلقائي للكاميرا للاعب في الوحدة
عندما يتعلق الأمر بإنشاء الألعاب ، من المهم جدا أن تكون قادرا على ضبط الكاميرا بحيث تتبع المشغل. يتيح ذلك للاعب دائما رؤية جيدة في الملعب ويضمن تفاعلا مريحا وسلسا مع اللعبة. في الوحدة ، هناك عدة طرق لتنفيذ التتبع التلقائي للكاميرا للاعب. في هذه المقالة ، سنلقي نظرة على أحد الأساليب الأكثر شيوعا.
أولا ، تحتاج إلى إنشاء برنامج نصي يتحكم في حركة الكاميرا. إضافة برنامج نصي جديد إلى الكائن المسؤول عن الكاميرا وتسميته ، على سبيل المثال ، "كاميرافولو".
داخل البرنامج النصي ، قم بإنشاء متغير لتخزين مرجع إلى كائن المشغل:
لاعب التحويل العام;
ثم ، في وظيفة التحديث () ، أضف رمزا يقوم بتحديث موضع الكاميرا بحيث يتبع المشغل:
تحديث باطل()
{
تحويل.الموضع = ناقل جديد 3 (لاعب.موقف.س ، لاعب.موقف.ص ، تحويل.موقف.ض);
}
يقوم هذا الرمز ببساطة بتحديث موضع الكاميرا على كل إطار ، وتعيين إحداثياته على نفس إحداثيات اللاعب ، مع الاحتفاظ بإحداثيات المحور الأصلي (لضمان مسافة معينة بين الكاميرا واللاعب).
أنت الآن بحاجة إلى تكوين البرنامج النصي بحيث يعرف الكائن الذي يجب اتباعه. هناك عدة طرق للقيام بذلك في الوحدة ، ولكن في هذه الحالة سنقوم ببساطة بسحب كائن المشغل إلى حقل "المشغل" لمكون البرنامج النصي الجديد.
حدد كائن المشغل في التسلسل الهرمي ، ثم اسحبه إلى حقل "المشغل" لمكون "الكاميرا" الجديد. الآن سوف يتبع البرنامج النصي اللاعب تلقائيا.
إذا قمت بإجراء اختبار ، ستلاحظ أن الكاميرا ستتبع المشغل ، لكنها قد تكون حساسة للغاية أو غير قريبة بدرجة كافية من المشغل. لحل هذه المشكلة ، يمكنك إضافة إعدادات إضافية للبرنامج النصي.
أضف متغيرات عامة لضبط السرعة والمسافة بين الكاميرا والمشغل:
يتبع التعويم العام السرعة = 2 واو;
الكاميرا العائمة العامة المسافة = 10 فهرنهايت;
ثم ، في وظيفة التحديث () ، قم بتغيير الرمز على النحو التالي:
تحديث باطل()
{
الموجه 3 الهدف = الموجه الجديد 3 (لاعب.موقف.س ، لاعب.موقف.ص ، تحويل.موقف.ض);
تحويل.موقف = متجه3.ليرب (تحويل.الموقف ، الهدف ، يتبعالسرعة * الوقت.دلتا تايم);
}
الآن ستتحرك الكاميرا نحو المشغل بناء على معلمة السرعة. كلما ارتفعت قيمة المعلمة "متابعةسرعة" ، وأسرع الكاميرا سوف تتحرك.
بالإضافة إلى ذلك ، يمكنك تكوين معلمة "الكاميرا" لتعيين المسافة الأولية بين الكاميرا والمشغل. ستؤدي زيادة قيمة هذه المعلمة إلى زيادة المسافة بين الكاميرا واللاعب ، وسيؤدي تقليلها إلى تقليلها.
الآن يمكنك إنشاء كاميرا سلسة ومريحة التالية من لاعب في الوحدة باستخدام هذا النهج بسيطة وفعالة.
العمل مع مكون الكاميرا
يعد مكون الكاميرا في الوحدة أحد العناصر الرئيسية لمحرك اللعبة ، والذي يسمح لك بإنشاء تأثير متابعة اللاعب. باستخدامه ، يمكنك تكوين منطقة العرض في عالم اللعبة والتحكم في سلوك الكاميرا أثناء اللعبة.
تكوين مكون الكاميرا
قبل البدء في برمجة الكاميرا بعد المشغل ، تحتاج إلى تكوين مكون الكاميرا بشكل صحيح في الوحدة. يتضمن هذا بشكل أساسي الخطوات التالية:
- أضف مكون كاميرا إلى الكائن الذي سيمثل الكاميرا في عالم اللعبة.
- قم بتعيين معلمات الكاميرا المطلوبة ، مثل مجال الرؤية ، القريب والبعيد ، وحجم منطقة العرض والسمات الأخرى.
- اضبط الموضع الأولي للكاميرا واتجاهها بحيث تعرض عالم اللعبة في المنظور المطلوب.
إنشاء برنامج نصي لمتابعة الكاميرا
بعد تكوين مكون الكاميرا بشكل صحيح ، يمكنك المتابعة لكتابة برنامج نصي سيكون مسؤولا عن متابعة المشغل تلقائيا. للقيام بذلك ، فمن المستحسن استخدام مكونات مثل تحويل وسلسدامب.
التحويل هو مكون يسمح لك بالتحكم في موضع الكائن ودورانه وحجمه في عالم اللعبة.
SmoothDamp — функция, позволяющая плавно изменять значение одной величины до заданного значения за определенное время.
Ниже приведен пример скрипта для следования камеры:
| using UnityEngine; |
|---|
| public class CameraFollow : MonoBehaviour { |
| public Transform target; |
| public float smoothTime = 0.3f; |
| private Vector3 velocity = Vector3.zero; |
| private void LateUpdate() { |
| Vector3 targetPosition = target.position; |
| transform.position = Vector3.سموث دامب (تحويل.الموقف ، الهدف ، المرجع السرعة ، الوقت السلس); |
| } |
| } |
في هذا البرنامج النصي ، يتم تخزين مرجع إلى مكون التحويل للكائن الذي يجب أن تتبعه الكاميرا في المتغير الهدف.
في طريقة التحديث المتأخر () ، نستخدم وظيفة السلس لتغيير موضع الكاميرا بسلاسة إلى موضع اللاعب.
تمثل قيمة الوقت السلس الوقت الذي تستغرقه الكاميرا للوصول إلى موضع اللاعب.
من خلال إرفاق هذا البرنامج النصي بكائن به مكون كاميرا وإعداد رابط للمشغل ، ستتبعه الكاميرا تلقائيا.
هذه هي أساسيات العمل مع مكون الكاميرا في الوحدة. للحصول على تأثيرات أكثر تعقيدا لمتابعة المشغل ، قد تكون هناك حاجة إلى إعدادات ونصوص إضافية ، ولكنها ستستند إلى المبادئ الموضحة أعلاه.
إعداد تتبع اللاعب
في الوحدة ، يمكنك إعداد الكاميرا بحيث تتبع المشغل تلقائيا. هذا مفيد بشكل خاص في الألعاب حيث يمكن للاعب التحرك بحرية في جميع أنحاء عالم اللعبة. في هذا القسم ، سننظر في عدة طرق لإعداد تتبع اللاعب.
1. باستخدام مكون "المتابعة السلسة"
أولا ، دعنا نضيف مكون" المتابعة السلسة " إلى الكاميرا. للقيام بذلك ، حدد الكاميرا في التسلسل الهرمي للكائنات وانتقل إلى علامة التبويب "المفتش". انقر فوق الزر" إضافة مكون "وابحث عن مكون" المتابعة السلسة". إضافته إلى الكاميرا.
في مكون" المتابعة السلسة " ، ستحتاج إلى تحديد الهدف الذي ستتبعه الكاميرا. في حالتنا ، سيكون لاعبا. حدد كائن لاعب عن طريق سحبه من التسلسل الهرمي للكائنات إلى حقل "الهدف" في مكون "المتابعة السلسة".
يمكنك الآن ضبط معلمات مكون "المتابعة السلسة" لتحقيق تأثير التتبع المطلوب. على سبيل المثال ، يمكنك ضبط سرعة حركة الكاميرا ومسافة التتبع والمعلمات الأخرى.
2. باستخدام البرنامج النصي
إذا كنت تفضل المزيد من المرونة ، يمكنك كتابة البرنامج النصي الخاص بك لتتبع المشغل. إنشاء برنامج نصي جديد وإرفاقه إلى الكاميرا.
في البرنامج النصي ، يمكنك استخدام وظيفة التحديث () لتحديث موضع الكاميرا في كل إطار. على سبيل المثال ، يمكنك الحصول على الموضع الحالي للاعب وتعيين موضع الكاميرا بناء على هذا الموضع.
يمكنك أيضا استخدام وظيفة التحديث المتأخر () لتحديث موضع الكاميرا بعد تحديث موضع اللاعب. هذا يمكن أن يجعل تتبع اللاعب أكثر سلاسة.
3. استخدام مكون "آلة السينما"
إذا كنت بحاجة إلى تتبع كاميرا أكثر تطورا ، فيمكنك استخدام مكون "آلة السينما". إنها أداة قوية تسمح لك بتخصيص تأثيرات التتبع المختلفة مثل متابعة المشغل والتناوب السلس والمزيد.
لاستخدام مكون آلة السينما ، يجب عليك أولا إضافته إلى المشروع. إذا كنت تستخدم الوحدة 2019.3 أو في وقت لاحق ، يمكنك إضافة مكون سينيماشين من نافذة إدارة الحزم. خلاف ذلك ، سوف تحتاج إلى تحميل عنصر "سينماشين" من مخزن الأصول.
بعد إضافة مكون سينيماشين ، يمكنك إنشاء كاميرا افتراضية وتكوين المعلمات الخاصة به. يمكنك بعد ذلك تحديد اللاعب كهدف لتلك الكاميرا وضبط تأثيرات التتبع لتناسب احتياجاتك.
في الختام ، لدى الوحدة عدة طرق لإعداد تتبع اللاعب. يمكنك استخدام مكون " المتابعة السلسة "أو كتابة البرنامج النصي الخاص بك أو استخدام مكون" آلة السينما " الأكثر تعقيدا. اختيار الطريقة التي تناسب اللعبة وتخصيص لاعب تتبع وفقا لاحتياجاتك.
استخدام البرامج النصية لمتابعة الكاميرا تلقائيا
تقدم الوحدة خيارات مختلفة لمتابعة الكاميرا تلقائيا خلف المشغل. واحدة من أكثر الطرق شيوعا هي استخدام البرامج النصية التي تسمح لك بالتحكم برمجيا في موضع الكاميرا ودورانها.
أولا ، قم بإنشاء كائن فارغ في مشهد الوحدة. سيمثل هذا الكائن كاميرا تتبع المشغل.
ثم قم بإنشاء برنامج نصي جديد في ج # سيتحكم في حركة الكاميرا. في هذا البرنامج النصي ، يمكنك تحديد أي جزء من كائن لعبة اللاعب سيكون في وسط إطار الكاميرا ، وكذلك مدى سرعة متابعة الكاميرا للاعب.
Вот пример простого скрипта, который позволяет камере следовать за игроком:
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public Transform target; // ссылка на игрока
public float smoothSpeed = 0.125f; // скорость перемещения камеры
private void LateUpdate()
{
Vector3 desiredPosition = target.position; // получить позицию игрока
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed); // حركة سلسة للكاميرا
تحويل.الموضع = الموضع السلس ؛ / / حرك الكاميرا
}
}
لاستخدام هذا البرنامج النصي ، ما عليك سوى سحبه إلى كائن فارغ يمثل الكاميرا.
يستخدم البرنامج النصي حقل "الهدف" العام لتحديد كائن اللعبة الذي يجب اتباعه. يمكنك تعيين هذا الحقل عن طريق سحب اللاعب إلى هذا الحقل في مفتش الوحدة.
باستخدام الحقل العام "سموث سبيد" ، يمكنك أيضا ضبط السرعة التي ستتبع بها الكاميرا المشغل.
في كل مرة يتم فيها تنفيذ طريقة "التحديث المتأخر" ، تستقبل الكاميرا الوضع الحالي للاعب ، وتنعم حركته عن طريق استدعاء طريقة" ليرب " ثم تنقل موضعها إلى الوضع السلس.
بهذه الطريقة ، ستتبع الكاميرا المشغل باستمرار وسلاسة ، مما يخلق شعورا لطيفا بمتابعة تجربة الألعاب وتحسينها.
آمل أن يساعدك هذا المثال في معرفة كيفية استخدام البرامج النصية لمتابعة الكاميرا تلقائيا في الوحدة. حظا سعيدا في تطوير لعبتك!
تحقيق حركة الكاميرا على نحو سلس
واحدة من الجوانب الرئيسية في إنشاء كاميرا لعبة في الوحدة هي سلاسة الحركة. تبدو ألعاب الفيديو التي تتبع فيها الكاميرا اللاعب أكثر واقعية وإثارة للاهتمام بسبب هذا التأثير. تحقيق سلاسة الحركة من خلال الخطوات التالية:
- اضبط الموضع المستهدف للكاميرا
- احسب الانتقال السلس إلى الموضع المستهدف
- تحديث موضع الكاميرا
مثال على تنفيذ بسيط لحركة الكاميرا السلسة:
| شفرة المصدر |
|---|
{
Vector3 desiredPosition = target.position + offset; // Рассчитываем целевую позицию камеры
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed); // Рассчитываем плавный переход к целевой позиции
transform.position = smoothedPosition; // Обновляем позицию камеры
}
}
في هذا المثال ، تتبع الكاميرا المشغل باستخدام الاستيفاء الخطي. نقوم بحفظ الإزاحة الأولية بين الكاميرا واللاعب في متغير الإزاحة في بداية اللعبة. بعد ذلك ، في طريقة التحديث المتأخر ، نحسب موضع الكاميرا المستهدفة كمجموع موضع اللاعب وإزاحته ، ثم نستخدم الاستيفاء الخطي للانتقال بسلاسة إلى هذا الموضع. نقوم بتحديث موضع الكاميرا على كل إطار.
باستخدام هذا النهج لتحقيق سلاسة حركة الكاميرا ، يمكنك إنشاء تجربة بصرية أكثر جاذبية وواقعية للعبة.
إعدادات الكاميرا الإضافية
بمجرد إعداد كاميرا الوحدة بحيث تتبع المشغل تلقائيا ، يمكنك البدء في إعداد إعدادات كاميرا إضافية. في هذا القسم ، سنلقي نظرة على بعض الإعدادات الأكثر فائدة التي ستساعد في تحسين التجربة المرئية لعبتك.
تدمير حدود الشاشة
بشكل افتراضي ، تكون الكاميرا في الوحدة محدودة بحجم شاشة اللعبة. هذا يمكن أن يحد من عالم لعبتك ويخلق إحساسا بالحبس. لكسر حدود الشاشة والسماح للكاميرا بالخروج من الشاشة ، تحتاج إلى تمكين خيار "حد المشبك" في مكون "حدود الكاميرا".
المسافة وزاوية الرؤية
يسمح لك مكون" الكاميرا " في الوحدة بضبط مسافة الكاميرا وزاوية الرؤية. تحدد هذه المعلمات إلى أي مدى ستكون الكاميرا بعيدة عن المشغل وإلى أي منطقة سيتم توجيهها. اضبط هذه الإعدادات بحيث تتطابق مع لعبتك وتساعد في خلق الجو المطلوب.