Excal数据转化成Asset数据文件
我们知道,在Unity当中的文件都可以称之为Asset文件,在项目开发当中需要把数据读取来之后存放起来,而有的数据是不可以改变的,今天就来写一个demo处理一下这些数据,在这里就不写读取Excal数据的方法了,如果需要了解就百度一下,关于这样的帖子和文章有很多
首先我们需要一个类来“模仿”一下Excal数据,可以定义一下类:

using UnityEngine;
using System.Collections; /// <summary>
/// 数据类
/// </summary>
[System.Serializable]
public class ItemData
{ //换句话说就是每一行就是一个类
public string id;
public string name;
public int addAttack;
public int addHp;
public int addDefense;
}
因为一个Excal里面有很多行,也就是说有很多类,所以这一个类是满足不了我们的,我们需要吧数据读出来之后把数据放起来,在这里我用的是List。如下:
using UnityEngine;
using System.Collections;
using System.Collections.Generic; /// <summary>
/// 存放Asset数据
/// </summary>
public class ItemDataList : ScriptableObject
{
public List<ItemData> itemData; //表示一个Excal表格
}
紧接着就是生成数据了,如下,需要说明的是,此类事编辑器类,需要放在Editor里面,把下面的脚本放在Unity里面之后会在Unity的菜单栏里面出现一个Demo-CreateAsset,单击一下就可以生成Asset数据了,该数据是放在Resources,所以前提是需要有一个Resources文件,点击生成的文件就可以看到数据了
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor; /// <summary>
/// 把数据打包成为Asset文件
/// </summary>
public class CreateAssetData
{
[MenuItem("Demo/CreateAsset")]
static void CreateAsset()
{
ItemDataList list = ItemDataList.CreateInstance<ItemDataList>();
list.itemData = DataTest();
AssetDatabase.CreateAsset(list,"Assets/CreateAsset/Resources/ItemData.asset");
} public static List<ItemData> DataTest() //测试数据
{
List<ItemData> data = new List<ItemData>();
for (int i = ; i < ; i++)
{
ItemData d = new ItemData();
d.id = "" + i;
d.name = "" + i;
d.addHp = i;
d.addDefense = i*;
d.addAttack = i*;
data.Add(d);
}
return data;
}
}
最后就是用这些数据了,因为之前我是在Resources里面放着的,所以我是用Resources类来加载数据,如下,
using UnityEngine;
using System.Collections;
using System.Collections.Generic; /// <summary>
/// 加载数据
/// </summary>
public class AssetLoad : MonoBehaviour
{ [SerializeField]
private List<ItemData> itemData; void Awake()
{
StartCoroutine(LoadAssetData());
} IEnumerator LoadAssetData()
{
ItemDataList list = Resources.Load<ItemDataList>("ItemData");
itemData = list.itemData;
yield return null;
}
}
附:也可以把该数据打包成AssetBundle文件,然后用WWW类来加载,之后转化成为ItemDataList类型就可以拿到数据了。另外这个数据打成Asset文件之后就一定固定了,不能再改变了。
Excal数据转化成Asset数据文件的更多相关文章
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
- [数据科学] 从csv, xls文件中提取数据
在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...
- 如何通过倾斜摄影数据手动配置s3c索引文件?
如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...
- c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出
将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...
- 【转】将datatable数据转化成list
#region 将datatable数据转化成list public static List<T> ToList<T>(this DataTable dt) where T ...
- Node以数据块的形式读取文件
在Node中,http响应头信息中Transfer-Encoding默认是chunked. Transfer-Encoding:chunked Node天生的异步机制,让响应可以逐步产生. 这种发送数 ...
- 提取数据表保存为XML文件
//连接数据库 SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********&qu ...
- 【Android】数据存储-java IO流文件存储
1.数据持久化:将在内存中的瞬时数据保存在存储设备中.瞬时数据:设备关机数据丢失.持久化技术提供一种机制可以让数据在瞬时状态和持久状态之间转换. 2.Android中简单的三种存储方式:文件存储.Sh ...
- Python3+pyshark捕获数据包并保存为文件
一.直接使用wireshark捕获数据包并保存为文件 可以使用wireshark通过图形界面的操作来实现捕获数据包并保存为文件. wireshark默认捕获的数据包保存为临时文件,如果最后退出时不选择 ...
随机推荐
- 微信小程序 app.json 配置
我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包含了所有配置选项的简单配置app.json : { " ...
- SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
其他信息: V5.7.4.4 Can't find the System.Data.SQLite.dll more info : 混合模式程序集是针对"v2.0.50727"版的运 ...
- mode(思维,注意内存)
mode Time Limit:1000MS Memory Limit:1024KB 64bit IO Format:%lld & %llu Submit Status Pra ...
- ASP.NET打印EXCEl报表技术总结
序言:我们在做企业项目或者一些管理系统的时候往往会用到导出到excel报表这项功能,下面我介绍的是用windows自带的excel来打印 首先必须引入:Interop.Excel.dll.Intero ...
- zTouch-移动端触屏开发利器(zepto touch扩展)
* Zepto.js v1.0.1 touch extend (Zepto.js v1.0.1 的swipe touch扩展)js-处理手机移动端web触屏手势动作. Zepto.js v1.0.1版 ...
- android的color整理(一)
很全面的颜色收集方便以后使用. <!-- 白色 --> <color name="ivory">#fffff0</color> <!-- ...
- Android自定义UI的实现和应用
在Android项目开发中,不可避免的要遇到自定义的UI,用较好的体验去讨好UED妹子和交互设计师手下留情~几个迭代下来,遇到了不少这样的要求,有简单有复杂.最好的实现方案就是讲业务和UI隔离,封装成 ...
- xml、txt、config的一些基本用法
先来测试一下xml的读取好了创建了一个student.xml的文件 <?xml version="1.0" encoding="UTF-8"?> & ...
- Tomcat启动报ClassNotFoundException错误,解决
今天把一个Maven管理的web项目Update后,启动Tomcat(Eclipse中)系统报错.错误提示 java.lang.ClassNotFoundException: ,显示是spring的C ...
- CentOS快捷键总结
* 打开主菜单 = Alt + F1 * 运行 = Alt + F2 * 显示桌面 = Ctrl + Alt + d * 最小化当前窗口 = Alt + F9 * 最大化当前窗口 = Alt + F1 ...