Skrip C# untuk Membuat Magnet Benda Kaku di Unity

Di bawah ini adalah skrip yang menghasilkan perilaku seperti magnet terhadap Rigidbodies di Unity:

Sharp Coder Pemutar video

Langkah

  • Buat skrip baru, beri nama SC_RigidbodyMagnet lalu tempel kode di bawah ini di dalamnya:

SC_RigidbodyMagnet.cs

using System.Collections.Generic;
using UnityEngine;

public class SC_RigidbodyMagnet : MonoBehaviour
{
    public float magnetForce = 100;

    List<Rigidbody> caughtRigidbodies = new List<Rigidbody>();

    void FixedUpdate()
    {
        for (int i = 0; i < caughtRigidbodies.Count; i++)
        {
            caughtRigidbodies[i].velocity = (transform.position - (caughtRigidbodies[i].transform.position + caughtRigidbodies[i].centerOfMass)) * magnetForce * Time.deltaTime;
        }
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.GetComponent<Rigidbody>())
        {
            Rigidbody r = other.GetComponent<Rigidbody>();

            if(!caughtRigidbodies.Contains(r))
            {
                //Add Rigidbody
                caughtRigidbodies.Add(r);
            }
        }
    }

    void OnTriggerExit(Collider other)
    {
        if (other.GetComponent<Rigidbody>())
        {
            Rigidbody r = other.GetComponent<Rigidbody>();

            if (caughtRigidbodies.Contains(r))
            {
                //Remove Rigidbody
                caughtRigidbodies.Remove(r);
            }
        }
    }
}

  • Buat GameObject baru dan assign skrip SC_RigidbodyMagnet ke dalamnya
  • Tambahkan Sphere Collider ke objek yang baru dibuat, tandai sebagai Trigger lalu tingkatkan radiusnya
  • Buat beberapa Kubus dan tambahkan komponen Rigidbody ke dalamnya

Tekan Play lalu pindahkan Object dengan script SC_RigidbodyMagnet ke atas Rigidbodies, perhatikan bagaimana Rigidbodies ditarik masuk.

Artikel yang Disarankan
Bekerja dengan Komponen Rigidbody Unity
Membuat Game Balapan Berbasis Fisika di Unity
Menerapkan Mekanika Penambangan di Game Unity
Membuat Peluncur Roket di Unity
Penerapan Fisika pada Game Buatan Unity
Menambahkan Fisika Bola Memantul di Unity
Menerapkan Grappling Hook 2D di Unity