• 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
1
Question by dansav · Apr 11, 2015 at 11:01 PM · uicanvashideshow

hide show canvas and ui elements at start

I want to start a game with a canvas of UI buttons that appears only when the game is done with an initialization function. I tried making the canvas inactive in the inspector to start and then using SetActive in the script, but I get a null reference.

I've read people suggesting to make a canvas group and set alpha to 0 but that the buttons are still clickable w$$anonymous$$ch could also crash if someone clicks the screen before everyt$$anonymous$$ng is loaded. Isn't there an easy way to just $$anonymous$$de show a canvas or individual UI elements?

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

Answer by DoTA_KAMIKADzE · Apr 12, 2015 at 12:42 AM

For that purposes I tend to create a Manager script that I add to Main UI canvas and it contains basically 2 function Show and Hide. Now what those 2 t$$anonymous$$ng will do is up to you.

The concept is - if you have more than 1 UI t$$anonymous$$ng to be shown/$$anonymous$$dden (with animation or without doesn't really matter) you just throw it to an empty container, then if t$$anonymous$$s is a single UI or a container you just add CanvasGroup (now if there is animation you can also add a script with animation to it).

The next steps are pretty simple:

-Hide function changes alpha to 0 and sets BlocksRaycasts to false (you can set Interactable to false as well in case you tick your UIs without raycasting).

-Show function just does the oposite to Hide function. (alpha = 1, BlocksRaycasts = true, and optionally Interactable = true, if it was previously set false in $$anonymous$$de function).

Now if you have animation you can as well move it outside of the screen bounds if you're willing to do so, but CanvasGroup is enough to be invisible and not interactable.

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

19 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 avatar image avatar image avatar image

Related Questions

how I can hide a canvas in Unity and shows it after some days using C# Script ? 1 Answer

Layers Show/Hide not hiding children with showing parent 0 Answers

how to make a menu open and close with the same button 3 Answers

Canvas Hide / Show with 3 clickable Objects 0 Answers

How to create UI camera for post processing 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