• 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 thornecreative · Jul 03, 2015 at 06:06 AM · c#playerprefsadvice

Requesting help with adding PlayerPrefs to my script (sample attached)

I'm working on a game where my main character is collecting "treats" which is the in-game currency. I have a script attached to my character to collect the treats when he collides with one and it destroys the treat game object. I have a GUI text set up that shows the amount of treats collected throughout the level and I would like to set up a database that keeps track of the treats collected over time. The treats collected can then be used to unlock new levels, purchase new characters, etc.. Here is my script, any help/advice on where/how I can set up the playerprefs to save/store the treats collected would be greatly appreciated, thanks in advance. using UnityEngine; using System.Collections;

 public class CollectTreat : MonoBehaviour {
 
     public GUIText treatCount;
     private int treats;
     private int treatValue = 0;
 
     void Start ()
     {
         treats = 0;
         UpdateTreats ();
     }
 
     void getTreat (Collider2D treatCollider)
     {
         treats++;
 
         AddScore (treatValue);
         Destroy(treatCollider.gameObject);
     }
     
     void OnTriggerEnter2D (Collider2D collider)
     {
         if (collider.gameObject.CompareTag("TreatController"))
             getTreat(collider);
     }
 
     public void AddScore (int newTreatValue)
     {
         treats += newTreatValue;
         UpdateTreats ();
     }
     
     void UpdateTreats ()
     {
         treatCount.text = "" + treats;
     }
 }
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
1

Answer by NeverHopeless · Jul 03, 2015 at 06:43 AM

One way to setup PlayerPrefs code in this routine UpdateTreats. Save to the PlayerPrefs and update the text, but it is not good from performance point of view depending on how frequently treats collected. The better approach is to save the treats into player prefs once your current level is completed.

 PlayPrefs.SetInt("TotalTreatsCount", PlayerPrefs.GetInt("TotalTreatsCount") + treats);
 PlayerPrefs.Save();
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
avatar image
0

Answer by thornecreative · Jul 03, 2015 at 07:37 AM

@NeverHopeless thanks so much for your reply, I'll play around with it and see where I can get - much appreciated!

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.

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

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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Save/Load Animation State of Instantiated Prefabs 0 Answers

Saving a variable between levels? 1 Answer

PlayerPref problems 1 Answer

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges