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 MickM · Sep 24, 2012 at 10:06 PM · guiskinstyle

GUI.skin persisting through other OnGUI calls

Gday all,

I have made a GUI skin for a game I am working on and I have run into an issue. I have several scripts that call OnGUI so ideally I would like one initial script to set up the GUI for the whole game.

This worked initially when I was setting it like:

 GUI.skin.button.something? = somevariable;

(I cant remember the aspect after .button that I would set...) this would set the normal button texture to the texture I assigned to somevariable and it would persist through the whole game. The issue was on mouse over, the buttons would revert to the unity default.

I have since made a separate GUI skin and use the following script:

 #pragma strict
 
 var cursorImage : Texture;
 var standardSkin : GUISkin;
 
 function Start () {
     DontDestroyOnLoad (transform.gameObject);
     Screen.showCursor = false;
 
 }
 
 function Update () {
 
 }
 
 function OnGUI(){
 
     GUI.skin = standardSkin;    
     
     var mousePos : Vector3 = Input.mousePosition;
     var pos : Rect = Rect(mousePos.x,Screen.height - mousePos.y,40,40);
     GUI.Label(pos,cursorImage);
     
 }

This now doesnt work and to get the skin applied I have to apply it to each individual script OnGUI. When it is applied to individual GUI scripts it works great though! Does anyone know how to fix this? Assistance much appreciated!

Comment
Add comment · Show 1
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 Loius · Sep 25, 2012 at 12:24 AM 0
Share

I don't know a solution to this, but I highly recommend only having one master OnGUI function - let that function call out to other functions as necessary. That way you don't have as much overhead with OnGUI calls, and there should be less worry about order of operation and all that. $$anonymous$$y two cents. :)

1 Reply

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

Answer by Eric5h5 · Sep 25, 2012 at 12:50 AM

Yes, you have to apply it to each OnGUI function; it's not something that needs to be fixed, that's the way it works. I'd recommend getting the skin from a central location (using a singleton or some other method), instead of having it on each script.

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

11 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

Related Questions

BUG: GUISkin not updating in real-time when using name reference. 1 Answer

How to make a GUI that isnt alpha transparent? 1 Answer

Simple GUI Question 1 Answer

Problems controlling the GUI skin / style 2 Answers

Unity Preferences' Large Heading Font 2 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