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
- "CharacterPushController" betiğini CharacterController bileşeniyle GameObject'e 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
- Oyununuzda istediğiniz davranışı elde etmek için 'ü 'pushPower''e ayarlayın.