国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Unity3D 游戲引擎之游戲場景切換與持久化簡單數據儲存

移動開發 iOS 游戲開發
持久化簡單的數據儲存在Unity3D 中提供了一個簡單有效的方法,如果之前的你做過Android的開發你會發現在Unity3D中持久化數據的儲存和Android非常的想象。

持久化簡單的數據儲存在Unity3D 中提供了一個簡單有效的方法,如果之前的你做過Android的開發你會發現在Unity3D中持久化數據的儲存和Android非常的想象。那么下面MOMO 將用一個簡單有效的例子向大家介紹Unity3D中持久化數據。

首先我們須要熟悉一下Unity3D中的PlayerPrefs這個類。這個類中一共幫助我們封裝了9個方法,用來數據的儲存與讀取。

舉一個例子

[代碼]c#/cpp/oc代碼:

1 PlayerPrefs.SetString("key", "value"); 
2 string str = PlayerPrefs.GetString("key", "defaule"));

我們發現它是以鍵值對的形式進行儲存與讀取,每一個Key對應一個Value,儲存過后通過Key可以得到之前儲存的Value。這里說一下 GetString()方法中的第二個參數, 它代表默認值。意思是如果通過***個參數的Key沒有找到對應的Value的話GetString()方法就會返回我們寫的第二個參數的默認值。怎么樣?很簡單吧~ 感覺和Android完全一樣哈。

Unity3D 默認的字體的 size 只有 16 ,這就意味了放在iPhone4 (960 X 640)上 字體會顯示的非常小。字體的來源有很多,大家可以在互聯網上下載,或者從自己的電腦中拷貝,在Mac電腦下字體放在 Finder -> 資源庫 -> Fonts

我們可以看見電腦中存在了很多字體,我這里隨便選一個,將 華文仿宋.ttf 用鼠標拖動到Project中。

選中: 華文仿宋

FontSize 30 :毫無疑問是字體的大小,這里寫30讓字體幾乎放大1倍。

Character:  設置字體的文字編碼 Unicode  ASCLL 編碼

Style:設置字體的風格,粗體 斜體

點擊Cretae ->GUISkin 創建一個GUI的皮膚,將 華文仿宋 拖動到箭頭所指向的方向。發現下面存在很多GUI皮膚相關控件設置的,可以在這里設置每一個高級控件~大家可以手動的修改一下看看效果哈。

游戲場景在游戲制作中是一個非常重要的部分,因為任何一款游戲都是由若干的場景組成,Unity3D的游戲場景做的非常貼心。

創建2個游戲場景,一個是scene0 一個是scene1 ,本章的目標是在***個游戲場景中保存一些基本游戲數據,然后切換到第二個場景中顯示***個場景中保存的數據,實現場景的切換已經數據的儲存。

在scene0中創建一個c# 腳本名稱為Scene0Main.cs 將它綁定在攝像頭中。

Scene0Main.cs

[代碼]c#/cpp/oc代碼:

01 using UnityEngine; 
02 using System.Collections; 
03    
04 public class Scene0Main : MonoBehaviour { 
05    
06     //儲存數據的顯示 
07     public string testStr; 
08     public string testInt; 
09     public string testFloat; 
10        
11     //GUI皮膚 為上面我們添加的皮膚 
12     //在外面用鼠標拖動上為它賦值 
13     public GUISkin fontSkin; 
14     //顯示的圖片 
15     public Texture Imagetexture; 
16         
17     // Use this for initialization 
18     void Start () { 
19         //讀取key的值 
20         testStr = PlayerPrefs.GetString("testStr", "default"); 
21         testInt = PlayerPrefs.GetInt("testInt", 0).ToString(); 
22         testFloat = PlayerPrefs.GetFloat("testFloat", 0).ToString(); 
23            
24     } 
25        
26     // Update is called once per frame 
27     void Update () { 
28        
29     } 
30        
31        
32     void OnGUI() { 
33            
34         //將GUI的皮膚設置為我們創建的皮膚 
35         GUI.skin = fontSkin; 
36            
37         //貼上圖片 
38         GUI.DrawTexture(new Rect((Screen.width - Imagetexture.width) >>1, 10, 120, 120), Imagetexture); 
39            
40         //添加輸入框讓用戶輸入信息,這里面我沒有捕獲異常,因為用戶有可能輸入一個不合法的數值 
41         testStr = GUI.TextField (new Rect(10, 200, 200, 50), testStr, 50); 
42         testInt = GUI.TextField (new Rect(10, 250, 200, 50), testInt, 50); 
43         testFloat = GUI.TextField (new Rect(10, 300, 200, 50), testFloat, 50); 
44            
45         //點擊按鈕保存所有數據 
46         if (GUI.Button(new Rect(220, 200, 150, 100), "commit all")) 
47         { 
48                
49             PlayerPrefs.SetString("testStr", testStr); 
50             PlayerPrefs.SetInt("testInt", int.Parse(testInt)); 
51             PlayerPrefs.SetFloat("testFloat", float.Parse(testFloat)); 
52             //切換場景到scene1 
53             Application.LoadLevel("scene1"); 
54         } 
55     } 
56        
57        
58 }

Scene1Main.cs

[代碼]c#/cpp/oc代碼:

01 using UnityEngine; 
02 using System.Collections; 
03    
04 public class scene1Main : MonoBehaviour { 
05    
06     public string testStr; 
07     public string testInt; 
08     public string testFloat; 
09        
10     public GUISkin fontSkin; 
11     public Texture Imagetexture; 
12         
13     // Use this for initialization 
14     void Start () { 
15         testStr = PlayerPrefs.GetString("testStr", "default"); 
16         testInt = PlayerPrefs.GetInt("testInt", 0).ToString(); 
17         testFloat = PlayerPrefs.GetFloat("testFloat", 0).ToString(); 
18            
19     } 
20        
21        
22     void OnGUI() { 
23         GUI.skin = fontSkin; 
24            
25         GUI.DrawTexture(new Rect((Screen.width - Imagetexture.width) >>1, 10, 120, 120), Imagetexture); 
26            
27         //顯示label 
28         GUI.Label(new Rect(10,150,300,50),"testStr = "+ testStr); 
29         GUI.Label(new Rect(10,200,300,50),"testInt = "+ testInt); 
30         GUI.Label(new Rect(10,250,300,50),"testFloat = "+ testFloat); 
31            
32         if (GUI.Button(new Rect(220, 200, 150, 100), "clean all")) 
33         { 
34             //刪除所有鍵值 
35             PlayerPrefs.DeleteAll(); 
36             // 返回場景0 
37             Application.LoadLevel("scene0"); 
38         } 
39            
40         if (GUI.Button(new Rect(220, 320, 150, 100), "only return")) 
41         { 
42             // 返回場景0 
43             Application.LoadLevel("scene0"); 
44         } 
45     } 
46 }

File -> Build Settings 點擊Add Current添加場景,這一步很重要,如果不添加的話在代碼中切換場景會拋異常,盆友們還得注意一下~

build and run 導出運行項目,如下圖所示我分別輸入string int float 三種類型的數據,然后點擊commit all ,將所有數據全部保存下來,游戲場景切換到scene1場景中。

切換到scene1中可以正常的顯示scene0中儲存的數值,點擊clean all 將清空儲存的所有信息后返回場景scene0,點擊only return 直接返回場景scene0

 

另外兩個重要的方法

[代碼]c#/cpp/oc代碼:

1 //刪除 PlayerPrefs 中某一個key的值 
2 PlayerPrefs. DeleteKey (“key”); 
3    
4 //判斷 PlayerPrefs中是否存在這個key 
5 bool b = PlayerPrefs.HasKey(“key”);
責任編輯:冰凝兒
相關推薦

2012-12-24 08:46:50

iOSUnity3D

2012-12-24 08:40:12

2012-12-24 08:52:44

iOSUnity3D

2012-12-24 08:50:21

iOSUnity3D

2012-12-24 09:04:04

iOSUnity3D

2012-12-24 08:48:25

iOSUnity3D

2012-12-24 09:07:09

iOSUnity3D

2012-12-24 09:01:41

iOSUnity3D

2012-12-24 08:57:35

iOSUnity3D

2012-12-24 08:51:23

iOSUnity3D

2012-12-24 08:59:13

iOSUnity3D

2012-12-24 08:45:19

iOSUnity3D

2012-12-24 08:56:15

iOSUnity3D

2012-12-24 08:54:47

iOSUnity3D

2012-12-24 09:11:58

iOSUnity3D

2012-12-24 09:06:14

iOSUnity3D

2012-12-24 09:00:31

iOSUnity3D

2012-12-24 09:17:12

iOSUnity3D

2013-06-25 09:16:10

Unity3D
點贊
收藏

51CTO技術棧公眾號

小h片在线观看| 悠悠资源网久久精品| 懂色av一区二区三区| 国产熟人av一二三区| 99精品热视频只有精品10| 国产v综合ⅴ日韩v欧美大片| 六九午夜精品视频| 精品网站999www| 欧美日本高清| 婷婷综合五月天| 女人黄色片免费| 中文无字幕一区二区三区| 国产视频九色蝌蚪| 韩国欧美一区二区| 欧美日韩高清在线一区| 欧美视频在线观看| 亚洲最大av网| 亚洲精品成人影院| 成人精品在线观看| 成人在线电影在线观看视频| 午夜精品久久久99热福利| 欧美1区2区3| 国内精品视频久久| 牛牛影视久久网| 2019亚洲日韩新视频| 欧美日韩大片免费观看| 欧美激情a在线| 免费福利视频一区| 18久久久久久| 久久中文字幕av一区二区不卡| 成人黄色av网站| 好吊一区二区三区| 久久综合九色综合久99| 日韩和欧美一区二区| 做爰高潮hd色即是空| 成人高清视频免费观看| 午夜免费一区二区| 欧美寡妇性猛交xxx免费| 欧美亚洲国产一区在线观看网站 | 人妻激情另类乱人伦人妻 | 精品无码久久久久久久动漫| 亚洲一区二区三区四区五区午夜| 欧美日韩免费高清| 国产黄色91视频| 99精品视频播放| 亚洲综合一区二区精品导航| 蜜桃视频在线观看网站| 日韩欧美www| 日韩欧乱色一区二区三区在线 | 国产精品自拍一区| 欧美亚洲色图视频| 久久精子c满五个校花| 成人福利免费网站| 激情亚洲一区二区三区四区| 国产写真视频在线观看| 中文日韩在线观看| 自拍偷拍欧美一区| 久久久国产精品一区二区三区| 精品一区二区三区欧美| 成人在线观看a| 在线亚洲人成电影网站色www| 国产福利电影在线播放| 98视频在线噜噜噜国产| 黄色在线成人| 成年人在线看片| 在线看一区二区| 欧美一级做a| caoporn国产精品免费公开| 国产成人免费视频精品含羞草妖精| 国产不卡视频| 国产婷婷色综合av蜜臀av| 亚洲丝袜啪啪| 自拍偷拍亚洲色图欧美| 一区二区日韩av| 偷拍中文亚洲欧美动漫| 国产精品久久久久久久久久新婚| 久久精品亚洲| 日本中文字幕电影| 中文字幕视频一区二区在线有码| 亚洲成人免费| 日韩av卡一卡二| 日韩精品在线观看视频| 久久在线免费| 男女私大尺度视频| 欧美日韩一区二区在线视频| 日本精品在线观看| 亚洲成人a**址| 亚洲黄色av一区| 国产一区二区主播在线| 国产亚洲精品久久飘花| 日本一区二区三区四区| 美女的胸无遮挡在线观看| 97人人模人人爽人人少妇| 久久久精品蜜桃| 亚洲免费福利| 久久一区免费| 午夜精品成人在线视频| 国产激情欧美| 亚洲视频小说| 欧美日韩二区三区| 精品亚洲成人| 国产超碰在线播放| 亚洲天堂av在线免费观看| 石原莉奈在线亚洲二区| 你懂的免费在线观看视频网站| 97精品一区二区三区| 成人精品国产免费网站| 忘忧草在线日韩www影院| 欧美午夜精品理论片a级大开眼界| 狠狠操狠狠色综合网| 国产欧美一区二区三区精品观看 | 91麻豆精品国产91久久久久推荐资源| 国产精品激情av电影在线观看| 四虎永久在线精品无码视频| 亚洲久本草在线中文字幕| 亚洲福利二区| 日本在线视频不卡| thepron国产精品| 久草在线新资源| 一区二区三区动漫| 洋洋成人永久网站入口| 亚洲人成无码www久久久| 日韩精品极品在线观看播放免费视频| 欧美成人一区二免费视频软件| 神马午夜dy888| 91av在线播放视频| 国产精品超碰97尤物18| 国产精品调教| 亚洲最大成人在线观看| 久久91亚洲人成电影网站| 91在线国内视频| 日韩电影大全网站| 欧美日韩午夜爽爽| 国产一区二区欧美日韩| 成人午夜又粗又硬又大| 国产精品久一| 污视频网站观看| 欧美中文字幕在线视频| 国产欧美日韩三级| 牛牛精品成人免费视频| 99视频资源网| 国产ts人妖一区二区三区| 亚洲高清免费视频| 久久久久免费av| 国产原创精品视频| 一本久道久久综合狠狠爱亚洲精品| 一本大道久久a久久综合婷婷 | 青青草久久爱| 粉嫩tv在线播放| 蜜桃av色综合| 91国偷自产一区二区三区的观看方式| 神马午夜伦理不卡| 久久青青草综合| 亚洲18色成人| av有声小说一区二区三区| 2021国产视频| 精品国产自在精品国产浪潮| 国产精品美日韩| 婷婷丁香综合| 成人黄色网址| 久久久国内精品| 久久久久久久久中文字幕| 中文字幕一区二区三区四区| 日韩精品欧美| 黄网站免费在线播放| 国产黄色激情视频| 理论片在线不卡免费观看| 自拍偷拍亚洲欧美日韩| 欧美日韩亚洲一区| 女厕盗摄一区二区三区| 日韩欧美黄色大片| 国产成+人+综合+亚洲欧美丁香花| 午夜精品aaa| 男男成人高潮片免费网站| 999久久久国产999久久久| 国产黄色影视| 国外成人在线视频网站| 尤物精品国产第一福利三区| 亚洲国产成人自拍| 亚洲视频福利| 伊人成综合网站| 羞羞小视频在线观看| 精品无人乱码一区二区三区的优势 | 午夜精品一区二区在线观看的 | 成人午夜电影久久影院| 欧美另类69xxxxx| gogo久久| 国产一级激情| 国产日韩视频在线播放| 国产精品久久久久99| 日韩成人av一区| 亚洲国产精品精华液网站| 国产一区二区不卡| 日韩在线理论| 久久天天久久| 91精彩视频在线观看| 国产视频1区2区3区| 午夜欧美性电影| 国产精品久久久999| 日韩在线激情视频|