Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 11 Next capture
2021 2022 2023
1 capture
11 Jun 22 - 11 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 me2000 · Jul 05, 2015 at 04:39 AM · javascriptprefabfpsshooterpickup

Instantiated GameObject does not have variables

Im working on a weapon pickup and drop system but the dropped weapon clone does not allow to pick it up again because the variables arent assigned to the clone! How can I fix that? I cant use find because the variables are not defined.

 var wepclone : GameObject;
 var weapon1 : GameObject;
 var weapon2 : GameObject;
 var inTrigger : boolean = false;
 var picktext : GameObject;
 var Spawn : Transform;
 var wepdrop : GameObject;
 
 function Start (){
     picktext = GameObject.Find("PickText");
     Spawn = transform.Find("wepdropspawn").GameObject;
     picktext.SetActive(false);
 }
 
 function Update (){
 
     if(!weapon1.active){
         if(!Input.GetButton("left shift")){
             if(inTrigger){
                 picktext.SetActive(true);
                 if(Input.GetKeyUp("e")){
 
                     Destroy(wepclone);
 
                     weapon1.SetActive(true);
                     weapon2.SetActive(false);
                     picktext.SetActive(false);
 
                     var wepdropclone : GameObject = Instantiate(wepdrop,Spawn.position,Spawn.rotation);
                 }
             }
             else if(!inTrigger){
                 picktext.SetActive(false);
             }
         }
     }
 }
 
 function OnTriggerEnter (pickarea : Collider) {  
 
         if(pickarea.tag == "Player"){
                 inTrigger = true;
         }
 }
 
 
 function OnTriggerExit (pickarea : Collider){
             if(pickarea.tag == "Player"){
                 picktext.SetActive(false);
                 inTrigger = false;
         }
 }
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 Vice_Versa · Jul 05, 2015 at 06:25 AM 0
Share

When you Instantiate you are $$anonymous$$aking a new Copy of the prefab in your assets folder, not the gameobject in your scene. if you want the variables to be assigned to it, you need to assign them in the prefab, then they will be there automatically. if that is not an option, then you can assign them like

 wepdropclone.GetComponent<ScriptName>().publicVariableName = webdrop.GetComponent<ScriptName>().publicVariableName;

(sorry this is in c sharp which i know probably isnt too helpful but im not too javascript savy)

avatar image me2000 · Jul 05, 2015 at 06:58 AM 0
Share

As I mentioned, the problem is that the variables are undefined. It is different depending on which objects its attached

avatar image Vice_Versa · Jul 05, 2015 at 05:36 PM 0
Share

Im not quite sure what you are asking here. As i said in the above comment, you need to write code that assigns the empty variables to the values used. If you need to reference the parent you would do something like webdropclone.transform.parent.GetComponent...etc.

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

How to differentiate between prefabs on collision. 1 Answer

C# Destroy Prefab on Pickup 1 Answer

Compiler error FPSplayer script 2 Answers

Weapon pick up 3 Answers

Problem With Weapon Firing Mechanism 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