Oyun Kütüphanesi

Rigidbody ile Magnetik Çekim Alanı

Fizik & Zıplama Unity C# 2
RigidbodyileMagnetikÇekimAlanı .cs
C#
using UnityEngine;
public class MagneticField : MonoBehaviour
{
    public float radius = 8f;
    public float strength = 10f;
    public bool attract = true; // false = itmek

    void FixedUpdate()
    {
        Collider[] cols = Physics.OverlapSphere(transform.position, radius);
        foreach (var col in cols)
        {
            Rigidbody rb = col.GetComponent<Rigidbody>();
            if (rb == null || rb.transform == transform) continue;

            Vector3 dir = transform.position - rb.position;
            float dist = dir.magnitude;
            float forceMag = strength / (dist * dist + 0.1f); // Tersine kare yasası

            Vector3 force = dir.normalized * forceMag;
            rb.AddForce(attract ? force : -force);
        }
    }

    void OnDrawGizmosSelected()
    {
        Gizmos.color = attract ? Color.cyan : Color.red;
        Gizmos.DrawWireSphere(transform.position, radius);
    }
}

Açıklama

Belirli bir yarıçap içindeki tüm Rigidbody'leri kendine çeken veya iten manyetik alan efekti.

Etiketler

Rigidbody Manyetik Çekim Attract Physics

Nasıl Kullanılır?

1. Boş bir GameObject'e ekle.

2. attract=true = çeker, false = iter.

3. strength ile kuvvet şiddetini ayarla.

4. Editor'da alan görünür (Scene view'da seçince).

5. Kural: mesafe azaldıkça kuvvet üstel artar (gerçekçi fizik).

Unity 2022+ ve Unity 6 ile uyumludur.

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