• 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 /
  • Help Room /
avatar image
0
Question by soaring90 · Aug 19, 2016 at 09:17 AM · audioaudiosourceaudioclipscene-switchingreload

Don't reload the AudioSource when back to scene

Simple question but make me blur.

I have an audio source on let say "Main" scene, and I make it DontDestroyOnLoad, which make it could keep playing my audio even i going next scene, let say "Game" scene.

Problem is, when i get back from "Game" scene to "Main" scene, my audio will restart over but not continue playing as i expected. How should i actually script for this?

My current script :

void Awake() { if (instance != null && instance != this) { Destroy(this.gameObject); return; } else { instance = this; } DontDestroyOnLoad(this.gameObject); }

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

Answer by v01pe_ · Aug 23, 2016 at 09:13 AM

I guess the problem here is that when you load the scene again, this will never be the same as instance, because it's technically speaking a different object. Also the object that's kept loaded will not receive the Awake() call!

I would try it like this:

 static Object instance = null;
 
 void Awake()
 {
     if (instance != null)
     {
         Destroy (this.gameObject);
         return;
     }
     else
     {
         instance = this;
         DontDestroyOnLoad (this.gameObject);
     }
 }
 
 void OnDestroy()
 {
     if (instance == this)
     {
         instance = null;
     }
 }
Comment
Add comment · Show 5 · 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 soaring90 · Aug 24, 2016 at 02:14 AM 0
Share

I still get the same result, when get back to the $$anonymous$$ain scene, the music still start from very beginning but not continue as where it play.

avatar image v01pe_ soaring90 · Aug 24, 2016 at 08:22 AM 0
Share

I tried this quickly in a new project, and it worked as excepted! How do you play the AudioSource and is the script you wrote attached to the same object?

avatar image soaring90 v01pe_ · Aug 25, 2016 at 09:23 AM 0
Share

yes, this script i attach with the same AudioSource object.

 void Start()
     {
         mySource = GetComponent<AudioSource> ();
         instance = this;
     }

is this affect?

Show more comments

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

76 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 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 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 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

Could someone help me with adding Audio to this code? (Is for a 2D game platformer) 0 Answers

What causes weird cracking/popping sound when playing 3d sound 1 Answer

How to play only one sound at the same time ? 1 Answer

How to mute multi-able audioclips within a single audiosource? 0 Answers

UIButton not playing sound on click,UI Button not playing sound and blocking script 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges