کلاس Random برای تولید اعداد تصادفی در unity یونیتی
يكشنبه, ۲۴ خرداد ۱۳۹۴، ۰۵:۴۵ ق.ظ
کلاس Random در یونیتی :
این کلاس برای تولید اعداد تصادفی به کار می رود.
متغیرهای static از کلاس Random عبارتند از :
متغیر insideUnitCircle:
یک نقطه تصادفی از بردار دو بعدی داخل دایره ای به شعاع 1 تولید می کند.
با کمی تغییر می تونیم کارهای دیگه ای هم انجام بدیم.
شکل کلی :
کد:
static var insideUnitCircle: Vector2;
متغیر insideUnitCircle : برای ایجاد نقطه ی تصادفی دو بعدی داخل یک دایره :
مثال : اسکریپ زیر موقعیت ابجکت جاری را داخل دایره ای به شعاع 5 و موقعیت مرکزی صفر(x=0,y=0,z=0) تنظیم می کند.
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public Vector2 newPosition = Random.insideUnitCircle * 5;
void Example() {
transform.position.x = newPosition.x;
transform.position.y = newPosition.y;
}
}
کد:
static Vector3 insideUnitSphere;
اسکریپت زیر مثل اسکریپت فوق است فقط برای یک کره(sphere):
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
void Example() {
transform.position = Random.insideUnitSphere * 5;
}
}
متغیر onUnitSphere: برای ایجاد نقطه ی تصادفی روی کره به شعاع 1
مثال :
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
void Example() {
rigidbody.velocity = Random.onUnitSphere * 10;
}
}
متغیر rotation: برای ایجاد یک چرخش تصادفی
مثال :
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
void Example() {
transform.rotation = Random.rotation;
}
}
متغیر rotationUniform:برای ایجا یک چرخش تصادفی با توزیع یکنواخت
مثال:
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
void Example() {
transform.rotation = Random.rotationUniform;
}
}
متغیر Random.seed :مجموعه دانه(seed) برای مولد عدد تصادفی.
مولد عدد تصادفی است واقعا تصادفی نیست، بلکه تولید اعداد در دنباله از پیش تعیین شده (ارزش در دنباله "jump" در اطراف محدوده در چنین راهی که آنها ظاهر می شود تصادفی برای اغلب اهداف).
با استفاده از مقدار ineger تصادفی که تولید میشه می تونیم game play های غیر قابل پیش بینی رو برای دشمن ایجاد کنیم و کاربر نتونه اونا رو حدس بزنه.به طور معمول از برخی از مقادیر دلخواه مانند ساعت سیستم قبل از توابع عدد تصادفی استفاده می شود.
مثال:
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
private float[] noiseValues;
void Start() {
Random.seed = 42;
noiseValues = new float[10];
int i = 0;
while (i < noiseValues.Length) {
noiseValues[i] = Random.value;
print(noiseValues[i]);
i++;
}
}
}
متغیر Random.value : عددی بین 0.0 و 1.0 را بر می گرداند.
هر دو مقدار باید به طور مناسب تولید شوند. این تابع با توابع تولید عدد تصادفی دیگر کمی فرق دارد که عددی کچکتر تر از اما دقیقا مساوی با 1.0 تولید می کند.
مثال :
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
Color RandomColor() {
return new Color(Random.value, Random.value, Random.value);
}
}
توابع کلاس Random :
Random.Range : عدد تصادفی بین دو عدد رو بر می گردونه که حداقل min و حداکثر max باشه:
شکل اول:
کد:
static float Range(float min, float max);
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public GameObject prefab;
void Start() {
Vector3 position = new Vector3(Random.Range(-10.0F, 10.0F), 0, Random.Range(-10.0F, 10.0F));
Instantiate(prefab, position, Quaternion.identity) as GameObject;
}
}
شکل دیگر:
کد:
static int Range(int min, int max);
کد PHP:
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
void Example() {
Application.LoadLevel(Random.Range(0, Application.levelCount));
}
}
مترجم:sajjad3011
۹۴/۰۳/۲۴