Unity'de Physics 2D ile Gerçekçi Hareket Simülasyonu
Unity'nin Physics 2D sistemi, 2D oyunlarda nesnelerin doğal ve gerçekçi şekilde hareket etmesini sağlayan temel araçlardan biridir. Karakter kontrolünden çevre etkileşimine kadar pek çok mekanik bu sistem üzerinde çalışır.
Her fiziksel nesneye Rigidbody 2D bileşeni eklemek gerekir. Bu bileşen, nesnenin kütlesini, yerçekimi etkisini ve hareket türünü tanımlar. Dynamic nesneler tam fizik simülasyonuna tabi olurken, Kinematic nesneler sadece kodla kontrol edilir ve Static nesneler hareketsiz kalır.
CircleCollider2D ve BoxCollider2D, çarpışma algılaması için kullanılır. Çarpışma olduğunda OnCollisionEnter2D() veya OnTriggerEnter2D() gibi callback fonksiyonları tetiklenir. Trigger ayarı açıksa fizik simülasyonu atlanır ve sadece çarpışma algılanır.
1using UnityEngine;23public class PlayerController: MonoBehaviour4{5private Rigidbody2D rb;6public float jumpForce = 5f;7public float moveSpeed = 5f;89void Start()10{11rb = GetComponent<Rigidbody2D>();12}1314void Update()15{16float moveInput = Input.GetAxis("Horizontal");17rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);1819if (Input.GetKeyDown(KeyCode.Space))20{21rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);22}23}24}Fizik simülasyonu CPU açısından pahalıdır. Gereksiz collider kullanmaktan kaçının ve Static nesneleri optimize edin. FixedUpdate() içinde fizik kodunu yazın, Update() değil. Physics2D ayarlarında iteration sayısını oyun ihtiyacına göre ayarlayın.
Unity'nin Physics 2D sistemi basit görünse de, doğru kullanıldığında oyunun hissiyatını tamamen değiştirir. Başlangıçta Rigidbody ve Collider ilişkisini anlamak, daha karmaşık mekanikler için sağlam bir temel oluşturur.
0 yorum