• 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 Wolfos · Oct 03, 2011 at 09:32 AM · variablechanging

Changing public variable from different 'class'

I'm not sure if I can even call them classes, but okay. I have the variable 'playtime' in the file PlayGUI.js. I need to change that variable from a function in the file Car.js.

How would I go about doing that?

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
0
Best Answer

Answer by CHPedersen · Oct 03, 2011 at 09:42 AM

If Car.js and PlayGUI.js are both Scripts (i.e. classes that inherit from MonoBehavior), then you can access the variable by setting up a reference to PlayGUI.js in the Start function of Car.js, using GameObject.Find and GetComponent. The following is C#, but you can change it to JS very easily:

 MonoBehaviour PlayGUIScript; // Will be "var PlayGUIScript;" in js
 
     // Use this for initialization
     void Start () {    
         PlayGUIScript = GameObject.Find("Name of gameobject to which PlayGUI.js is attached").GetComponent<PlayGUI>();
     } 

Now the variable is exposed and can be accessed like so:

 void Update()
 {
     // Change the public variable
     PlayGUIScript.playtime = whatever new value you give it;
 }

It doesn't have to be in Update, that's just an example. :)

If, contrary to my expectations, those two classes aren't actually Scripts but custom classes you've written, then one class needs a reference to an instance of the other in order to change the value. This is usually passed in the class's constructor. Let me know if that is the case, and I'll cook you up a new example.

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 Wolfos · Oct 03, 2011 at 10:37 AM 0
Share

I get some syntax errors with the GameObject.Find thingy. Unexpected tokens.

How would I do that in JS?

EDIT: obviously, with regular brackets. It works now, thanks!

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

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Variable changes back to default after Start() 1 Answer

When I make a public variable private, editor still uses previous public value 1 Answer

How to put a generic value on a function, or in another script? 0 Answers

Quickest method to change a variable on another gameobject. 2 Answers

How to deactivate something when holding down a key? 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