- Home /
destroy object with gui box on collision
so im trying to make it when i reach an object a gui box will show up and ask to see if they want the object destroyed so far i can only get it to pop up at the beginning and not when i reach the object.
heres what i have so far
function OnGUI()
{
GUI.Box(Rect(100,100,300,100),"Destroy Object?");
if(GUI.Button(Rect (100,150,100,25),"Yes"))
{
Destroy (gameObject);
}
if(GUI.Button(Rect(300,150,100,25),"No"))
{
enabled = false;
}
}
Answer by antx · Nov 03, 2011 at 10:12 AM
What do you mean with "when I reach an object"? When you click on it, or when you move close to it?
The object would need a collider (physics) component.
check out for collision: http://unity3d.com/support/documentation/ScriptReference/Collider.OnCollisionEnter.html
check out for clicking: http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.OnMouseDown.html
check out for "getting close to the object": http://unity3d.com/support/documentation/ScriptReference/Vector3.Distance.html
You should not draw your window when one of the things above are fired, but rather set a variable (like var drawMyWindow : boolean = flase;) to true then instead. Then draw your window only when this variable is true. Otherwise your window would be visible only for one frame. When the button is pressed and the window should go away again, then simply set the variable back to false.
Your answer
Follow this Question
Related Questions
Game Over GUI Question 2 Answers
How to refer to a collision between clones of the same prefab? C# 1 Answer
Can't call Destroy() on two objects 0 Answers
Destroy On Collision 4 Answers
How to make an object enter a gui screen upon a collision? 1 Answer