unity3d游戏开发之游戏场景的切换与持久化简单数据的储存.doc_第1页
unity3d游戏开发之游戏场景的切换与持久化简单数据的储存.doc_第2页
unity3d游戏开发之游戏场景的切换与持久化简单数据的储存.doc_第3页
unity3d游戏开发之游戏场景的切换与持久化简单数据的储存.doc_第4页
unity3d游戏开发之游戏场景的切换与持久化简单数据的储存.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

持久化简单的数据储存在unity3D 中提供了一个简单有效的方法,如果之前的你做过android的开发你会发现在unity3d中持久化数据的储存和Android非常的想象。那么下面MOMO 将用一个简单有效的例子向大家介绍Unity3D中持久化数据。 出自狗刨学习网 首先我们须要熟悉一下Unity3D中的PlayerPrefs这个类。这个类中一共帮助我们封装了9个方法,用来数据的储存与读取。 举一个例子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:设置字体的文字编码 UnicodeASCLL 编码 Style:设置字体的风格,粗体 斜体 点击Cretae -GUISkin 创建一个GUI的皮肤,将 华文仿宋 拖动到箭头所指向的方向。发现下面存在很多GUI皮肤相关控件设置的,可以在这里设置每一个高级控件 游戏场景在游戏制作中是一个非常重要的部分,因为任何一款游戏都是由若干的场景组成,Unity3D的游戏场景做的非常贴心。 创建2个游戏场景,一个是scene0 一个是scene1 ,本章的目标是在第一个游戏场景中保存一些基本游戏数据,然后切换到第二个场景中显示第一个场景中保存的数据,实现场景的切换已经数据的储存。 在scene0中创建一个c# 脚本名称为Scene0Main.cs 将它绑定在摄像头中。 Scene0Main.cs1. using UnityEngine;2. using System.Collections;3. 4. public class Scene0Main : MonoBehaviour 5. 6. /储存数据的显示7. public string testStr;8. public string testInt;9. public string testFloat;10. 11. /GUI皮肤 为上面我们添加的皮肤12. /在外面用鼠标拖动上为它赋值13. public GUISkin fontSkin;14. /显示的图片15. public Texture Imagetexture;16. 17. / Use this for initialization18. 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 frame27. void Update () 28. 29. 30. 31. void OnGUI() 32. 33. /将GUI的皮肤设置为我们创建的皮肤34. GUI.skin = fontSkin;35. 36. /贴上图片37. GUI.DrawTexture(new Rect(Screen.width - Imagetexture.width) 1, 10, 120, 120), Imagetexture);38. 39. /添加输入框让用户输入信息,这里面我没有捕获异常,因为用户有可能输入一个不合法的数值40. testStr = GUI.TextField (new Rect(10, 200, 200, 50), testStr, 50);41. testInt = GUI.TextField (new Rect(10, 250, 200, 50), testInt, 50);42. testFloat = GUI.TextField (new Rect(10, 300, 200, 50), testFloat, 50);43. 44. /点击按钮保存所有数据45. if (GUI.Button(new Rect(220, 200, 150, 100), commit all)46. 47. 48. PlayerPrefs.SetString(testStr, testStr);49. PlayerPrefs.SetInt(testInt, int.Parse(testInt);50. PlayerPrefs.SetFloat(testFloat, float.Parse(testFloat);51. /切换场景到scene152. Application.LoadLevel(scene1);53. 54. 55. 56. 复制代码 Scene1Main.cs1. using UnityEngine;2. using System.Collections;3. 4. public class scene1Main : MonoBehaviour 5. 6. public string testStr;7. public string testInt;8. public string testFloat;9. 10. public GUISkin fontSkin;11. public Texture Imagetexture;12. 13. / Use this for initialization14. 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. void OnGUI() 22. GUI.skin = fontSkin;23. 24. GUI.DrawTexture(new Rect(Screen.width - Imagetexture.width) 1, 10, 120, 120), Imagetexture);25. 26. /显示label27. GUI.Label(new Rect(10,150,300,50),testStr = + testStr);28. GUI.Label(new Rect(10,200,300,50),testInt = + testInt);29. GUI.Label(new Rect(10,250,300,50),testFloat = + testFloat);30. 31. if (GUI.Button(new Rect(220, 200, 150, 100), clean all)32. 33. /删除所有键值34. PlayerPrefs.DeleteAll();35. / 返回场景036. Application.LoadLevel(scene0);37. 38. 39. if (GUI.Button(new Rect(220, 320, 150, 100), only return)40. 41. / 返回场景042. Application.LoadLevel(scene0);43. 44. 45. 复制代码 File - Build Settings 点击Add Current添加场景,这一步很重要,如果不添加的话在代码中切换场景会抛异常,盆友们还得注意一下 build and run 导出运行项目,如下图所示我分别输入string int float 三种类型的数据,然后点击commit all ,将所有数据全部保存下来,游戏场景切换到scene1场景中。 换到scene1中可以正常的显示scene0中储存的数值,点击clean all 将清空储存的所有信息后返回场景scene0,点击only return 直接返回场景scene0。 1. /删除 PlayerPrefs 中某一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论