Oyun Kütüphanesi

Animator ile Hareket Animasyonu

Animasyon Bağlantıları Unity C# 2
AnimatorileHareketAnimasyonu .cs
C#
using UnityEngine;

public class PlayerAnimator : MonoBehaviour
{
    [Header("Bağlantılar")]
    public Animator animator;

    [Header("Eşikler")]
    public float walkThreshold = 0.1f;
    public float sprintThreshold = 7f;

    private CharacterController controller;

    // Animator parametre isimleri (Animator Controller ile eşleşmeli)
    private static readonly int SpeedParam = Animator.StringToHash("Speed");
    private static readonly int IsGroundedParam = Animator.StringToHash("IsGrounded");
    private static readonly int IsJumpingParam = Animator.StringToHash("IsJumping");

    void Start()
    {
        controller = GetComponent<CharacterController>();
        if (animator == null)
            animator = GetComponentInChildren<Animator>();
    }

    void Update()
    {
        // Yatay hızı hesapla
        Vector3 horizontalVelocity = new Vector3(
            controller.velocity.x, 0, controller.velocity.z
        );
        float currentSpeed = horizontalVelocity.magnitude;

        // Animator parametrelerini güncelle
        animator.SetFloat(SpeedParam, currentSpeed, 0.1f, Time.deltaTime);
        animator.SetBool(IsGroundedParam, controller.isGrounded);
        animator.SetBool(IsJumpingParam, !controller.isGrounded && controller.velocity.y > 0);
    }
}

Açıklama

WASD ve hız değerlerine göre Animator parametrelerini güncelleyen, koşma/yürüme/idle animasyonlarını otomatik geçiş yapan sistem.

Etiketler

Animator Animasyon WASD Blend Tree

Nasıl Kullanılır?

1. Animator Controller'da 'Speed' (float), 'IsGrounded' (bool), 'IsJumping' (bool) parametreleri oluştur.

2. Blend Tree ile Idle (0), Walk (1-6), Sprint (7+) animasyonlarını bağla.

3. Bu scripti Player'a ekle, Animator alanını doldur.

4. StringToHash ile string karşılaştırması yerine int kullanarak performans optimizasyonu sağlanır.

Unity 2022+ ve Unity 6 ile uyumludur.

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