Menu
CoddyTech

الإنشاء العشوائي

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

تختار Random.Range(min, max) عددًا عشوائيًا، وما يمكن أن تعيده يعتمد على نوع الأعداد التي تعطيها لها. مع الأعداد العشرية، يمكن أن تظهر أي قيمة من min إلى max، مع تضمين الطرفين. أما مع الأعداد الصحيحة، فلا تُضمَّن max نفسها. لذلك، عند رمي حجر نرد، نطلب عددًا من 1 إلى 7:

int roll = Random.Range(1, 7);   // 1، 2، 3، 4، 5 أو 6
Debug.Log("You rolled " + roll);

لا تتضمن النسخة التي تستخدم الأعداد الصحيحة max، ولذلك تكون Random.Range(0, names.Length) دائمًا فهرسًا صالحًا للمصفوفة. وهذا يعني أيضًا أن Random.Range(-5, 5) تعطي الأعداد الصحيحة فقط من -5 إلى 4، حتى عند تخزين النتيجة في عدد عشري. اكتب Random.Range(-5f, 5f) للحصول على أي قيمة بينهما.

للمواضع والاتجاهات في فضاء ثلاثي الأبعاد، توفر Unity متجهين عشوائيين جاهزين. Random.insideUnitSphere هي نقطة عشوائية داخل كرة نصف قطرها 1 ومركزها (0, 0, 0). أما Random.onUnitSphere فهي نقطة عشوائية على سطح تلك الكرة، ما يجعلها اتجاهًا عشوائيًا طوله 1. تمثل transform.position + Random.insideUnitSphere * 2f موضعًا يبعد حتى وحدتين في أي اتجاه، بما في ذلك الأعلى والأسفل.

challenge icon

التحدي

متوسط

تُسقط كل نقرة صندوقًا من موضع عشوائي فوق الأرضية.

  1. داخل if الخاصة بالنقرة، اختر float x = Random.Range(-4f, 4f); وعرّف float z بالطريقة نفسها.
  2. استدعِ Instantiate(cratePrefab, new Vector3(x, 5, z), Quaternion.identity);.

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

جرّب بنفسك

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // أسقط صندوقًا من موضع عشوائي: x وz من -4 إلى 4، y = 5
        }
    }
}

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

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