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

السرعة القطرية

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

اضغط باستمرار على السهمين الأيمن والأعلى معًا، وستعطيك المحاور الخام الاتجاه (1, 0, 1). طوله، .magnitude، هو الجذر التربيعي لـ 1 + 1، أي نحو 1.41. يقطع جسم يتحرك باستخدامه 1.41 وحدة قطريًا في الوقت الذي يقطع فيه وحدة واحدة إلى الأمام مباشرةً: أسرع بنسبة 41%.

تعطي .normalized نسخة من متجه تشير إلى الاتجاه نفسه ويبلغ طولها وحدة واحدة بالضبط: يصبح (1, 0, 1) نحو (0.71, 0, 0.71)، ويصبح (0, 0, 5) (0, 0, 1). وعند ضربها في سرعة، يتحرك بتلك السرعة مهما كان الاتجاه. تطير هذه النحلة نحو الزهرة بسرعة وحدتين في الثانية، سواء كانت الزهرة بعيدة أم قريبة؛ ومن دون .normalized، ستطير أسرع كلما ابتعدت الزهرة:

public Vector3 flower = new Vector3(4, 1, 3);
public float speed = 2f;

void Update()
{
    Vector3 toFlower = flower - transform.position;
    transform.position += toFlower.normalized * speed * Time.deltaTime;
}

تظل Vector3.zero.normalized مساويةً لـ (0, 0, 0)، لأن الصفر ليس له اتجاه. لا تغيّر v.normalized قيمة v؛ أما v.Normalize() فتغيّر v نفسها.

challenge icon

التحدي

سهل

اكتب حركة الكائن المتحرك. تحرّكه مفاتيح الأسهم (أو WASD)، عند قراءتها باستخدام المحاور الخام، إلى اليسار واليمين على المحور x، وإلى الأعلى والأسفل على المحور z. يتحرك بسرعة speed وحدة في الثانية في كل اتجاه، بما في ذلك الاتجاهات القطرية، ويبدأ ويتوقف فورًا، ويبقى ثابتًا عند عدم الضغط على أي مفتاح.

اضغط على Play، وتحرك في خط مستقيم وباتجاه قطري، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Walker : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // مفاتيح الأسهم أو WASD: تحرّك على المحورين x وz بسرعة speed، وبالسرعة نفسها قطريًا.
    }
}
quiz iconاختبر نفسك

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

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