سكربت بسيط يقوم بإزالة مجسم من اللعبة بعد فترة زمنية محددة " Destroyer "


سكربت "  Destroyer"

 

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





using UnityEngine;
using System.Collections;

public class Destroyer : MonoBehaviour
{
    public float awakeDestroyDelay;       

    void OnTriggerEnter (Collider col)
    {
        if (col.gameObject.tag == "Player") {
            Destroy (gameObject, awakeDestroyDelay);
        }

   
    }
}


شرح الأكواد:

بالطبع أول سطرين في البرنامج هم من أجل يعريف المكتبات البرمجية المستخدمة في كتابة السكربت.

using UnityEngine;
using System.Collections;

أما السطر الثالث فهو من أجل تعريف كلاس " class" جديد لنكتب بداخله أكوادنا وهو كلاس "  Destroyer".


public class Destroyer : MonoBehaviour


وبعد ذلك قمنا بتعريف متغير عام من النوع فلوت " float" بأسم " awakeDestroyDelay" وهو لحفظ قيمة الثواني التي سينتظرعا البرنامج قبل أن يقوم بتنفيز أمر أزالة المجسم من اللعبة.

public float awakeDestroyDelay;

وبعد ذلك سنقوم بتعريف وأستدعاء دالة تسمى " OnTriggerEnter" وهي من الدوال ذات الوظائف الهامة، فهي تقوم بتسجيل كل المجسمات التي تدخل في نطاق الكوليدر " Collider"  الخاص بها،، الأمر الذي يجعل البرنامج يشعر ويحدد كل التحركات داخل اللعبة في نطاق "Collider " محدد الأبعاد.
وهي داله لها متغير واحد تستقبله من النوع "Collider ".
  void OnTriggerEnter (Collider col)

وبالطبع بعد ما أن حددنا كل الأجسام التي تدخل في نطاق " Collider " المحدد نقوم بتحديد أكثر دقة لمجسمات، وهي هنا في هذا السكربت هي اللاعب "Player "، وسنقوم بهذا عبر أختبار نوع التاج " tag"  لكل المجسمات بحثا عن المجسم الذي يحمل تاج اللاعب " Player".
  if (col.gameObject.tag == "Player") {

وفي النهاية وبعد دخول اللاعب في المنطقة المحددة فأننا هنا فأن سيبدأ دالة التدمير "  " في العمل، حيث ستكوم بمحو المجسم " gameObject"  الحامل للسكربت من اللعبة بعد عدد من الثواني المحددة في المتغير" awakeDestroyDelay".

 Destroy (gameObject, awakeDestroyDelay);

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



إرسال تعليق

0 تعليقات