Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by androids · Sep 24, 2013 at 04:36 PM · androidguibutton

GUI Button for Android

I'm building a game for Android devices and I use GUI Buttons. Now this is the Js I use for the GUI Buttons;

 var GuiButton : Texture2D;
 var GuiButtonRollover : Texture2D;
  
 private var correctedMousePosition : Vector2;
  
 function OnGUI ()
 {
     correctedMousePosition = Vector2 (Input.mousePosition.x, (Screen.height-Input.mousePosition.y) );
     if ( Rect(123,90,88,88).Contains(correctedMousePosition) )
     {
         GUI.DrawTexture( Rect(123,90,88,88) , GuiButtonRollover);
         if( Input.GetMouseButtonUp(0) )
         {
             Application.LoadLevel("Scene here");
         }
     }
     else
     {
         GUI.DrawTexture( Rect(123,90,88,88) , GuiButton);
     }
 }

Well this works perfect. But when I run the game on my Android Device and press on the GuiButton. The GuiButton changes it's texture into GuiButtonRollover and when I release my finger from the button. The GUIButton wouldn't change back into GuiButton.

Can someone help me please? This is a very important issue I have to fix.

Thanks in advance.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by clunk47 · Sep 24, 2013 at 05:38 PM

Try using Update() to determine whether your rect contains the mousePosition. Also try to define your Rect on Awake() or Start(), since it doesn't change in this case. I kind of rewrote this how I would go about doing it. I made a private variable to use inside of GUI.DrawTexture, it is determined which public texture will be drawn by mouseOver bool. Notice the ONLY thing I have in OnGUI() is the GUI code itself. This is because Update is called ONCE per frame, OnGUI is called TWICE per frame, which is part of your problem. Hope this helps.

 #pragma strict
 
 var GuiButton : Texture2D;
 var GuiButtonRollover : Texture2D;
 private var currentTexture : Texture2D;
 private var rect : Rect;
 private var mouse : Vector2;
 private var mouseOver : boolean;
 
 function Awake()
 {
     rect = new Rect(123, 90, 88, 88);
 }
 
 function Update()
 {
     mouse = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
     mouseOver = rect.Contains(mouse);
     if(mouseOver)
         currentTexture = GuiButtonRollover;
     else
         currentTexture = GuiButton;
     if(mouseOver && Input.GetMouseButtonUp(0))
     {
         Application.LoadLevel("Scene here");
         print("X");
     }
 }
 
 function OnGUI ()
 {    
     GUI.DrawTexture(rect, currentTexture);
 }
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

16 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

GUI button doesn't appear on Android 0 Answers

Button reaction time problem 1 Answer

Buttons remain in pressed state upon performing home interrupt 0 Answers

How can I change the proportion of the buttons to change the resolution of the GUI screen? 1 Answer

Android GUITexture Touch 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges