Tüm Rehberler

Top Zıplat — Rigidbody Fizik Oyunu

Başlangıç ⏱ 75 dk
BÖLÜM 6 / 8

Tuzak Platformu — Dönen Silindir Tuzaklar

AddTorque ile dönen ve topa temas edince onu fırlatan silindir tuzaklar ekliyoruz.

Unity Editör Adımları

'+' > 3D Object > Cylinder → 'SpinTrap'
Add Rigidbody → isKinematic = TRUE (kuvvetlerden etkilenmesin)
Assets > C# Script → 'SpinTrap'
Birkaç farklı eksen ve hızda yerleştir
csharp
using UnityEngine;

public class SpinTrap : MonoBehaviour
{
    public float spinSpeed = 180f; // Derece/saniye
    public Vector3 spinAxis = Vector3.up;
    public float knockbackForce = 12f;

    void Update()
    {
        transform.Rotate(spinAxis * spinSpeed * Time.deltaTime);
    }

    void OnCollisionEnter(Collision collision)
    {
        Rigidbody rb = collision.rigidbody;
        if (rb == null) return;

        // Çarpışma noktasından uzaklaştır
        Vector3 hitDir = (collision.transform.position - transform.position).normalized;
        hitDir.y = 0.5f; // Hafif yukarı bileşen
        rb.AddForce(hitDir.normalized * knockbackForce, ForceMode.Impulse);
    }
}

isKinematic=true Rigidbody dış kuvvetleri yok sayar ama OnCollision event'leri hala tetiklenir.

Önceki Bölüm Sonraki Bölüm