免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

怎么在Unity3D中利用PlayerPrefs開發數據持久化

本篇文章為大家展示了怎么在Unity3D中利用PlayerPrefs開發數據持久化,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

成都創新互聯-專業網站定制、快速模板網站建設、高性價比藤縣網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式藤縣網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋藤縣地區。費用合理售后完善,十多年實體公司更值得信賴。

首先我們來看兩段Unity3D中實現數據讀寫的簡單代碼吧:

 //保存數據
 PlayerPrefs.SetString("Name",mName);
 PlayerPrefs.SetInt("Age",mAge);
 PlayerPrefs.SetFloat("Grade",mGrade)
 //讀取數據
 mName=PlayerPrefs.GetString("Name","DefaultValue");
 mAge=PlayerPrefs.GetInt("Age",0);
 mGrade=PlayerPrefs.GetFloat("Grade",0F);

通過上面兩段代碼,我們可以發現兩點:

1、Unity3D中的數據持久化是以鍵值的形式存儲的,可以看作是一個字典。

2、Unity3D中值是通過鍵名來讀取的,當值不存在時,返回默認值。

目前,在Unity3D中只支持int、string、float三種數據類型的讀取,所以我們可以使用這三種數據類型來存儲簡單的數據。目前Unity3D中用于數據持久化的類為layerPrefs,主要的類方法有:

 static function DeleteAll(): void
 描述:從設置文件中移除所有鍵和值,謹慎的使用它們。
 
 static function DeleteKey(key: string): void
 描述:從設置文件中移除key和它對應的值。
 
 static function GetFloat(key: string, defaultValue: float=OF): float
 描述:如果存在,返回設置文件中key對應的值.如果不存在,它將返回defaultValue。
 
 static function GetInt(key: string, defaultValue: int): int
 描述:返回設置文件中key對應的值,如果存在.如果不存在,它將返回defaultValue。
 
 static function GetString(key: string, defaultValue: string=**): string
 描述:返回設置文件中key對應的值,如果存在.如果不存在,它將返回defaultValue.
 
 static function HasKey(key: string): bool
 描述:在設置文件如果存在key則返回真.
 
 static function SetFloat(key: string, value: float): void
 描述:設置由key確定的值.
 
 static function SetInt(key: string, value: int): void
 描述:設置由key確定的值.
 
 static function SetString(key: string, value: string): void
 描述:設置由key確定的值.

好了,在了解layerPrefs的主要方法后,我們以一個具體的例子來學習Unity3D中數據持久化的實現,我們希望實現在一個場景中輸入信息以便在新場景中讀取信息。我們直接創建兩個場景,分別命名為Scene0、Scene1(據說程序員數數都是從0開始的,哈哈),場景中保留主攝像機即可。接下來我們分別為兩個場景編寫腳本:

第一個場景的腳本:

using UnityEngine;
using System.Collections;
 
public class Scene1Script : MonoBehaviour {
	
	//姓名
	private string mName="路人甲";
	//年齡
	private int mAge=20;
	//成績
	private float mGrade=75.5F;
	
	void OnGUI()
	{
		GUILayout.Label("Unity3D數據存儲示例程序",GUILayout.Height(25));
		//姓名
		GUILayout.Label("請輸入姓名:",GUILayout.Height(25));
	 mName=GUILayout.TextField(mName,GUILayout.Height(25));
		//年齡
		GUILayout.Label("請輸入年齡:",GUILayout.Height(25));
	 mAge=int.Parse(GUILayout.TextField(mAge.ToString(),GUILayout.Height(25)));
		//成績
		GUILayout.Label("請輸入成績:",GUILayout.Height(25));
	 mGrade=float.Parse(GUILayout.TextField(mGrade.ToString(),GUILayout.Height(25)));
		
		//提交數據
		if(GUILayout.Button("提交數據",GUILayout.Height(25)))
		{
		 //保存數據
		 PlayerPrefs.SetString("Name",mName);
		 PlayerPrefs.SetInt("Age",mAge);
		 PlayerPrefs.SetFloat("Grade",mGrade);
		 
		 //切換到新場景
			Application.LoadLevel("Scene1");
		}
	}
}

第二個場景的腳本:

using UnityEngine;
using System.Collections;
 
public class Scene2Script : MonoBehaviour {
 
	private string mName;
	private int mAge;
	private float mGrade;
	
	void Start () 
	{
	 //讀取數據
	 mName=PlayerPrefs.GetString("Name","DefaultValue");
	 mAge=PlayerPrefs.GetInt("Age",0);
	 mGrade=PlayerPrefs.GetFloat("Grade",0F);
	}
	
	void OnGUI()
	{
	 GUILayout.Label("Unity3D數據存儲示例程序",GUILayout.Height(25));
	 //姓名
	 GUILayout.Label("姓名:"+mName,GUILayout.Height(25));
	 //年齡
	 GUILayout.Label("年齡:"+mAge,GUILayout.Height(25));
	 //成績
	 GUILayout.Label("成績:"+mGrade,GUILayout.Height(25));
		
	 //刪除數據
	 if(GUILayout.Button("清除數據",GUILayout.Height(25)))
	 {
   PlayerPrefs.DeleteAll();
	 }
		
	 //返回Scene0
	 if(GUILayout.Button("返回場景",GUILayout.Height(25)))
	 {
   Application.LoadLevel("Scene0");
	 }
		
	}
}

上述內容就是怎么在Unity3D中利用PlayerPrefs開發數據持久化,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。

網頁名稱:怎么在Unity3D中利用PlayerPrefs開發數據持久化
分享網址:http://m.newbst.com/article32/jeidpc.html

成都網站建設公司_創新互聯,為您提供靜態網站App設計定制開發定制網站網站導航網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化