Menu
CoddyTech
flag Ar iconالعربيةdown icon

المراجع في Inspector

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 29 من 67.

يمكن أن يحتوي الحقل على كائن آخر. أعطه نوعًا مثل Transform أو GameObject، وسيعرض Inspector خانة فارغة تملؤها بسحب كائن من Hierarchy وإفلاته فيها. يتبع سكربت الكاميرا هذا أي كائن يُسحب إلى player، ويبقى على ارتفاع 3 وحدات فوقه و6 وحدات خلفه:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

تُظهر الخانة المتروكة فارغة None، ويؤدي السطر الأول الذي يستخدمها إلى ظهور الخطأ في كل إطار: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. ويخبرك السطر التالي من الرسالة بما يجب فعله: You probably need to assign the player variable of the CameraFollow script in the inspector. يذكر اسم الحقل والسكربت، لتعرف أي خانة عليك ملؤها.

ينبغي لبعض السكربتات أن تعمل حتى عندما تكون الخانة فارغة. يجعل Unity الخانة الفارغة تساوي null عند المقارنة، لذا يتحقق مثل هذا السكربت قبل استخدامه. عند إحاطة السطر في Update() بالشرط if (player != null)، تبقى الكاميرا التي لا تملك لاعبًا في مكانها بدلًا من إطلاق خطأ.

challenge icon

التحدي

متوسط

يتجه كل حارس إلى موقعه. في المشهد، يضع Inspector الخاص بـ Guard1 العنصر Post1 في حقل اسمه post. لم يُنشأ موقع Guard2 بعد، لذا فإن خانة post الخاصة به فارغة.

  • أضف إلى نص Guard حقلًا من النوع Transform اسمه post.
  • يتجه الحارس إلى موضع موقعه بسرعة speed وحدات في الثانية، ويتوقف عنده، حتى لو تم نقل الموقع لاحقًا.
  • يبقى الحارس الذي خانة موقعه فارغة في مكانه، دون ظهور خطأ.

اضغط على Play، وحدد كل حارس في Hierarchy لرؤية خانة Post الخاصة به، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: الـ Transform الذي يسير إليه هذا الحارس، ويُحدَّد في Inspector
    public float speed = 2f;

    void Update()
    {
        // سِر إلى post بسرعة speed. يبقى الحارس في مكانه إذا كانت خانة post فارغة.
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس أساسيات البرمجة النصية في Unity