Oyun Kütüphanesi

Rigidbody ile WASD Hareket

Hareket Sistemleri Unity C# 2
RigidbodyileWASDHareket .cs
C#
using UnityEngine;

public class RigidbodyMovement : MonoBehaviour
{
    [Header("Hareket Ayarları")]
    public float moveSpeed = 5f;

    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        // Rotasyonu kilitle (yuvarlanmasın)
        rb.freezeRotation = true;
    }

    void FixedUpdate()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        Vector3 move = transform.right * x + transform.forward * z;
        Vector3 targetVelocity = move * moveSpeed;

        // Sadece yatay hızı değiştir, dikey (yerçekimi) korunsun
        rb.linearVelocity = new Vector3(
            targetVelocity.x,
            rb.linearVelocity.y,
            targetVelocity.z
        );
    }
}

Açıklama

Fizik tabanlı Rigidbody bileşeni kullanarak hareket. Çarpışmalar fizik motorundan geçtiği için daha gerçekçi etkileşimler sağlar.

Etiketler

WASD Rigidbody Fizik Hareket

Nasıl Kullanılır?

1. GameObject'e 'Rigidbody' component ekle.

2. Rigidbody > Constraints > Freeze Rotation X, Y, Z işaretle.

3. Bu scripti aynı GameObject'e ekle.

4. FixedUpdate içinde çalışır — fizik ile uyumludur.

Unity 2022+ ve Unity 6 ile uyumludur.

MonoBehaviour tabanlı scriptleri Assets klasörüne .cs olarak kaydedin.