- Home /
how to create the magnet similar to the real magnet ?
Hello Every One,
I need to create the magnet object with repulsion. I created the magnet it is pulling the object if that object is with in the radius. Normally Magnet has a two poles North and south now my object is sticking the north side if i rotate the object it does not sticking that side its changing but i want to do if i rotate the object as well as the object also rotate that corresponding side. Please help me to do this..
Here is the code:
var MagnetLayer : LayerMask;
var FieldPosition : Vector3;
var FieldRadius : float;
var FieldForce : float;
var rot : float = 2.0f;
function FixedUpdate ()
{
transform.Translate(Input.GetAxis("Horizontal") * Time.deltaTime * 5, 0.0f, Input.GetAxis("Vertical") * Time.deltaTime * 5);
if(Input.GetKey(KeyCode.R))
{
transform.Rotate(Vector3.up, Space.Self);
}
var colliders : Collider[];
var rigidbody : Rigidbody;
colliders = Physics.OverlapSphere (transform.position + FieldPosition, FieldRadius, MagnetLayer);
for(var collider in colliders)
{
rigidbody = collider.rigidbody;
if(rigidbody == null)
{
continue;
}
rigidbody.AddExplosionForce (FieldForce * -1, transform.position + FieldPosition, FieldRadius);
}
}
function OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere (transform.position, FieldRadius);
}
It's kinda funny that you managed to mark your text as code and you code as text...
That somehow tops the common mistake to forget to mark the code as code.
All you have to do is select all your code (mark it with your mouse or with your cursor keys while holding down shift) and then press the "101 010" button.
Well, your question isn't really clear. Do you talk about two magnet objects ? If so are their positions "fixed" in some way? otherwise, like real magnets, they would either attract each other until they bump together or they push each other out of the noticable effect radius.
If you talk about one magnet attracting a ferromagnetic material, the side (north / south) is irrelevant and the rotation of the magnet won't affect the rotation of the attracted object unless they are in contact. In this case it's more a mechanical problem and has not that much to do with forces between magnets
A bit clarification would be great. A clear statement what you have and what you want.
This is a duplicate question. The code is the same, just styled slightly differently.
To anyone reading, the other question can be found here:
http://answers.unity3d.com/questions/301717/can-anyone-let-me-out-of-this.html
Please delete the original question, if you don't plan on using it, and hit the "edit" button, from now on, rather than simply asking the same question, again, with slightly changed text.
I gave an answer on another duplicate here: http://answers.unity3d.com/questions/301634/how-to-create-magnetic-repulsion-.html
It would be great to merge all these questions.
Answer by sman_47o · Aug 14, 2012 at 05:58 PM
i would use two triggers one to represent the north pole one to represent the south pole. On entering the north pole trigger the object would be attracted and it would be repelled on entering the south pole trigger. (in order to have two colliders add two empty children to your magnet object and in each child add a collider named either north or south)
Your answer
Follow this Question
Related Questions
how to create Magnetic repulsion ? 0 Answers
Faux Gravity Prolem? #2 2 Answers
Hooking RigidBody.AddForce 0 Answers
Performance Question on Kinematic Rigidbodies 1 Answer
Same reaction with different number of objects colliding 2 Answers