使用PlayerPrefs(统一)

时间:2016-08-18 10:14:30

标签: unity3d

我最近一直在创建一个包含教程的游戏。不幸的是,他们没有涵盖保存评分功能。感谢另一位用户,我能够发现我需要使用playerprefs。我在线观看教程,但没有一个是有用的。如果可以,请帮助我!

Gold Per Sec脚本:

 using UnityEngine;
 using System.Collections;

 public class GoldPerSec : MonoBehaviour {

     public UnityEngine.UI.Text gpsDisplay;
     public Click click;
     public ItemManager[] items;

     void Start () {
         StartCoroutine(AutoTick ());
     }

     void Update () {
         gpsDisplay.text = GetGoldPerSec() + " Money Per Sec";
     }

     public float GetGoldPerSec() {
         float tick = 0;
         foreach (ItemManager item in items) {
             tick += item.count * item.tickValue;
         }
         return tick;   
     }

     public void AutoGoldPerSec() {
         click.gold += GetGoldPerSec() / 10;
     }

     IEnumerator AutoTick() {
         while (true) {
             AutoGoldPerSec();
             yield return new WaitForSeconds(0.10f);
         }
     }
 }

Gold Per Click脚本:

 using UnityEngine;
 using System.Collections;

 public class Click : MonoBehaviour {

     public UnityEngine.UI.Text gpc;
     public UnityEngine.UI.Text goldDisplay;
     public float gold = 0.00f;
     public int goldperclick = 1;

     void Update () {
         goldDisplay.text = "" + gold.ToString("F0");
         gpc.text = "Money Per Click: " + goldperclick;
     }

     public void Clicked(){
         gold += goldperclick;
     }

 }

我的想法是让游戏在游戏退出时保存,并在加载游戏后立即加载。我是一个完全的初学者,如果有人能告诉我怎么做,请告诉我!谢谢! :d

3 个答案:

答案 0 :(得分:3)

您可以使用Unity的现有功能来实现此目的。

为了保存数据,请使用Unity的OnApplicationQuit函数,如下所示

void OnApplicationQuit() {
    PlayerPrefs.SetFloat("key", value);
}

为了恢复价值,请使用Unity这样的清醒功能

void Awake(){
    value = PlayerPrefs.GetFloat("key");
}

答案 1 :(得分:1)

将以下代码添加到Click类:

void Awake()
{
    LoadData();
}

void OnApplicationQuit() 
{
    SaveData();
}

void SaveData()
{
    PlayerPrefs.SetFloat("gold",gold);
}

void LoadData()
{
    gold = PlayerPrefs.GetFloat("gold",0f);
}

答案 2 :(得分:1)

请注意,PlayerPrefs是一种保存数据的简便方法,但也是一种非常不安全的方式。玩家可以轻松操纵他的" goldValue"因为它只是在他的设备上的某个文件中存储为整数。 PlayerPrefs通常只能用于玩家可以在游戏中以任何方式改变的值,如音量设置等。

示例代码

$ mkdir $GOPATH/src/github.com/go-sql-driver/mysql
$ pushd $GOPATH/src/github.com/go-sql-driver
$ git clone https://github.com/go-sql-driver/mysql.git
$ popd