删除首选项中的所有键和值。请谨慎使用。
在脚本中调用此函数以删除 PlayerPrefs 中的所有当前设置。
以下示例演示了创建用于删除所有 PlayerPrefs 的按钮。
//This example creates a button on the screen that deletes any PlayerPrefs settings when you press it. //Note that you must set values or keys in the PlayerPrefs first to see the button.
using UnityEngine;
public class Example : MonoBehaviour { void OnGUI() { //Delete all of the PlayerPrefs settings by pressing this button. if (GUI.Button(new Rect(100, 200, 200, 60), "Delete")) { PlayerPrefs.DeleteAll(); } } }
以下示例演示了设置 PlayerPrefs 并在之后将其删除。
//First attach this script to a GameObject in the Scene to set up the PlayerPrefs.
using UnityEngine; using UnityEngine.SceneManagement;
public class SetUpPlayerPrefsExample : MonoBehaviour { string m_PlayerName;
void Start() { m_PlayerName = "Enter Your Name"; }
void Update() { //Give the PlayerPrefs some values to send over to the next Scene PlayerPrefs.SetFloat("Health", 50.0F); PlayerPrefs.SetInt("Score", 20); PlayerPrefs.SetString("Name", m_PlayerName); }
void OnGUI() { //Create a Text Field where the user inputs their name m_PlayerName = GUI.TextField(new Rect(10, 10, 200, 20), m_PlayerName, 25);
//Create a button which loads the appropriate level when you press it if (GUI.Button(new Rect(10, 30, 200, 60), "Next Scene")) { SceneManager.LoadScene("Scene2"); } } }
//This other script shows how the values of the PlayerPrefs reset using the PlayerPrefs.DeleteAll() function. //Open a different Scene (the one you named before- "Scene2") and attach this script to a new GameObject. //Use this script to fetch the settings and show them as text on the screen. //Use the button included in the script to delete all these settings and the text on the screen will also reset to reflect this.
using UnityEngine; using UnityEngine.UI;
public class PlayerPrefsDeleteAllExample : MonoBehaviour { int m_Score; float m_Health; string m_PlayerName;
void Start() { //Fetch the PlayerPref settings SetText(); }
void SetText() { //Fetch the score, health and name from the PlayerPrefs (set these Playerprefs in another script) m_Health = PlayerPrefs.GetFloat("Health", 0); m_Score = PlayerPrefs.GetInt("Score", 0); m_PlayerName = PlayerPrefs.GetString("Name", "No Name"); }
void OnGUI() { //Fetch the PlayerPrefs settings and output them to the screen using Labels GUI.Label(new Rect(50, 50, 200, 30), "Name : " + m_PlayerName); GUI.Label(new Rect(50, 90, 200, 30), "Health : " + m_Health); GUI.Label(new Rect(50, 130, 200, 30), "Score : " + m_Score);
//Delete all of the PlayerPrefs settings by pressing this Button if (GUI.Button(new Rect(50, 0, 100, 30), "Delete")) { PlayerPrefs.DeleteAll(); //Fetch the updated settings to change the Text SetText(); } } }