Yuvarlanan Top
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 27 / 63.
Bu bölümde Coin Rush adlı küçük bir oyun oluşturacağız. Duvarlarla çevrili bir arenada topu ok tuşlarıyla yuvarlayacak ve süre dolmadan paraları toplayacaksın. Unity projesinde olacağı gibi, işleri iki betik paylaşır: Ball topu hareket ettirir, skoru ve süreyi takip eder; Coin ise her paranın üzerinde bulunur. Coin.cs başlangıçta boş bir sınıftır; sonraki derste içini dolduracağız.
Bir topu olduğu yere yerleştirmek yerine ittiğinde yuvarlanır. Rigidbody'sini AddForce ile it ve dönme hareketini serbest bırak: kuvvet topu hareket ettirir, zeminin sürtünmesi topun alt kısmını kavrayıp döndürür. Space basılı tutulurken bu bowling topu kendi kulvarında yuvarlanır:
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 top, hızının yarıçapına bölümü kadar döner. Bu nedenle yarıçapı 0.5 olan ve saniyede 3 birim hareket eden 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 bölümünde dönmeyi dondurursan top, dönmeden bir disk hokeyi diski gibi kayar. Tek renkli, sade bir küre her iki durumda da aynı görünür: yuvarlanmayı görmek için oyun çalışırken Rigidbody'nin Info bölümündeki Angular Velocity değerini izle.
Görev
OrtaCoin Rush oyununu topla başlat. Inspector, Ball nesnesine 10 force değeri verir.
Start()içinde topunRigidbodybileşeninirbiçine kaydet.FixedUpdate()içinde topu ok tuşlarıyla hareket ettir: x eksenindeInput.GetAxis("Horizontal")ve z eksenindeInput.GetAxis("Vertical"), her ikisini deforceile çarp.- Dönüşünü serbest bırak ki yuvarlansın.
Şimdilik Coin.cs dosyasını olduğu gibi bırak. Play düğmesine bas, oyuna tıkla ve arenada yuvarlan, ardından Check düğmesine bas.
Kendin dene
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
private Rigidbody rb;
void Start()
{
}
void FixedUpdate()
{
// Topu ok tuşlarıyla it: Horizontal x ekseni boyunca, Vertical z ekseni boyunca.
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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 Paralar