Raket
Coddy'nin Unity Oyunu: Tuğla Kırma kursunda ders 1 / 19.
Bu kursta, 3D Brick Breaker’ı inşa ediyorsun. Bu derste bir palet, zıplayan bir top, tuğla duvarı, canlar, seviyeler ve güçlendirmeler yer alıyor. Her şey z 0 düzlemindeki x ve y eksenlerinde hareket ediyor. Paddle, Ball, Brick, GameManager ve PowerUp betikleri şimdilik boş taslaklar. “Oyna” oyunu çalıştırır; “Kontrol et” kodunu değerlendirir.
Palet, kinematik bir Rigidbody bileşenine sahiptir ve fiziğin hareketini algılaması için FixedUpdate() içinde rb.MovePosition ile hareket ettirilir. Kinematik bir cisim duvarların içinden geçer, bu yüzden betik onu sınırlar içinde tutar. Merkezini duvarda sınırlamak, paletin yarısının duvarın içinde kalmasına neden olur: sınır, duvar konumundan paletin genişliğinin yarısı çıkarılarak bulunur. Duvarlar -6 ve 6 konumlarındaysa ve palet 2 birim genişliğindeyse:
float half = 2f / 2f;
target.x = Mathf.Clamp(target.x, -6f + half, 6f - half);
rb.MovePosition(target);Merkez -5 ile 5 arasında kalır, böylece uçlar tam olarak duvarlarda durur. Genişliği her adımda transform.localScale.x üzerinden okumak, palet büyürse sınırın doğru kalmasını sağlar.
Görev
KolayPaleti duvarların arasında hareket ettir.
PaddleiçindekiFixedUpdate()bölümünde, sol ok veya A tuşu basılıykenfloat inputdeğerini -1, sağ ok veya D tuşu basılıyken 1, aksi hâlde 0 yap.Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime;değerini hesapla.float half = transform.localScale.x / 2f;iletarget.xdeğerini-wallX + halfilewallX - halfarasında sınırla, ardındanrb.MovePosition(target);çağır.
“Oyna” düğmesine bas ve her iki duvara da kaydır: palet her birinde durur. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
using UnityEngine.InputSystem;
public class Paddle : MonoBehaviour
{
public float speed = 14f;
public float wallX = 8f; // yan duvarların iç yüzeyleri -wallX ve wallX konumundadır
Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// Ok tuşlarıyla veya A ve D tuşlarıyla hareket et ve duvarların arasında kal.
}
}
Unity Oyunu: Tuğla Kırma bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground