إنشاء عشوائي
جزء من قسم أساسيات البرمجة النصية في 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 موضعًا يبعد حتى وحدتين في أي اتجاه، بما في ذلك الأعلى والأسفل.
التحدي
متوسطيجب أن تُسقط كل نقرة صندوقًا من موضع عشوائي فوق الأرضية:
- 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
}
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر