एकता में एक रिजिडबॉडी चुंबक बनाने के लिए सी# स्क्रिप्ट
नीचे वह स्क्रिप्ट है जो Unity में रिगिडबॉडीज के प्रति चुंबक जैसा व्यवहार उत्पन्न करती है:
कदम
- एक नई स्क्रिप्ट बनाएं, इसे 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);
}
}
}
}
- एक नया गेमऑब्जेक्ट बनाएं और उसे SC_RigidbodyMagnet स्क्रिप्ट असाइन करें
- नव निर्मित ऑब्जेक्ट में एक स्फीयर कोलाइडर जोड़ें, इसे ट्रिगर के रूप में चिह्नित करें और फिर इसकी त्रिज्या बढ़ाएं
- कुछ क्यूब बनाएं और उनमें एक रिगिडबॉडी घटक जोड़ें
Play दबाएँ, फिर ऑब्जेक्ट को SC_RigidbodyMagnet स्क्रिप्ट के साथ Rigidbodies पर ले जाएँ, ध्यान दें कि Rigidbodies को कैसे अंदर खींचा जा रहा है।