Unity 2D Karakter Hareket Ettirme

unity 2d

Bu dersimizde, android ve ios gibi platformlar için unity 2d oyunlarınızda karakteri veya objeleri nasıl hareket ettireceğinizi göstereceğim. 2 farklı şekilde karakter veya objeyi hareket ettirebiliriz. Addforce() veya velocity kullanabiliriz.

1-)Rigidbody 2D Ekleme

Karakter veya objeye hareket eklemek için fizik motoru olan rigidbody 2D compenentini eklemeliyiz.

Screenshot 1

Resimdeki gibi Add Compenent butonuna tıklıyoruz.

Unity Karakter Hareket Ettirme

Ardından arama yerine Rigidbody 2D yazıyoruz. Çıkan compenent’i ekliyoruz.

Aynı yerden Add Compenent’e tıklayıp, “Movement 2D” adında bir script oluşturuyoruz.

2-)Addforce() Kullanarak Karakter Hareket Ettirme

Addforce() ile karaktere veya objeye kuvvet uygularız. Eğer her tuşa bastığınızda karakterin hızını artmasını istiyorsanız aşağıdaki kodu kullanabilirsiniz.


using UnityEngine;

public class Movement2d : MonoBehaviour
{
    private Rigidbody2D rb2;
    public float speed = 1;
    void Start()
    {
        rb2 = GetComponent<Rigidbody2D>();
 // Bu komutla objemize eklediğimiz Rigidbody2D compenentini rb2'ye atıyoruz.
    }
    void Update()
    {
        if (Input.GetKey(KeyCode.W))
// Burada "W" tuşuna her bastığımızda belirlediğimiz hız değeriyle tuşa bastığımız sürece  nesnenin hızı artacak.(Örneğin arabanın hızlanması gibi)
        {
            rb2.AddForce(Vector2.up*speed);
        }
        if (Input.GetKey(KeyCode.A))
        {
            rb2.AddForce(Vector2.left*speed);

        }
        if (Input.GetKey(KeyCode.S))
        {
            rb2.AddForce(Vector2.down*speed);
        }
        if (Input.GetKey(KeyCode.D))
        {
            rb2.AddForce(Vector2.right*speed);
        }
    }
}

3-)Velocity Kullanarak Karakter Hareket Ettirme

Velocity ile karaktere direkt sabit hız verebiliriz. Tuşa her bastığınızda karakterimiz aynı hızla hareket edecektir. Mesela karakterin zıplamasını istiyorsak velocity ile gerçekleştirebiliriz. Unity 2D hareket kodlarını aşağıdaki gibi kullanabilirsiniz.


using UnityEngine;

public class Movement2d : MonoBehaviour
{
    private Rigidbody2D rb2;
    public float speed = 1;
    void Start()
    {
        rb2 = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        if (Input.GetKey(KeyCode.W))
        {
            rb2.velocity = new Vector2(0, speed);
        }
        if (Input.GetKey(KeyCode.A))
        {
            rb2.velocity = new Vector2(-speed, 0);
        }
        if (Input.GetKey(KeyCode.S))
        {
            rb2.velocity = new Vector2(0, -speed);
        }
        if (Input.GetKey(KeyCode.D))
        {
            rb2.velocity = new Vector2(speed, 0);
        }
    }
}

Takıldığınız veya yardıma ihtiyacınız olan konu varsa yorum kısmından bize ulaşabilirsiniz.

Kaynak:

“Unity 2D Karakter Hareket Ettirme” hakkında 2 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir