• 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
Question by Stavros-Dimou · Feb 23, 2017 at 02:20 AM · c#inspectoraudiosource

I have assigned it, but I get an error of Unassigned Reference Exception!

I have a GameObject with a script and an Audio Source. The Audio Source is assigned to the variable of the script. While testing the game in Play mode though, the sound doesn't work, and I get an Unassigned Reference Exception Error!

Error Image

I tried assigning the audioPlayer variable both by dragging and dropping the Audio Source component in the Inspector, and using the GetComponent() method. None worked.

Now why is this happening ?

Edit: Here is some more info:

I used to initiate the Audio Source variable with a call to GetComponent() in the Start() function of the script, and the call to the source's Play() function would take play whenever the character would press the attack button.

And although in the beginning it was working, something happened and then it wouldn't. But I tried this: Using the GetComponent() in the function that is called when the player hits the attack button. This way the sound plays! Although its play is delayed because it has to get the component the moment it needs to play the sound.

I tried

error.png (5.1 kB)
Comment

People who like this

0 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 Adam-Mechtley · Feb 23, 2017 at 07:44 AM 0
Share

Can you share the stack trace for this error message?

1 Reply

  • Sort: 
avatar image

Answer by AMU4u · Feb 23, 2017 at 02:54 AM

 [RequireComponent(typeof(AudioSource))]  
 
 
 void SomeClass : MonoBehaviour
 {
 
 AudioClip attackSound; 
 
 void Start()
 {
 
 attackSound = GetComponent<AudioSource>().clip;
 
 
 }
 
 

I retrieve the actual clip in this situation so you can load it from Resources or prefabs or change it dynamically right from the go! Be sure to remove the script from the GameObject and put it back on or this WON'T work for some dumb reason.

Comment

People who like this

0 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 Stavros-Dimou · Feb 23, 2017 at 03:40 AM 0
Share

I've done that, and it doesn't disappear. If I tick "Play on Awake", the sound does play on awake. But otherwise I get this error. :/

avatar image AMU4u Stavros-Dimou · Feb 25, 2017 at 04:12 PM 0
Share

You solved your own issue already, you just don't know it yet!

In your start function, that is when you want to do GetComponent<>.

Reading your issue again, I would take it OUT of the variable and make it just a component of the GameObject. An easy way to do this is [RequiredComponent(typeof(whatever))] and be sure to drag and drop the script onto the game object again to get it to automatically add the audio source to the script.

 [RequiredComponent(typeof(audiosource))]
 void SomeClass : mono {
 
 Audiosource attackSound;
 
 
 
 void Start(){
 
 attacksound = getcomponent<audiosource>();
 
 attacksound.wav = whatever
 
 }
 
 
 


^ this is psuedo code but basically should work flawlessly.

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta by June 9. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

317 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 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 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 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 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 to receive gameobject in property drawer? (interface in inspector workaround) 0 Answers

playing multiple sound on gameobject 1 Answer

Setting value in inspector does not update script. 0 Answers

Apply custom Inspector to List of Elements 0 Answers

Help to play music whenever the character enters a GameObject... 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