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 mrgohut · Feb 12, 2014 at 08:10 PM · variablegetcomponentvar

GetComponent - problem with var from another script

 //Checking player wood
 var getPlayerWood : GetWoodScript;
 
 //Buildings
 var CubeBuild : int = 10;
 
 //var move : float = 5;
 
 function Update ()
 {
     if (Input.GetKeyDown(KeyCode.B))
     {
         getPlayerWood = gameObject.FindWithTag("Player").GetComponent(GetWoodScript);
         if(getPlayerWood.playerWood == CubeBuild)
         {
             if(objectInHands == false)
             {
                   build = Instantiate(build, transform.position + transform.forward * 4.0 , transform.rotation);
                   build.rigidbody.isKinematic = true;
                   build.transform.parent = Camera.main.transform;
                   objectInHands = true;
                   //getPlayerWood.playerWood -= CubeBuild;
               }
               else {
                   print("You have Cube in your hands");
             }
         }
         else if(getPlayerWood.playerWood != CubeBuild)
         {
             print("You can't create it now !");
         }
     }
 }

"You can't create it now !" all the time ;/ I dont know why, code is good because if i add this

 if(Input.GetKeyDown(KeyCode.R))
 {
     getPlayerWood = gameObject.FindWithTag("Player").GetComponent(GetWoodScript);
     print("You have " + getPlayerWood.playerWood + " wood");
 }

it works ! ;/ it looks like it haven't read var from another script ;/

Comment
Add comment · Show 5
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 robertbu · Feb 12, 2014 at 08:12 PM 0
Share

Your logic for getting the value from the other component looks fine, but other things here puzzle me. Right after line 30, add:

 Debug.Log(getPlayerWood.playerWood);

See what value you are getting. Any change that 'playerWood' is a float? If so the '==' comparison might be failing.

avatar image mrgohut · Feb 12, 2014 at 08:33 PM 0
Share
 var playerWood : int = 0;

And this

 Debug.Log(getPlayerWood.playerWood);

return good value, so now i totally dont know where is problem o.O

avatar image robertbu · Feb 12, 2014 at 08:52 PM 0
Share

Two things. First CubeBuild is a public variable, so the value it will have is the one in the inspector, not necessarily the one you assign in code. Second, in the code above you assign 10 to CubeBuild. 10 is not equal to 0.

avatar image mrgohut · Feb 12, 2014 at 09:27 PM 0
Share

Gnometech - Thanks ;D Thats it ! what a mistake ;( robertbu thx u2 ;)

avatar image Gnometech · Feb 13, 2014 at 06:35 AM 0
Share

Ok, just for reference I converted it to an answer. And no worries, we all made beginner's mistakes. And still do. :-)

1 Reply

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

Answer by Gnometech · Feb 12, 2014 at 08:54 PM

You are aware that your script ONLY lets you build a cube if you have exactly the amount of wood required (in your case 10). So if you have 11, 12 or more it won't, because you ask if the number of wood is equal to the amount.

This is just a guess, but maybe changing the statement to

 if(getPlayerWood.playerWood >= CubeBuild)

will already do the trick. Also remove the "if" from the else part, it is useless.

Comment
Add comment · 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

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

19 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

Related Questions

Passing a Script Name to a Function 2 Answers

Weapon script 0 Answers

How to set a variable equal to another variable in another gameobject? 2 Answers

Why can't I change another script's variable with this script? Thanks, 1 Answer

AddComponent with parameter variable 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