Yuvarlanan Top
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 28 / 71.
Bu bölüm, Coin Rush adlı küçük bir oyun oluşturuyor. Duvarlarla çevrili bir arenada topu yön tuşlarıyla yuvarlıyor ve süre dolmadan paraları topluyorsun. İş bölümü, bir Unity projesinde olacağı gibi iki betik arasında paylaşılıyor: Ball topu hareket ettiriyor, skoru ve süreyi tutuyor; Coin ise her bir paranın üzerinde bulunuyor. Coin.cs başlangıçta boş bir sınıf ve sonraki derste içi dolduruluyor.
Bir topu yerleştirmek yerine ittiğinde yuvarlanır. Rigidbody'sini AddForce ile it ve dönüşünü serbest bırak: kuvvet topu hareket ettirir, zeminin sürtünmesi de topun alt kısmını kavrayıp dönmesini sağlar. Space tuşu basılı tutulurken bu bowling topu kendi kulvarında ilerler:
public float push = 6f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Space))
{
rb.AddForce(Vector3.forward * push);
}
}Kaymadan yuvarlanan bir topun dönüş hızı, hızı bölü yarıçapına eşittir. Bu nedenle yarıçapı 0.5 olan ve saniyede 3 birim ilerleyen bir top, saniyede 6 radyan hızla döner (rb.angularVelocity). Bunun yerine transform.position değerini değiştirir ya da Rigidbody'nin Constraints ayarlarında dönüşünü dondurursan, top dönmeden bir disk gibi kayar. Tek renkli düz bir küre her iki durumda da aynı görünür: yuvarlanmayı görmek için oyun oynanırken Rigidbody'nin Info bölümündeki Angular Velocity değerini izle.
Görev
OrtaCoin Rush'ı başlat: ok tuşlarıyla topu yuvarla.
Ball.csdosyasındakiStart()içinderb = GetComponent<Rigidbody>();değerini ata.FixedUpdate()içindefloat x = Input.GetAxis("Horizontal");vefloat z = Input.GetAxis("Vertical");değerlerini oku, ardındanrb.AddForce(new Vector3(x, 0f, z) * force);çağrısını yap.
“Oyna”'ya bas, oyuna tıkla ve topu yuvarla: top hareket ederken döner. Ardından “Kontrol et”'e bas.
Kendin dene
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
private Rigidbody rb;
void Start()
{
}
void FixedUpdate()
{
// Topu yön tuşlarıyla hareket ettir: Horizontal x ekseni boyunca, Vertical z ekseni boyunca.
}
}
Fizik ve Oynanış bölümündeki tüm dersler
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir Duvar5Proje: Coin Rush
Yuvarlanan TopToplanacak ParalarKendi başına pratik yap: Unity playground