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
1
Question by Nathan Bennett · Sep 18, 2010 at 07:25 PM · datastore

how to store data (Varibles) without losing them each scene?

hello. what i want to do is to check wether a username has been saved. if not, load the window to create a new user name. the new user name will be saved in playerprefs. the only thing is, is i don't know how i would check if a user name is already saved. i tried to use getString (from playprefs) to check wether a username is already saved, but, every time i load the game, the window to create a new user does not appear. is there any alternitives to save a varible "State" throughout the launch of the game?

here's the code i'm using now:

static var userName; var savedUser : boolean = false; var windowLoad = Rect (Screen.width / 2- 50, Screen.height / 2 - 50 ,200,150); var enteredName = "Enter Name Here"; var prefsReset = 0;

function OnGUI() { if(!PlayerPrefs.GetString("User") ) { windowLoad = GUI.Window(0,windowLoad,windowElements,"Profile Setup"); }
}

function windowElements(windowID : int) { if(GUI.Button(Rect(60,120,80,20), "Create User")) { PlayerPrefs.SetString("User",enteredName); } enteredName = GUI.TextField(Rect(16,85,170,20),enteredName); GUI.Label(Rect(10,20,250,60), "Welcome. To start, Just enter \n your name, and click the \n 'Create User' Button" );

  GUI.DragWindow();

}

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
1

Answer by duck · Sep 18, 2010 at 07:32 PM

I think your problem lies in the method you're using to check whether the name has not yet been set. The correct way to do it is comparing the returned pref value with the "default" value for that pref. The default value is returned if no value has yet been set for that pref name.

You can optionally specify the default value to return if your pref hasn't been set, like this:

// get username, or return 'Unnamed' if not set
var username = PlayerPrefs.GetString("User", "Unnamed");

And then you could test for it like this:

if (username == "Unnamed") {
    // no username has been set yet!
}

However each type of pref has a sensible default, and the default for this with strings (if you don't specify a value for if unset) is an empty string, so you can check for that like this:

var username = PlayerPrefs.GetString("User");
if (username == "") {
    // no username has been set yet!
}

Hope this solves your problem!

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

No one has followed this question yet.

Related Questions

How to get the Eye tracking data for HoloLens 2 and MRTK? 0 Answers

Is there a tutorial for Unity 4.6 that shows how to print data from a text field when a button is clicked. 1 Answer

One simple question about saving in Network 1 Answer

How can I store data from a timer? 1 Answer

Is there a "Lightweight Monobehaviour"? 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