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 NormN · Mar 29, 2014 at 09:42 PM · prefabgetcomponent

Problems getting values from a prefab's script using GetComponent

I have a player prefab and an enemy prefab. They are both instantiated to the scene from an empty game object.

This is for a 2d game like space invaders. I want the enemy(clone) to follow the player(clone) on the x axis.

I'm trying to do this by having the player(clone) have a script attached to it and whenever it moves it sets different private Boolean variables to true/false (depending on its movement). Based on these bool values, the enemy(clone) will move.

I have a bunch of getBool methods.

The enemy(clone) has a script attached to it that has the following fields:

 public GameObject gameObject;   //I put the player prefab gameObject into it (inspector) 
 private Player playerScript;        //this is for the GetComponent


then I do the getComponent in the enemy script's awake method: playerScript = gameObject.GetComponent ();

After all this, the enemy prefab script doesn't seem to be getting the values from the player prefabs script.

Man I really need help...Thank you!

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 apomarinov1 · Mar 29, 2014 at 10:27 PM 0
Share

gameObject is a local variable to the current script and references the game object the script is attached to, just name it something else like "go".

avatar image getyour411 · Mar 29, 2014 at 10:30 PM 0
Share

Ahh good eye, didn't catch that on first read. Using 'gameObject' as a variable name is a terrible idea. I still think you only have a reference to the player Prefab though, and not the Instantiated object but can't be sure from what you've shown.

avatar image NormN · Mar 29, 2014 at 10:41 PM 0
Share

hey thanks for everything! yeah I had a reference to the player Prefab and not the instantiated object.

here is how I fixed it:

void Awake (){ Player = GameObject.Find("PlayerPrefab(Clone)"); playerScript = Player.GetComponent (); }

So ins$$anonymous$$d of putting the player game object into the slot in the inspector( which would of only been a reference to the player prefab), I used GameObject.Find and got the actual instantiated object.

Thanks a bunch!

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by getyour411 · Mar 29, 2014 at 09:59 PM

I expect this is because you have a reference to the player prefab (from public GameObject gameObject) but when you instantiate the player that is a different gameObject. The other issue seems to be your GetComponent usage - does your Enemy really have playerScript attached to it? Normally that would be on the player so your GetComponent would need to be prefaced by something like GameObject.Find("Player")....

Comment
Add comment · Show 1 · 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 radokhlebov · Mar 24, 2015 at 10:18 AM 0
Share

omg! Thanks ALOT! $$anonymous$$aking public GameObject and putting from inspector isn't working! I've lost 5 days finding what is going on!

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

21 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

Related Questions

Get Component from Instantiated Prefab 1 Answer

Acces object in scene, not prefab 1 Answer

Accesing script from newly instantiated game object 1 Answer

Changing Prefab Variables From Another Script In Editor 1 Answer

Remove HingeJoint2D from the Instance not from the Prefab 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