Unity’de Rigidbody nesneleri kuvvet ve ivme gibi fizik davranışlarıyla birlikte gerçekçi hareket etmesini sağlar. Örnek kullanım şekli şu şekilde olabilir.
Rigidbody meteorfizik;
void Start()
{
Meteorfizik=GetComponent<Rigidbody>();
Meteorfizik.velocity=new Vector3(0,0,-12);
}
Birden fazla nesneyi otomatik olarak üretmek isteyebilirsiniz. Burada Coroutine kullanılabilir. Coroutine’ler programın ana akışından bağımsız çalışacak bir fonksiyon oluşturmakta kullanılır. Coroutine’ler IEnumerator döndürmelidir ve StartCoroutine fonksiyonu ile çağrılmalıdır. Ayrıca Coroutine’in içinde en az bir yield return ifadesi kullanılmalıdır. Örnek kullanımı şu şekilde olabilir.
public GameObject[] meteorlar;
int meteorsecimi;
void Start()
{
StartCoroutine(MeteorYap());
}
IEnumerator Meteoryap()
{
yield return new WaitForSeconds(1f)
while (true)
{
Vector3 meteorenginekoordinat=new Vector3(Random.Range(-1f,1f),8,18);
meteorsecimi=Random.Range(0,meteorlar.Length);
Instantiate(meteorlar[meteorsecimi], meteorenginekoordinat, Quaternion.identity);
yield return new WaitForSeconds(1f)
}
}
Trigger fonksiyonları ise çarpışmayı algılar. Bu fonksiyonlardan birisi olan onTriggerEnter, “Collider” ve “Rigidbody” olan nesnenelerde kullanılmaktadır. Örnek kullanımı şu şekilde olabilir. Çarpma anında gameObject nesnesinin yokedilmesini sağlar.
void onTriggerEnter(Collider other)
{
Destroy(other.gameObject);
}