المسافة بين الأشياء
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 28 من 85.
تُبيّن Vector3.Distance(a, b) المسافة بين نقطتين، بالوحدات، مقيسةً بخط مستقيم عبر المحاور الثلاثة. وهي طول الخطوة بينهما، (a - b).magnitude، لذا لا يهم ترتيب a وb. المسافة من (0, 0, 0) إلى (3, 0, 4) هي 5.
بمقارنة المسافة برقم، يعرف البرنامج النصي متى يكون شيء ما قريبًا. يستطيع هذا المخيّم تدفئة يديه فقط عندما يكون على بُعد 4 وحدات من نار المخيّم، ويحدّد Inspector موضعها:
public Vector3 campfire = new Vector3(3, 0, 4);
void Update()
{
float d = Vector3.Distance(transform.position, campfire);
if (d < 4f && Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("You warm your hands");
}
}تُحتسب الارتفاع أيضًا ضمن المسافة: فالمخيّم الذي يعلو النار بمقدار 5 وحدات يبعد عنها 5 وحدات، لا 0. عندما لا ينبغي احتساب الارتفاع، قارِن بين نقطتين لهما قيمة y نفسها.
التحدي
سهلخفّف سرعة الشخص المتجوّل إلى النصف في المستنقع.
- أسفل
float s = speed;، اكتبif (Vector3.Distance(transform.position, swamp) < 3f). - داخلها، عيّن
s = speed / 2;. اترك الحقلspeedوأسطر الحركة كما هي.
اضغط «العب» وامشِ مباشرةً عبر المستنقع: ستتباطأ سرعة الشخص المتجوّل فيه. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
public Vector3 swamp = new Vector3(0, 0.5f, 0);
void Update()
{
float s = speed;
// عندما تكون على بُعد 3 وحدات أو أقل من المستنقع، تحرّك بنصف السرعة.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity