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 KungKras · Nov 28, 2014 at 08:43 PM · strangefade out

GUITexture fades in but not out.

Okay, this is so weird.

I want a GUITexture to fade in and out when ordered to, so I wrote this script and attached it to it. If fades in nicely, but it REFUSES to fade out properly. When debugging it seems like the alpha value of the colour REFUSES to decrease, either with Lerp or with just regular subtraction.

I've kept all my methods of fading commented out so you guys can see what I've already tried.

What the hell is going on?

public class GUITextureController : MonoBehaviour {

 private float alpha; 

 public bool isOn; 

 public bool isOff; 

 public float fadeSpeed; 



 // Use this for initialization
 void Start () {
     guiTexture.color = new Color(0.5f,0.5f,0.5f, 0);
 }
 
 // Update is called once per frame
 void Update () {
     if (isOn == true) {
         OnGUI ();    
         if(guiTexture.color.a >= 0.45f) {
             isOn = false;
             isOff = true;
             Debug.Log ("Switchar från på till av");
         }
     } 
     else if (isOff == true) {
                 OffGUI();
         if(guiTexture.color.a <= 0.05f){
             guiTexture.enabled = false;
             Debug.Log ("Fadade ut, stänger av");
         }
             }

 }

 public void TurnOn() {
     guiTexture.enabled = true;
     isOn = true;
     isOff = false;
 
 
 }

 void OnGUI()
 {
     //alpha = alpha + fadeSpeed;     //Mathf.Lerp(alpha, 0.5f, 0.4f * Time.deltaTime);
     //guiTexture.color = new Color(0.5f,0.5f,0.5f, alpha);
     guiTexture.color = Color.Lerp(guiTexture.color, Color.gray, fadeSpeed * Time.deltaTime);
 }
 void OffGUI() {
     Debug.Log ("OffGUI körs");
     guiTexture.color = Color.Lerp(guiTexture.color, Color.clear, fadeSpeed * Time.deltaTime);
     //alpha = Mathf.Lerp (alpha, 0, 0.1f * Time.deltaTime);
     // aplha = alpha - fadeSpeed;
     if (alpha <= 0) {
                     alpha = 0;
         }
             //guiTexture.color = new Color (0.5f, 0.5f, 0.5f, alpha);
     }

}

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
0
Best Answer

Answer by meat5000 · Nov 28, 2014 at 08:58 PM

You seem to have some misconceptions about using these GUI methods.

Firstly, you appear to be attempting to use two separate GUI systems in one script.

Secondly, if you wish to use OnGUI, including the function alone is enough to make it update to the screen and there is no need to call the function.

GUITextures are GUIElements which are the Legacy system (I like this one).

OnGUI is a later system and functions very differently.

Have a little search for them both separately then look again at your script.

Comment
Add comment · Show 2 · 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
avatar image KungKras · Nov 28, 2014 at 09:47 PM 0
Share

Oh, were those methods part of a different GUI class?

I thought I was defining them myself inside my class.

I changed the names to On() and Off () ins$$anonymous$$d of OnGUI() and OffGUI(). And now everything seems to work.

avatar image meat5000 ♦ · Feb 24, 2015 at 03:14 PM 0
Share

Glad to hear it.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Array Utility error while building project 1 Answer

Mysterious Image Appears when unlocking device. 1 Answer

Strange Flickering on Collision 2 Answers

Why are my collisions adding massive amounts of force? 2 Answers

Spotlight with cookie, black streaks when facing certain directions 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