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

إنشاء عشوائي

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

تختار 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

التحدي

متوسط

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

  • x و z: يمكن أن تكون كل منهما أي قيمة من -4 إلى 4، وليس أعدادًا صحيحة فقط؛
  • y: 5، لكي يسقط الصندوق على الأرضية؛
  • من دون دوران.

اضغط على Play وانقر بضع مرات، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

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

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

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