• 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 Attapi0 · May 15, 2014 at 07:11 PM · getcomponenttypecasting

How do I use GetComponent completely correct in this instance?

Okay so, I have a variable called Selector that holds the gameObject.GetComponent("Selector"). Take a look at my code and I'll tell you the issue afterwards.

  #pragma strict
     //variables
     var Selector : Selector;
     //variables
     
     function Awake(){
         var Selector = gameObject.GetComponent("Selector");
     }

the variable Selector shows up in the inspector as if it's typecasted as a GameObject. The thing is, I can ONLY select the current GameObject. It works, but it doesn't seem as if it's right. Do you guys know why this is happening? If this is too vague, I can go into more detail. It's just kind of hard to explain.

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
1

Answer by robertbu · May 15, 2014 at 07:47 PM

First, you don't want your variable to be the same name as the script/class. The usual convention is to make variables lower case, and functions and classes upper case. So line 3 would be:

 var selector : Selector;

As for the GetComponent(), use the typed version, not the string version. So line 7 would be:

 var selector = gameObject.GetComponent(Selector);

When you use the string version, the compiler does not know the type of the component, so it defaults to the base class of 'Component'. You will would not be able to use 'selector' to access the functions and variables in the Selector component without casting, plus using the string version can hide bugs/problems that the compiler can catch.

Comment
Add comment · 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 Attapi0 · May 15, 2014 at 08:04 PM 0
Share

Thank you. While that did help make my code a bit less horrible, it didn't really answer my question. Here's a picture of what's going on alt text.

Why do I need to select a gameObject?

avatar image robertbu · May 15, 2014 at 08:58 PM 0
Share

Sorry I missed the point of your question, but I don't understand what you are trying to do. 'Selector' will refer to a selector component. You can only drag and drop in the inspector a game object that has a 'Selector' component. $$anonymous$$aybe you want to define 'Selector' as a GameObject???? $$anonymous$$aybe if you describe what you are trying to and/or add the rest of the script, I could figure out how to give you a correct answer.

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

20 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

Related Questions

How can I use a variable with getcomponent<>()? 2 Answers

Identify and Use Unknown Types 1 Answer

Why GetComponent()? 0 Answers

NullReferenceException: Object reference not set to an instance of an object ..... 1 Answer

Having trouble understanding parenting with componants 0 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