• 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 Generalkidd · Mar 13, 2017 at 06:19 PM · getcomponent

GetComponent Null Reference on instantiated objects

In my app, I'm instantiating several GameObjects and prefabs on the fly. After they are created, I use AddComponent<>() to add some scripts to the GameObjects. All of this works perfectly so far and I know for a fact the scripts were successfully attached to the GameObjects. However, when I try to access the scripts later from other scripts, using GetComponent, I keep getting Null Reference Exceptions. I only get the exception when I try to access the scripts from newly instantiated objects, but I can access the scripts of objects already placed into the scene via the editor just fine. Here's the code I use to access the scripts:

 GameObject temp;
 temp = GameObject.Find("New Game Object");
                 temp.GetComponent<GestureManipulator>().isRotation = true;

That works for any object included in the scene at launch, but fails on new objects. I can confirm that GameObject.Find does indeed return the correct game object hence why AddComponent would work. I just don't understand why GetComponent won't work. I've made sure all the variables and classes are public too.

Comment
Add comment · Show 2
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 Commoble · Mar 13, 2017 at 06:53 PM 0
Share

Are you sure that GetComponent is being called after AddComponent? If these are both being done on initialization, the easiest way to ensure this happens is to initialize the object and do AddComponent in an Awake function, and find the object and do GetComponent in a Start function.

If the object is being instantiated in Awake or Start, and you're finding the instantiated object after Awake and Start, then either something else in another part of your code is wrong, or one of the assumptions you're making is wrong.

avatar image Generalkidd Commoble · Mar 13, 2017 at 06:59 PM 0
Share

Yes I'm very positive GetComponent is being called after AddComponent. So what my code is supposed to do is use Gesture$$anonymous$$anipulator to move objects around. I can confirm Gesture$$anonymous$$anipulator has been added to the object because I am indeed able to move the object around. But even long after I've confirmed the Gesture$$anonymous$$anipulator script has been added and is indeed functioning, the moment a GetComponent call is made to that script, it just returns the null reference. And in debugging on visual studio, the FindObject definitely works too as I can see the temp GameObject was set to the correct gameobject.

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.

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

95 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

Related Questions

Javascript GetComponent not work! 0 Answers

"NullReferenceException: Object reference not set to an instance of an object " only for one component 2 Answers

Disable function in another script 1 Answer

Tag control 0 Answers

How can i get component as an abstract base class? 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