Merhaba Unity geliştiricileri! Bu eğitimde, Unity oyun motorunda sıfırdan basit bir karakter kontrolcüsü oluşturmayı öğreneceğiz. Bu, oyun geliştirmenin temel bir bileşenidir ve birçok farklı oyun türünde kullanılabilir. Adım adım ilerleyeceğiz ve her adımın açıklamasını yapacağız.
Gerekli Bileşenler
Başlamadan önce, Unity Hub’ı ve Unity’nin en son sürümünü (veya stabil bir sürümünü) indirdiğinizden ve kurduğunuzdan emin olun. Ayrıca, temel C# programlama bilgisine sahip olmanız faydalı olacaktır.
Yeni Bir Proje Oluşturma
Unity’yi açın ve yeni bir 3D proje oluşturun. Projenize anlamlı bir isim verin (örneğin, “CharacterController”). Proje oluşturulduktan sonra, sahneniz boş olacaktır.
Karakter Modeli Ekleme
Projenize bir karakter modeli eklemeniz gerekiyor. Unity Asset Store’dan ücretsiz bir karakter modeli indirebilir veya kendi modelinizi kullanabilirsiniz. İndirdiğiniz modeli projenizin “Assets” klasörüne aktarın. Daha sonra, modelinizi sahnenize sürükleyip bırakın.
Karakter Modelinin Hazırlanması
Karakter modelinizin doğru şekilde ayarlandığından emin olun. Modelinizin bir Rigidbody bileşeni varsa, bunu devre dışı bırakın. Character Controller bileşeni Rigidbody ile birlikte kullanılmaz. Modelinizin ölçeği uygun olmalıdır. Çok büyük veya çok küçük bir model, kontrol problemlerine neden olabilir.
Character Controller Bileşenini Ekleme
Sahnenizdeki karakter modelini seçin ve Inspector penceresinden “Add Component” butonuna tıklayın. “Physics” kategorisinden “Character Controller” bileşenini seçin.
Character Controller bileşeninin ayarlarını inceleyin. “Radius” değeri karakterinizin yarıçapını, “Height” değeri ise yüksekliğini belirler. Bu değerleri karakterinizin boyutuna uygun olarak ayarlayın. “Center” değeri karakterinizin ağırlık merkezini belirler. Bu değer, karakterinizin hareketlerini etkiler.
C# Scriptini Yazma
Yeni bir C# script oluşturun ve bunu karakter modelinize ekleyin. Scriptinize aşağıdaki kodu ekleyin:
using UnityEngine;
public class CharacterControllerScript : MonoBehaviour
{
public float speed = 10f;
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);
}
}
Bu kod, karakterinizin WASD tuşlarıyla hareket etmesini sağlar. speed değişkeni hareket hızını kontrol eder. Time.deltaTime, kare hızından bağımsız bir hareket sağlar.
Kamera Kontrolü
Oyuncunun karakteri kontrol etmesi için bir kamera eklemek önemlidir. Sahneye bir kamera ekleyin ve karakterinizin arkasına yerleştirin. Kameranızın “Follow” script’i ile karakteri takip etmesini sağlayabilirsiniz. Bu script, kameranın karakteri izleyen bir mekanizma içermelidir.
Basit Kamera Takip Script’i
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public Transform target;
public float smoothSpeed = 0.125f;
public Vector3 offset;
private void FixedUpdate()
{
Vector3 desiredPosition = target.position + offset;
Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
transform.position = smoothedPosition;
}
}
Bu script, kameranın hedef konuma doğru yumuşak bir şekilde hareket etmesini sağlar. target değişkeni takip edilecek nesneyi, smoothSpeed değişkeni ise hareketin yumuşaklığını kontrol eder.
Geliştirmeler
Bu basit kontrolcüyü daha da geliştirebilirsiniz. Örneğin, zıplama, koşma, eğilme gibi ek hareketler ekleyebilirsiniz. Ayrıca, daha gelişmiş kamera kontrolleri ve animasyonlar ekleyebilirsiniz.
Sonuç
Bu eğitimde, Unity’de basit bir karakter kontrolcüsü oluşturmayı öğrendiniz. Bu, oyun geliştirmede önemli bir adımdır ve daha karmaşık oyun mekanikleri oluşturmak için bir temel oluşturur. Umarım bu eğitim size yardımcı olmuştur!




