Karakter Denetleyicisi Birlik İçinde Sert Cisimleri İtme Yeteneği Nasıl Eklenir

Bu eğitimde, Unity FPS Denetleyicisi komut dosyasını, karakterin sahne içindeki katı cisimleri itebilmesini sağlayacak şekilde geliştireceğiz (aşağıdaki komut dosyası, bağlı olduğu sürece herhangi bir denetleyiciyle çalışmalıdır) CharacterController bileşeni). Bu komut dosyası, oyuncuların nesnelerle ve dinamik ortamlarla etkileşime girmesine olanak tanıyarak oyununuza gerçekçi bir dokunuş katabilir.

1. Adım: Yeni Bir Komut Dosyası Oluşturun

  • Unity projenizde yeni bir C# betiği oluşturun. "CharacterPushController" gibi bir ad verebilirsiniz.

Adım 2: Sağlanan Komut Dosyasını Kopyalayın

  • Aşağıdaki kodu yeni oluşturulan betiğe kopyalayın. İtmenin gücünü kontrol etmek için 'pushPower' değişkenini ayarlayabilirsiniz. Ayrıca, oyununuzun mantığına göre itme kuvvetini uygulama koşullarını da özelleştirmek isteyebilirsiniz.

CharacterPushController.cs

using UnityEngine;

public class CharacterPushController : MonoBehaviour
{
    // Adjust this variable to control the strength of the push
    public float pushPower = 2.0f;

    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // No rigidbody or kinematic rigidbody
        if (body == null || body.isKinematic)
        {
            return;
        }

        // Avoid pushing objects below the character
        if (hit.moveDirection.y < -0.3)
        {
            return;
        }

        // Calculate push direction from move direction,
        // pushing only to the sides, not up and down
        Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // Apply the push
        body.velocity = pushDir * pushPower;
    }
}

3. Adım: Komut Dosyasını Ekleyin

Adım 4: Test edin

  • Sahneyi oynayın ve yeni oluşturulan senaryonun yardımıyla karakter kontrol cihazının katı cisimleri itme yeteneğini test edin.

Adım 5: Ayarlayın

Önerilen Makaleler
Unity'de Karakter Kontrolörüne Hareketli Platform Desteği Nasıl Eklenir?
Unity'de Mobil Dokunmatik Giriş Joystick'i
Unity için Helikopter Kontrolörü
Unity'de 2D Platformer Karakter Denetleyicisine Double Jump Desteği Ekleme
Unity'de Vinç Kontrolü Nasıl Yapılır
Unity için Oyuncu 3D ve 2D Duvardan Atlama Eğitimi
Birlik İçin Diyalog Sistemi