- Home /
Sprite-button being pressed when not even pointed
I've made sprite-button with OnMouseUpAsButton() and all that stuff that calls method on menu object that draws menu with OnGUI() methods. And it works Ok except one problem: when I press GUI-button that closes menu (sets "opened" flag to false stopping menu drawing) the sprite-button is being pressed again opening it. I've checked everything: I'm absolutely sure that sprite-button's OnMouseUpAsButton() is being called again even it is not pressed. Any ideas?
Ok, here are some strings:
public class StoreButton : MonoBehaviour {
void OnMouseUpAsButton()
{
GameObject.Find ("Shop").SendMessage("Open", gameObject);
}
}
And that's a part of menu code:
public class Shop : MonoBehaviour {
private bool opened = false;
void OnGUI()
{
if (opened == true) {
GUI.Box (new Rect (x, y, 650, 650), "", "Box");
toolbarInt = GUI.Toolbar (new Rect (x + 7, y + 12, 636, 41), toolbarInt, toolbarStrings, "button");
switch (toolbarInt) {
case 0: break;
case 1: break;
case 2: break;
case 3: break;
}
if (GUI.Button (new Rect (x + 315, y + 557, 157, 66), "Продолжить", "continue"))
Close ();
}
}
void Open(GameObject caller)
{
opened = true;
}
void Close()
{
opened = false;
}
}
What part of your code calls On$$anonymous$$ouseUpAsButton? Also if there is only one Shop object in your scenes, why not cache the reference to it ins$$anonymous$$d of gameobject.find and sendmessage. Once you have the object, you can call Open directly on it through it's dot operator...
@Landern Ok, so let's start from the beginning...
There is a sprite with Collider2D that has this On$$anonymous$$ouseUpAsButton() code. It calls Open() method and it is insignificant how it makes it, but if you want I will make it other way.
I've tried to make prefab for this GUI menu object with fullscreen-collider, so the buttons under it can not me pressed. Did not worked. The button opening menu still being pressed as I close menu. Also I've noticed that sprite button sometimes is being pressed even if I click anywhere else on the GUI-menu.
Answer by incorrect · Jul 27, 2014 at 09:06 AM
So it is some sort of Unity bug with GUI. Using nGUI can help.
Your answer
![](https://koobas.hobune.stream/wayback/20220613154027im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Power Bar Collision 1 Answer
Detecting top most UI element using Collider2D 0 Answers
click on GUI button goes through to a collider... 0 Answers
[4.6 GUI] Displaying my pause menu when ESC is pressed 2 Answers
GUI 2D Bounding Box 1 Answer