Unity için Helikopter Kontrolörü

Unity'de helikopter oyunu oluşturmak, oyun geliştiricileri için eğlenceli bir proje olabilir. Bu eğitimde Unity ve C# kullanarak basit bir helikopter oyunu oluşturma sürecinde size rehberlik edeceğim. Helikopterin hareketinin, kontrollerinin ve temel fiziğinin nasıl kurulacağını ele alacağız.

Adım 1: Projeyi Kurma

  • Unity'i açın ve yeni bir 3D proje oluşturun.
  • Proje ayarlarınızı gerektiği gibi yapın (örn. adlandırma, konum).
  • Helikopter modelleri, arazi ve gökyüzü kutuları gibi kullanacağınız varlıkları içe aktarın.

Adım 2: Helicopter GameObject'i Oluşturma

  • Yeni bir boş GameObject oluşturun ('GameObject -> Boş Oluştur').
  • Netlik sağlamak için GameObject'i "Helicopter" olarak yeniden adlandırın.
  • Bir helikopterin 3 boyutlu modelini GameObject'e sahneye sürükleyerek ekleyin.

Adım 3: Sert Cisim Bileşeni Ekleme

  • Helikopter GameObject'i seçin.
  • Denetçi penceresinde "Add Component" öğesine tıklayın.
  • "Rigidbody"'u arayın ve Rigidbody bileşenini helikoptere ekleyin.
  • Rigidbody ayarlarını helikopter modelinizin ağırlık ve fizik özelliklerine uyacak şekilde ayarlayın.

Adım 4: Helikopter Hareketi Komut Dosyasını Yazma

  • Şimdi helikopterin hareketini idare edecek bir C# betiği oluşturacağız.

'HelicopterController.cs'

using UnityEngine;

public class HelicopterController : MonoBehaviour
{
    public float maxSpeed = 10f; // Maximum speed of the helicopter
    public float maxRotationSpeed = 5f; // Maximum rotation speed of the helicopter
    public float acceleration = 2f; // Acceleration factor for speed
    public float rotationAcceleration = 1f; // Acceleration factor for rotation speed
    public Transform mainRotor; // Drag the main rotor GameObject here in the Inspector
    public Transform tailRotor; // Drag the tail rotor GameObject here in the Inspector

    private Rigidbody rb;
    private float currentSpeed = 0f;
    private float currentRotationSpeed = 0f;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        // Get user input for movement
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        // Calculate movement direction
        Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical);

        // Apply movement to the helicopter
        rb.AddRelativeForce(movement * acceleration);

        // Calculate new speed based on acceleration
        currentSpeed = Mathf.Clamp(currentSpeed + acceleration * Time.deltaTime, 0f, maxSpeed);

        // Get user input for rotation
        float rotationInput = Input.GetAxis("Rotation");

        // Calculate rotation
        Quaternion rotation = Quaternion.Euler(0f, rotationInput * maxRotationSpeed, 0f);

        // Apply rotation to the helicopter
        rb.MoveRotation(rb.rotation * rotation);

        // Rotate main rotor
        mainRotor.Rotate(Vector3.up * currentSpeed * Time.deltaTime * 100f);

        // Rotate tail rotor
        tailRotor.Rotate(Vector3.right * currentSpeed * Time.deltaTime * 500f);

        // Calculate new rotation speed based on acceleration
        currentRotationSpeed = Mathf.Clamp(currentRotationSpeed + rotationAcceleration * Time.deltaTime, 0f, maxRotationSpeed);
    }
}

Adım 5: Komut Dosyasını Ekleme

  • Unity projenizde yeni bir C# betiği oluşturun.
  • Yukarıda verilen kodu kopyalayıp betiğe yapıştırın.
  • Komut dosyasını Inspector penceresindeki Helicopter GameObject'e ekleyin.

Adım 6: Girişi Yapılandırma

  • 'Edit -> Project Settings -> Input Manager''ye gidin.
  • Yatay, Dikey ve Döndürme için giriş eksenlerini ayarlayın. Giriş için tuşları veya joystick eksenlerini kullanabilirsiniz.

Adım 7: Test Etme

  • Helikopter oyununuzu test etmek için Unity Düzenleyicide Oynat'a basın.
  • Helikopterin hareketini ve dönüşünü kontrol etmek için yapılandırılmış giriş tuşlarını kullanın.
  • Helikopterin davranışına ince ayar yapmak için komut dosyasındaki 'maxSpeed', 'maxRotationSpeed', 'acceleration' ve 'rotationAcceleration' değişkenlerini ayarlayın.

Çözüm

Unity'de temel bir helikopter oyunu yarattınız. Buradan engeller, arazi, düşmanlar ve daha gelişmiş özellikler ekleyerek oyunu genişletebilirsiniz.

Önerilen Makaleler
Unity için Uçak Kontrol Cihazı
Unity'de Uzay Gemisi Kontrolörü
Unity için RTS ve MOBA Player Controller
Unity için Araç Kontrol Cihazı
Unity için Oyuncu 3D ve 2D Duvardan Atlama Eğitimi
Birlik İçin Diyalog Sistemi
Unity için El Feneri Eğitimi