SerializeField
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 8 من 67.
يؤدي الحقل public وظيفتين في آنٍ واحد: يظهر في Inspector، ويمكن لكل سكربت آخر قراءته وتغييره. غالبًا ما تريد الأول فقط. يمكن تغيير الحقل private (وهو الافتراضي في C#) من خلال الصنف الخاص به فقط، لذلك لا يستطيع أي سكربت آخر العبث به، لكن Unity لا يعرضه في Inspector.
تطلب [SerializeField] من Unity حفظ حقل خاص وإظهاره رغم ذلك. يُضبط مدى هذا البرج لكل برج في Inspector، ولا يستطيع أي سكربت آخر لمسه:
[SerializeField] private float range = 5f;
void Start()
{
Debug.Log("Range: " + range);
}هذه هي الطريقة التي تحفظ بها معظم شيفرات Unity إعداداتها: خاصة، مع [SerializeField]. انتبه إلى العكس: إذا جعلت حقلًا خاصًا ونسيت السمة، فستتجاهل Unity بصمت القيمة المحفوظة في المشهد. يعود الحقل إلى الرقم الموجود في الشيفرة، من دون أي خطأ يخبرك بذلك.
التحدي
سهلالخاصية height للمصباح عامة، لذا يمكن لأي سكربت تحريكه. اجعل height خاصة مع إبقائها في Inspector، الذي يضبطها على 4. يجب أن يظل المصباح معلّقًا على الارتفاع الذي يحدده Inspector.
اضغط على Play وانظر إلى ارتفاع المصباح، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر