近期部分经验问题整合

2021-05-29  本文已影响0人  昕昕守护者
写在前面

最近协作完成了一个地震波模拟的项目,其中涉及了许多从没接触过的知识点,在项目完成之际,做一篇经验汇总,总结一下学习到的东西。

项目内容有以下几点:
1.读取文件数据。(多个文件合成一个文件方便读取)
2.利用文件数据建立粒子系统。
3.根据数据改变粒子系统的位置并附带相应的颜色。
4.Button触发分段状态。
5.分段状态执行结束后回到原模型状态。
6.设置Slider动态调节粒子系统的偏移量的放大效果。
7.实时天气的获取。
8.根据实时获取到的天气更改场景特效。
9.DOTween实现UI的动画效果。
10.网页嵌入。

根据完成的难易程度,将会总结第一点,第二点,第三点,第七点,第九点的制作经验。

读文件数据

当文件数量有限时,可以直接读取文件(txt),在读取文件前,要将需要的文件放到Unity一个文件夹下,这个文件夹就作为读取文件时的路径。

Path.Combine(String,String);是一个将多个字符串组合成一个新路径的方法,官方介绍文档
例如:var path = Path.Combine(Application.streamingAssetsPath, BuildingName);
表示的路径是streamingAssets文件夹下的BuildingName文件夹,还不是文件,即路径为streamingAssets/BuildingName

读取文件路径.png

Directory.GetFiles(String,String);是返回指定目录中与指定的搜索模式匹配的文件的名称。官方介绍文档
例如:var files = Directory.GetFiles(path, "*.txt");
表示的是获取path这个目录下的txt文件,将文件存在files这个数组中。

文件路径下的文件.png

在获取到文件后,就可以读文件了,这里新建了一个ReadFile的方法,并在里面添加如下内容:

File.ReadAllLines(String);打开一个文本文件,将文件的所有行读入一个字符串数组,然后关闭该文件。
例如:var lines = File.ReadAllLines(path);
表示的是打开path下的文件,将文件的每一行数据读到lines这个数组中。

在完成读取文件操作后,就可以根据自己所读文件得到数据的结构和类型设计存储结构,并通过遍历获取到每个数据点的具体数据。

建立并改变数据点(粒子系统)的位置以及颜色

由于本项目用于模拟地震波的状态,所以每个数据点都有很多个时间点的位置信息。在开始改变位置和颜色之前,已经准备好了存有初始帧时每个点数据的Point[]一维数组和存有不同帧数时每个点数据的Offets[][]二维数组。

获取实时天气
DOTween实现动画效果
总结

这次的地震波项目虽然功能不是很复杂,但包含的知识非常多,暴露了我很多的盲区,C#的基础不好,导致在理解代码以及根据需求重新撰写代码时无从下手,在项目完成之后,我对项目内的很多方法知识的理解还是只停留在了表面,未来还有待我深入的学习。

上一篇 下一篇

猜你喜欢

热点阅读