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 matta9001 · Mar 24, 2014 at 05:21 PM · javascriptscenenoobglobalvariables

Make a global variable that can be accessed in different scenes

Ok i have two scripts, i have one to keep track of the score in game and one script to display the script at the end. I am trying to use a static variable to store a float and display it at the endscreen, but it doesn't work. here are the two scripts,

var Player : GameObject; static var timer : float = 0; var isTiming = true; var timerSkin : GUISkin;

 function OnGUI(){
     GUI.skin = timerSkin;
     GUI.Box(new Rect(10, 10, 50, 25), "" + timer.ToString("0"));
 }
 
 
 function Update(){
     if(isTiming == true){
     timer += Time.deltaTime;
     }
 }
 function OnTriggerEnter(other : Collider){
     if(other.collider.tag == Player.tag){
         Application.LoadLevel("Endscreen");
         isTiming = false;
     }
 }


and

var timer : float;

 function OnGUI(){
     GUI.Box(new Rect(10, 10, 50, 25), "" + timer.ToString("0"));
 }
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

2 Replies

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

Answer by Simon-Larsen · Mar 24, 2014 at 05:33 PM

You can keep a GameObject alive through scene changes with this code:

 // Make this game object and all its transform children
 // survive when loading a new scene.
 function Awake () {
     DontDestroyOnLoad (transform.gameObject);
 }

You said you also wanted a global variable. What I'd do is probably give the mentioned GameObject a tag and do GameObject.FindGameObjectWithTag("yourTag"), but since you asked for a global variable what you can do is make a static variable.

 static var myBoolean=false;
Comment
Add comment · Show 5 · 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 matta9001 · Mar 24, 2014 at 06:04 PM 0
Share

So if i make a static var then i could just make another script, put static var and it would be the same?

avatar image Simon-Larsen · Mar 24, 2014 at 06:45 PM 0
Share

If you made a static var in one script, then you'd be able to access it through any of your scripts. Say Foo.cs has a static float coins, then Bar.cs would be able to access it as if the variable was a field of it's own instance: coins = 10.0f

avatar image matta9001 · Mar 24, 2014 at 06:54 PM 0
Share

i use javascript, would it still work...

avatar image Simon-Larsen · Mar 24, 2014 at 06:56 PM 0
Share

Yea, I'm not sure of the javascript (Unityscript) syntax, but the idea would be the same

avatar image matta9001 · Mar 24, 2014 at 07:14 PM 0
Share

I for some reason can't get this to work...for a test i just made two scripts, with a static var boolean, and when you press p it switches from true to false, then i put on two different objects in two different scenes to see if it would even work. But when i did that i can't even see the boolean in the inspector. I dunno

avatar image
0

Answer by Flux · Mar 24, 2014 at 05:36 PM

Maybe it's an idea to store the score in PlayerPrefs, so when you close and restart the games, it still exist.

https://docs.unity3d.com/Documentation/ScriptReference/PlayerPrefs.html

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

22 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 avatar image

Related Questions

How can i make my scene less laggy? 2 Answers

How to start a function from another scene. 1 Answer

How to make GUI text disappear after a few seconds? 1 Answer

Can't get particles to enable/disable with button press 1 Answer

Help with my double jump script 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