- Home /
How to set physics material to "none" via script?
Hi guys,
I have a ball with a physics material applied to it. When this ball comes into contact with an object that has a specific tag, I would like to disable the physics material.
How can I do this with Java Script? Pseudo code would be great.
I am not sure how to proceed. Thank you for your time and help.
IIRC, you can nullify the material safely:
collider.material = null;
Answer by zviaz · Apr 25, 2015 at 06:10 PM
I only script in C# myself but I might be able to provide some help.
In theory you need to use OnCollisionEnter because OnCollisionEnter is called when the collider/rigidbody of an object (your ball) has begun touching another rigidbody/collider (secondary object) Then after checking if your ball has hit another object set it's material to null.
function OnCollisionEnter(collision) {
gameObject.collider.material = null;
}
http://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html
Answer by Owen-Reynolds · Apr 25, 2015 at 11:28 PM
In a sense, you can't really "disable" a physics material. The best you can do is to swap in a "boring" one.
If the object is hit or slides against something, it's not like the system will say "no physics material? Guess I'll just freeze in place." If you have no PhyMat, it uses default values. So you may as well make up your own PhyMat, test some values, and use that instead of null. For example, the default PhyMat bounces very little. You can make one that won't bounce at all.
Your answer
Follow this Question
Related Questions
How could I make the texture on one object follow the rotation of another object? 0 Answers
How to 'flick' objects in a 2d game 1 Answer
How do I switch from Character player to Airship Vehicle using triggers? 0 Answers
What should I do? Disable the AI or have the AI simply be recylced and reused? 1 Answer
How do I "remove/disable" collision? 3 Answers