السرعة القطرية
جزء من قسم أساسيات البرمجة النصية في 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 نفسها.
التحدي
سهلاكتب حركة الكائن المتحرك. تحرّكه مفاتيح الأسهم (أو WASD)، عند قراءتها باستخدام المحاور الخام، إلى اليسار واليمين على المحور x، وإلى الأعلى والأسفل على المحور z. يتحرك بسرعة speed وحدة في الثانية في كل اتجاه، بما في ذلك الاتجاهات القطرية، ويبدأ ويتوقف فورًا، ويبقى ثابتًا عند عدم الضغط على أي مفتاح.
اضغط على Play، وتحرك في خط مستقيم وباتجاه قطري، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// مفاتيح الأسهم أو WASD: تحرّك على المحورين x وz بسرعة speed، وبالسرعة نفسها قطريًا.
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر