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 Solruk · Nov 26, 2014 at 01:46 AM · instantiateprefab

Instantiating a prefab through C# script

I am making a background music script that checks if a specific prefab is in a scene. If the prefab does not exist, instantiate that prefab which the audio source is attached to. All my code works besides actually instantiating the prefab. Here is my code

 private GameObject music;
     
     void Start () {
         music = GameObject.Find("GameMusic");
         Debug.Log("Started");
         Debug.Log (music);
         
         if (music == null) {
             Debug.Log("GameObject GameMusic found");
             Instantiate(music);
 
         }
     }

I keep getting an error saying "ArgumentException: The thing you want to instantiate is null." Any ideas?

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 Landern · Nov 26, 2014 at 01:46 AM 0
Share
  private GameObject music;
      
      void Start () {
          music = GameObject.Find("Game$$anonymous$$usic");
          Debug.Log("Started");
          Debug.Log (music);
          
          if (music == null) {
              Debug.Log("GameObject Game$$anonymous$$usic found");
              Instantiate(music);
  
          }
      }

Wait... your if statement reads like:

if the GameObject variable called music is null, then invoke this debug.log static method followed by instantiate an object that i just confirmed was null.

So, music was null, you tried to instantiate a null object, that doesn't work and the output was what it should be. $$anonymous$$usic should NOT be null and then instantiate

 if (music != null) {
   // blah blah
 }
avatar image Solruk · Nov 26, 2014 at 01:49 AM 0
Share

Then how do I insert the prefab without it being in there first. I read on the scripting API that instantiate was a cloning method but it noted that the gameobject didnt have to previously exist. If your telling me I am using the wrong method or I need a better way around this, please tell me what I can do to fix it and not just tell me I'm wrong.

avatar image Landern · Nov 26, 2014 at 01:54 AM 0
Share

Seeing that music is a private variable means that you don't assign it in the inspector.

Here's the skinny. Quick and dirty.

Public variable of type GameObject.

 public GameObject music;

You can keep the stuff in the start, but you need to assign this script to an object(camera, empty gameobject, whatever). Then you will be able to drag from the assets to the property now called $$anonymous$$usic on the object in the inspector a GameObject. This will link the two together. Now when Start is called music will not be null on the Game Object the script resides.

If it's actually not a GameObject and really an AudioClip, then change the type to match the asset requirement.

0 Replies

· Add your reply
  • Sort: 

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Get unity to recognize prefab in C# 2 Answers

Instantiated object rotation abruptly. 0 Answers

Instantiate prefab (button, texture) with attached script 1 Answer

instantiate problem with assigned variable 1 Answer

The variable othertransform of Prefab has not been assigned 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