Menu
CoddyTech

SerializeField

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

يؤدي الحقل public مهمتين في آنٍ واحد: يظهر في نافذة المفتش، ويمكن لكل نص برمجي آخر قراءته وتغييره. غالبًا ما تحتاج إلى الأولى فقط. يمكن للحقل private (وهو الإعداد الافتراضي في C#) أن يتغير من خلال فئته نفسها فقط، لذا لا يمكن لأي نص برمجي آخر إفساده، لكن Unity لا تعرضه في نافذة المفتش.

يطلب [SerializeField] من Unity حفظ حقل خاص وعرضه على أي حال. يُضبط مدى هذا البرج لكل برج على حدة في نافذة المفتش، ولا يمكن لأي نص برمجي آخر الوصول إليه:

[SerializeField] private float range = 5f;

void Start()
{
    Debug.Log("Range: " + range);
}

هكذا تحتفظ معظم شيفرات Unity بإعداداتها: خاصة، مع [SerializeField]. انتبه إلى الحالة العكسية: إذا جعلت حقلًا خاصًا ونسيت السمة، فستسقط Unity بصمت القيمة المحفوظة في المشهد. سيعود الحقل إلى الرقم الموجود في الشيفرة، من دون أي خطأ ينبهك.

challenge icon

التحدي

سهل

أخفِ ارتفاع المصباح عن النصوص البرمجية الأخرى، مع إبقائه في نافذة Inspector.

  1. غيّر الحقل إلى [SerializeField] private float height = 1f;.
  2. اترك Start() كما هو: تضبط نافذة Inspector قيمة height على 4.

اضغط على «العب»: سيظل المصباح معلقًا على ارتفاع 4. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class LampHeight : MonoBehaviour
{
    public float height = 1f;

    void Start()
    {
        transform.position = new Vector3(0, height, 0);
    }
}

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

تدرّب بنفسك: Playground لـ Unity