Unity3D游戏开发之IOS Android支持中文与本地文件的读写

上传人:公**** 文档编号:512026598 上传时间:2023-04-11 格式:DOCX 页数:4 大小:45.26KB
返回 下载 相关 举报
Unity3D游戏开发之IOS Android支持中文与本地文件的读写_第1页
第1页 / 共4页
Unity3D游戏开发之IOS Android支持中文与本地文件的读写_第2页
第2页 / 共4页
Unity3D游戏开发之IOS Android支持中文与本地文件的读写_第3页
第3页 / 共4页
Unity3D游戏开发之IOS Android支持中文与本地文件的读写_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Unity3D游戏开发之IOS Android支持中文与本地文件的读写》由会员分享,可在线阅读,更多相关《Unity3D游戏开发之IOS Android支持中文与本地文件的读写(4页珍藏版)》请在金锄头文库上搜索。

1、Unity3D游戏开发之IOS Android支持中文与本地文件的读写几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写。当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原来是他文件的路径写错了。开发中往往一道很难的问题解开的时候发现原来真的非常的简单,哇咔咔。 对血条实现有哦兴趣的朋友可以看Unity3D研究之人物头顶名称与血条更新与绘制,那么本节我将书中的部分内容搬到博客中为大家讲解一下。废话我就不多说了咱直奔主题,创建Text.cs脚本,直接挂在摄像机中。代码中包括:创建文件、读取文件、删除文件。文

2、章出处【狗刨学习网】Text.cs using UnityEngine; using System.Collections; using System.IO; using System.Collections.Generic; using System; public class Text : MonoBehaviour /文本中每行的内容 ArrayList infoall; /皮肤资源,这里用于显示中文 public GUISkin skin; void Start () /删除文件 DeleteFile(Application.persistentDataPath,FileName.tx

3、t); /创建文件,共写入3次数据 CreateFile(Application.persistentDataPath,FileName.txt,宣雨松MOMO); CreateFile(Application.persistentDataPath,FileName.txt,宣雨松MOMO); CreateFile(Application.persistentDataPath ,FileName.txt,宣雨松MOMO); /得到文本中每一行的内容 infoall = LoadFile(Application.persistentDataPath,FileName.txt); /* * pat

4、h:文件创建目录 * name:文件的名称 *info:写入的内容 */ void CreateFile(string path,string name,string info) /文件流信息 StreamWriter sw; FileInfo t = new FileInfo(path+/+ name); if(!t.Exists) /如果此文件不存在则创建 sw = t.CreateText(); else /如果此文件存在则打开 sw = t.AppendText(); /以行的形式写入信息 sw.WriteLine(info); /关闭流 sw.Close(); /销毁流 sw.Dis

5、pose(); /* * path:读取文件的路径 * name:读取文件的名称 */ ArrayList LoadFile(string path,string name) /使用流的形式读取 StreamReader sr =null; try sr = File.OpenText(path+/+ name); catch(Exception e) /路径与名称未找到文件则直接返回空 return null; string line; ArrayList arrlist = new ArrayList(); while (line = sr.ReadLine() != null) /一行一

6、行的读取 /将每一行的内容存入数组链表容器中 arrlist.Add(line); /关闭流 sr.Close(); /销毁流 sr.Dispose(); /将数组链表容器返回 return arrlist; /* * path:删除文件的路径 * name:删除文件的名称 */ void DeleteFile(string path,string name) File.Delete(path+/+ name); void OnGUI() /用新的皮肤资源,显示中文 GUI.skin = skin; /读取文件中的所有内容 foreach(string str in infoall) /绘制在

7、屏幕当中,哇咔咔! GUILayout.Label(str); 代码中头文件需要注意一下,涉及到IO读取文件。创建文件、删除文件、读取文件的方法我也已经封装好,Start方法中为了避免上次保存文件的残留首先删除原来的文件,然后创建文件FileName.txt ,我们也可修改文件的类型的后缀名。这里我写的是.txt ,为了完整的让中文出现在IOS与Android中所以这里给文件中写的数据是”宣雨松MOMO”,最后在OnGUI中将读取文件的文本信息显示在屏幕中,脚本保存格式为UTF-16。 代码中我们保存文件的路径是Application.persistentDataPath。 如果你写的路径是

8、Application.dataPath在编辑器中是可以正常读取,但是在IOS与Android中是无法读取的,昨天问我的那个朋友就是因为这里路径写的有问题没能成功的写入文件。 Application.persistentDataPath路径就是将文件保存在手机的沙盒中,如果在编辑器中运行本程序文件将保存在Finder- 资源库-Caches-你的工程-保存的文件 。本例的路径就是 Finder-资源库- Caches - txt-FileName.txt。 OK 截至到这里,运行游戏后在编辑器中是可以正常的看到“宣雨松MOMO”出现在Game视图中,但是如果你编译在IOS或者Android上将

9、只显示”MOMO”,原因很简单”宣雨松”三个字无法在Unity默认字体中找到,所以无法显示。而默认字体只有字母和数字、字符。我们为了在移动平台中正常的显示中文,需要自制中文字体包。下面我们开始制作一个简单的字体包,mac机的话大家可以在 资源库 - fonts中 找一个.ttf的字体,或者在网络中下载一个.ttf字体。MOMO比较喜欢微软雅黑字体,大家如果也喜欢微软雅黑可以在后面下载这个工程的源码,嘿嘿。如下图所示, Project视图中的”yh”就是MOMO在网络中下载的微软雅黑字体。文章出处【狗刨学习网】 FontSize:字体的大小,这里我设置呈50,为了让大家在IPAD中能看的更清楚。 FontColor:字体颜色。 Character:这里选择Custom set,因为这里需要配置我们需要的字体。 CustomChars:这里输入需要制作的字体。Unity默认的字体包含数字符号字母,为了让移动设备支持中文,这里我输入”宣雨松”它将生成一个包含“宣雨松”的材质与贴图,也就是说将我们需要在移动设备中显示的任何字符串在这里配置一下就OK啦。 最后点击又小角的Apply按钮即可完成字体配置。 将字符赋值给创建的皮肤文件然后应用在程序当中即可。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 娱乐/时尚

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号