Version: 2020.3
public static void DeleteAll ();

描述

从偏好中删除所有键和值。请谨慎使用。

在脚本中调用此函数可删除 PlayerPrefs 中的所有当前设置。之前设置过的所有值或键随后会重置。使用时要小心。

//This example creates a button on the screen that if pressed, deletes any PlayerPrefs settings.
//You must set values or keys in the PlayerPrefs first to see this in action.

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(); } } }