#基于VR环境下的手指识别键盘输入# 输入文本的保存和查看

完成了能够实时显示在屏幕上的弹幕,接下去就要完成的是输入文本的保存和查看。使用者利用手指识别后的点做指引,完成在无法看到键盘的环境下的输入之后,可以对自己输入的文本进行创建,保存和查看。

完成的简易demo如下:


在inputfield中,使用者可以进行文本的输入。输入文本之后,点击写入文本文件,可以在目录下创建一个txt文件,并将inputfield中的内容保存到txt文件中去。

	public void WriteFileByLine(string file_path,string file_name,string str_info)  
	{  
		page.gameObject.SetActive (false);
		StreamWriter sw;  
		if(!File.Exists(file_path+"//"+file_name))  
		{  
			sw=File.CreateText(file_path+"//"+file_name);//创建一个用于写入 UTF-8 编码的文本  
			Debug.Log("文件创建成功!");  
		}  
		else  
		{  
			sw=File.AppendText(file_path+"//"+file_name);//打开现有 UTF-8 编码文本文件以进行读取  
		}  
		sw.WriteLine ("");
		Debug.Log ("文件输入成功!");
		sw.WriteLine(str_info);//以行为单位写入字符串  
		sw.Close ();  
		sw.Dispose ();//文件流释放  
	}  

利用清空文件内容,可以把对应的txt文件中的文字内容清空,方便下一次输入。

	public void deleteAllContent(string file_path,string file_name){
		page.gameObject.SetActive (false);
		Debug.Log ("文件已清除");
		File.Open(file_path+"//"+file_name, FileMode.Create);
	}

利用读入文件内容,可以在场景中实时查看之前输入的内容,为了增加真实感,添加了一些羊皮纸的材质,让阅读的过程显得更加自然。以List的方式读取txt中的文件,每一个List里的元素代表txt文件当中的一行,进行逐行输出即可。

	public List<string> ReadFileList(string file_path,string file_name){
		StreamReader sr;
		if (File.Exists (file_path + "//" + file_name)) {
			sr = File.OpenText (file_path + "//" + file_name);
		} else {
			Debug.Log ("Not find files");
			return null;
		}
		List<string> list = new List<string> ();
		string str;
		while ((str = sr.ReadLine ()) != null)
			list.Add (str);
		sr.Close ();
		sr.Dispose ();
		return list;
	}

进行测试的过程,先进行文本的写入:


当前目录下没有指定的txt文件,所以进行了创建和写入:


打开对应目录的txt文件可以发现文字已经被写入了:


然后进行实时地查看,点击读入按钮:



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页