Сценарій C# для створення магніту Rigidbody в Unity

Нижче наведено сценарій, який генерує magnet поведінку по відношенню до твердих тіл у Unity:

Sharp Coder Відеоплеєр

Кроки

  • Створіть новий сценарій, назвіть його SC_RigidbodyMagnet і вставте в нього наведений нижче код:

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);
            }
        }
    }
}

  • Створіть новий GameObject і призначте сценарій SC_RigidbodyMagnet для нього
  • Додайте Sphere Collider до новоствореного об’єкта, позначте його як Тригер, а потім збільште його радіус
  • Створіть пару кубів і додайте до них компонент Rigidbody

Натисніть Play, потім перемістіть об’єкт за допомогою сценарію SC_RigidbodyMagnet над твердими тілами, зверніть увагу на те, як тверді тіла втягуються.

Рекомендовані статті
Робота з компонентом Rigidbody Unity
Створення гоночної гри на основі фізики в Unity
Створення симуляції прапора в Unity
Створення ракетної установки в Unity
Впровадження механіки майнінгу в Unity Game
Впровадження фізики в ігри, створені в Unity
Створіть Tornado Physics в Unity