برنامج C# لإنشاء مغناطيس الجسم الصلب في الوحدة

يوجد أدناه البرنامج النصي الذي يُنشئ سلوكًا يشبه 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 إليه
  • قم بإضافة مصادم كروي إلى كائن تم إنشاؤه حديثًا، ثم قم بوضع علامة عليه كمشغل ثم قم بزيادة نصف قطره
  • قم بإنشاء زوجين من المكعبات وأضف إليهما مكون Rigidbody

اضغط على Play ثم قم بتحريك الكائن باستخدام البرنامج النصي SC_RigidbodyMagnet فوق الأجسام الصلبة، ولاحظ كيف يتم سحب الأجسام الصلبة إلى الداخل.

المقالات المقترحة
العمل مع مكون الجسم الصلب للوحدة
إنشاء محاكاة العلم في الوحدة
إضافة فيزياء الكرة المرتدة إلى الوحدة
تنفيذ ميكانيكا التعدين في لعبة الوحدة
كيفية اكتشاف الاصطدامات باستخدام الكود في الوحدة
إنشاء قاذفة صواريخ في الوحدة
تنفيذ الفيزياء في الألعاب المصنوعة في الوحدة