- Home /
How to make objects invisible on collision?
Original title: can someone make a script on it in java
i want to know the script which do this thing
if body1 touches body2 than body1.visible=false
I've changed the title to be useful for someone looking for a solution to the same problem and added the relevant tags. I won't write the code for you but in the answer, you're getting everything you need to write the code for yourself, which ... btw ... will be much more rewarding than copy'n'pasting someone else's code ;-)
Answer by jashan · Jul 20, 2010 at 03:58 PM
A) There is no Java in Unity. There is, however, JavaScript also referred to as UnityScript. JavaScript has nothing to do with Java ;-)
B) What you are looking for is this:
- MonoBehaviour.OnCollisionEnter or MonoBehaviour.OnTriggerEnter, the documentation includes nice examples to get you started
- One way to make an object invisible is using renderer (a property of any MonoBehaviour) and enabled (also a property of any MonoBehaviour - but this, in particular, is enabled of Renderer which has the semantics that when it's switched to false, it makes the object invisible)
- And, of course, you need a basic understanding of Physics; watch out: you're probably wanting to use triggers. In particular, you'll want to understand the Collision action matrix (it's one section in that part of the documentation)
C) If you need to learn programming, you could try one of the tutorials, e.g. start with this answer: How to get started learning JavaScript or UnityScript?
As I've written in my answer, under B - you can user render.enabled = false to make the object invisible. The renderer makes the object visible - and when the renderer is disabled, the object is invisible. $$anonymous$$ight not be totally intuitive if you're just starting but makes a lot of sense if you have a bit of a deeper understanding of how Unity uses game objects and components.
Regarding the "basics of java": There is no Java in Unity. If you know Java (the program$$anonymous$$g language and framework developed by Sun $$anonymous$$icrosystems), I recommend learning C# because it's very similar to Java.
Great ... if you feel the answer is valuable and correct, you may consider "accepting" it by clicking on the little "check" icon next to the "score" (which currently says "3"). That will help people see that the question has an accepted answer.
Answer by Panamamigo · Jul 20, 2010 at 04:28 PM
why don't you just set the renderer.enabled= false;? That will make Unity forget about rendering that object and it will be invisible, un-interactive, un-responisve, etc. It'll be like it never existed until you reset the renderer.enabled to true again. So write the code, but if what I illustrated is what you are looking for then you at least have a hint of where to start.
It'll still be interactive, responsive, and whatever else. It just stops rendering it is all, the collider and scripts will still work the same
Your answer
![](https://koobas.hobune.stream/wayback/20220613065245im_/https://answers.unity.com/themes/thub/images/avi.jpg)