Menu
CoddyTech

الآباء والأبناء

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

في التسلسل الهرمي، يصبح الكائن الذي تسحبه إلى كائن آخر ابنًا له، ويظهر تحته بمسافة بادئة، بينما يصبح الكائن الآخر أبًا له. يتحرك الابن ويدور ويتغير حجمه مع أبيه: حرّك الأب، وسيتحرك معه كل ابن، من دون الحاجة إلى كتابة أي كود للأبناء.

يخزّن Unity موضع الابن نسبةً إلى أبيه. تمثّل transform.localPosition هذا الإزاحة، مقاسةً من الأب؛ أما transform.position فيمثّل الموضع في العالم. هذا الراكب ابنٌ لحصان، ويضعه النص البرمجي على ارتفاع وحدة واحدة فوق مركز الحصان، وعلى بُعد نصف وحدة إلى الخلف، أينما وقف الحصان:

void Start()
{
    transform.localPosition = new Vector3(0, 1, -0.5f);
}

عندما يكون الحصان عند (4, 0.5, 2)، تكون قيمة position للراكب (4, 1.5, 1.5)، بينما تظل قيمة localPosition لديه (0, 1, -0.5). عندما يمشي الحصان، تتغير قيمة position ولا تتغير قيمة localPosition. تُقاس الإزاحة على محاور الأب نفسه، لذا عندما يدور الأب أو يتغير حجمه، تدور الإزاحة ويتغير حجمها معه. بالنسبة إلى كائن ليس له أب، تكون localPosition وposition متساويتين.

challenge icon

التحدي

متوسط

ضع العلم عند قاعدة السارية، مقاسًا من موضع السفينة.

  1. في Start()، تُقاس الأرقام (0.6, 1, 0) من موضع السفينة، وهي العنصر الأب للعلم.
  2. في ذلك السطر، غيّر transform.position إلى transform.localPosition.

اضغط على «العب»: سيستقر العلم عند قاعدة السارية على السفينة. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        // قاعدة الصاري: 0.6 إلى اليمين و1 إلى الأعلى، قياسًا من Ship
        transform.position = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // أثناء الضغط على سهم الأعلى، اصعد حتى يصبح الارتفاع عن Ship هو 4
    }
}

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

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