• 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 ChrisSch · Jul 28, 2013 at 04:48 PM · tagtagsmusictoggle

Object not surviving on load?

So here's the deal, I have a MenuOptions object with a GUI.Toggle button currently only toggling music on and off. What works is that it toggles the music on and off in the menu, but as soon as I press New Game or Continue and load another scene the toggle button is gone. And I've set the DontDestroyOnLoad(gameObject); in the MenuOptions script

What this script does is just has a toggle button, and accesses the MenuDJ and DJ objects and scripts which play music to control their volume. The Menu part works, but when it moves to the next scene that object doesn't exist anymore.

Also im getting errors cause it can't find DJ in the menu scene so id like it first to check if theres an object with that tag there before going on further. And for the menu object not to get destroyed when crossing to the next scene ofc. Sorry for such a messy question I'm kind of in a rush so I wanted to post the Q before I leave.

Here's the code:

 #pragma strict
 
 DontDestroyOnLoad (transform.gameObject);
 
 var muteToggle = false;
 var menuDJscript : MenuDJ;
 var djScript : DJ;
 var menuDJ : GameObject;
 var dj : GameObject;
 
 function Start()
 {
     menuDJscript = menuDJ.gameObject.FindWithTag("MenuDJ").GetComponent(MenuDJ);
     djScript = dj.gameObject.FindWithTag("DJ").GetComponent(DJ);
 }
 
 function OnGUI ()
 {
     muteToggle = GUI.Toggle (Rect (25, 25, 100, 30), muteToggle, "Mute Music");
         if(muteToggle == false)
         {
             menuDJscript.audio.volume = 1.0;
             djScript.audio.volume = 1.0;
             Debug.Log ("Music On");
         }
         if(muteToggle == true)
         {
             menuDJscript.audio.volume = 0.0;
             djScript.audio.volume = 0.0;
             Debug.Log ("Music Off");
         }
 }
Comment
Add comment · Show 3
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 Lo0NuhtiK · Jul 28, 2013 at 04:50 PM 1
Share

put the DontDestroy() stuff in Awake() ...

Awake() { DontDestroy(); }

avatar image ChrisSch · Jul 28, 2013 at 06:06 PM 0
Share

i tried, nothing different happened >.<

avatar image ChrisSch · Jul 28, 2013 at 06:42 PM 0
Share

Tried again but now it does work except it doesn't turn the music on or off after i change the scene.

I'm assu$$anonymous$$g is cause it doesn't look for the DJ tag again since it did only the first time in the main menu?

Is there a function that starts every time a level loads?

1 Reply

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

Answer by ChrisSch · Jul 28, 2013 at 07:23 PM

I rewrote part of it and now it works. Thank you for your time Lo0NuhtiK. :)

 #pragma strict
 
 var muteToggle = false;
 var menuDJscript : MenuDJ;
 var djScript : DJ;
 var menuDJ : GameObject;
 var dj : GameObject;
 
 function Awake()
 {
 DontDestroyOnLoad (gameObject);
 }
 
 function OnGUI ()
 {
     muteToggle = GUI.Toggle (Rect (25, 25, 100, 30), muteToggle, "Mute Music");
         if(muteToggle == false)
         {
             if (GameObject.FindWithTag("MenuDJ") != null)
             {
                 menuDJscript = menuDJ.gameObject.FindWithTag("MenuDJ").GetComponent(MenuDJ);
                 menuDJscript.audio.volume = 1.0;
             }
             if (GameObject.FindWithTag("DJ") != null)
             {
             djScript = dj.gameObject.FindWithTag("DJ").GetComponent(DJ);
             djScript.audio.volume = 1.0;
             }
         }
         if(muteToggle == true)
         {
             if (GameObject.FindWithTag("MenuDJ") != null)
             {
                 menuDJscript = menuDJ.gameObject.FindWithTag("MenuDJ").GetComponent(MenuDJ);
                 menuDJscript.audio.volume = 0.0;
             }
             if (GameObject.FindWithTag("DJ") != null)
             {
             djScript = dj.gameObject.FindWithTag("DJ").GetComponent(DJ);
             djScript.audio.volume = 0.0;
             }
         }
 }
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

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



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

Set reference to multiple gameobjects based on tag category / multiple tags? 2 Answers

How to move a gameobject when it lands on a tag, to another tag? 0 Answers

Tag mask dropdown like Layer mask 1 Answer

Match 3 game getting the colour of the match 1 Answer

Enable/Disable Object and Music? 1 Answer


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