Unity’de Sıfırdan Karakter Kontrolcüsü Oluşturma: Adım Adım Eğitim

Bu eğitimde, Unity oyun motorunda sıfırdan basit bir karakter kontrolcüsü nasıl oluşturulacağını adım adım öğreneceksiniz. C# kodlama örnekleri ve açıklamalarıyla karakter hareketlerini, zıplama ve kamera kontrolünü nasıl entegre edeceğinizi keşfedin.

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda basit bir karakter kontrolcüsü (Character Controller) oluşturmayı adım adım öğreneceğiz. Sıfırdan başlayarak, karakterimizin hareketlerini, zıplamasını ve hatta temel bir kamera kontrolünü nasıl entegre edebileceğimizi inceleyeceğiz. Bu eğitim, Unity’nin temel bileşenlerini ve C# programlama dilini anlayanlar için idealdir.

1. Yeni Bir Unity Projesi Oluşturma

İlk adım olarak, Unity Hub’ı kullanarak yeni bir 3D projeniz oluşturun. Projenizi istediğiniz bir klasöre kaydedin. Proje oluşturulduktan sonra, sahnenize bir 3D karakter modeli eklemek için Assets > Import New Asset yolunu izleyin. Bir karakter modeliniz yoksa, Unity Asset Store’dan ücretsiz bir model indirebilirsiniz. Bu eğitimde, basit bir kapsül (capsule) kullanacağız, ancak istediğiniz herhangi bir modeli kullanabilirsiniz.

2. Character Controller Bileşenini Ekleme

Sahnenize eklediğiniz karakter modeline Character Controller bileşenini eklemelisiniz. Bunu yapmak için, Hierarchy penceresinde karakter modelinizi seçin ve Inspector penceresinde Add Component butonuna tıklayın. Arama çubuğuna “Character Controller” yazın ve ekleyin. Character Controller bileşeni, karakterinizin fiziksel özelliklerini ve hareketlerini kontrol etmenizi sağlar.

3. C# Script Oluşturma ve Atama

Şimdi, karakterimizin hareketlerini kontrol edecek bir C# script oluşturmamız gerekiyor. Assets > Create > C# Script yolunu izleyerek yeni bir script oluşturun ve ona “PlayerMovement” gibi anlamlı bir isim verin. Oluşturduğunuz scripti karakter modelinize sürükleyip bırakın.

4. C# Kodunu Yazma

PlayerMovement scriptini açın ve aşağıdaki kodu ekleyin. Bu kod, WASD tuşlarını kullanarak karakterin hareket etmesini, boşluk tuşuyla zıplamasını sağlar.


using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 10f;
    public float jumpForce = 5f;
    private CharacterController controller;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        Vector3 move = transform.right * horizontal + transform.forward * vertical;
        controller.Move(move * speed * Time.deltaTime);

        if (Input.GetButtonDown("Jump") && controller.isGrounded)
        {
            controller.Move(Vector3.up * jumpForce);
        }
    }
}

Açıklamalar:

  • speed ve jumpForce değişkenleri, karakterin hızını ve zıplama gücünü kontrol eder.
  • Input.GetAxis("Horizontal") ve Input.GetAxis("Vertical"), yatay ve dikey hareketleri algılar.
  • controller.Move(), karakteri belirtilen yönde hareket ettirir.
  • controller.isGrounded, karakterin yere basıp basmadığını kontrol eder.

5. Kamera Kontrolü (Opsiyonel)

Oyununuzda daha iyi bir deneyim için basit bir üçüncü şahıs kamera kontrolü ekleyebilirsiniz. Bunun için, sahnenize bir kamera ekleyin ve aşağıdaki gibi bir script yazabilirsiniz:


using UnityEngine;

public class CameraController : MonoBehaviour
{
    public Transform player;
    public float distance = 5f;
    public float height = 2f;

    void LateUpdate()
    {
        transform.position = player.position - player.forward * distance + Vector3.up * height;
        transform.LookAt(player);
    }
}

Bu script, kamerayı karakterin arkasında sabit bir mesafede tutar. player değişkenine karakterinizi atamayı unutmayın.

6. Oyunu Test Etme

Yazdığınız kodları kaydedin ve Unity’de oyunu çalıştırın. WASD tuşlarını kullanarak karakterinizi hareket ettirebilir ve boşluk tuşuyla zıplayabilirsiniz. [YOUTUBE_VIDEO_BURAYA]

7. Geliştirme Önerileri

  • Daha gelişmiş hareketler için, Rigidbody bileşenini kullanabilirsiniz.
  • Animasyonlar ekleyerek karakterinizin hareketlerini daha gerçekçi hale getirebilirsiniz.
  • Çarpışma algılaması ve daha gelişmiş fiziksel etkileşimler için Collider bileşenlerini kullanın.
  • Daha karmaşık kamera kontrolleri için, çeşitli kamera sistemlerini araştırabilirsiniz.

Bu eğitim, Unity’de basit bir karakter kontrolcüsü oluşturmanın temel adımlarını göstermektedir. Daha gelişmiş özellikler ekleyerek oyununuzu daha da zenginleştirebilirsiniz. Bol şans!