Unity .asset教程一之自定义资源.asset配置数据
1、.asset:
1)优点:可以保存数据类型多样(int、string、Vector3、GameObject、Transform、Texture等)如关联预设,关联图片等资源数据,而XML、TXT等只能保存(int、string、Vector3 等基本数据类型)。
2)缺点:如果配置数据中保存了(GameObject、Texture)等资源数据,当关联的资源被删除时,配置数据将丢失,需要重新将新的资源再次关联到配置数据上
2、ScriptableObject优点大概有三点:
1)把数据真正存储在了资源文件中,可以像其他资源那样管理它,例如退出运行也一样会保持修改
2)可以在项目之间很好的复用,不用再制作Prefab那样导入导出
3)在概念上有很好的fit,强迫症患者的福音
1、打开Unity,新建一个空工程,具体如下图
2、在工程中,新建一个文件夹“Scripts”,在“Scripts”文件夹下新建一个脚本“Bullet ”,具体如下图
3、选中“Bullet”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图
4、在“Bullet”脚本上编辑代码,具体的代码和代码说明如下图
5、“Bullet”脚本具体内容如下:
6、脚本编译正确之后,回到Unity界面,在工程中再新建一个文件夹“Editor”,在“Editor”文件夹下新建一个脚本“CreateAsset ”,双击脚本或者右键“Open C# Project”,打开脚本具体如下图
7、在“CreateAsset”脚本上编写代码,具体的代码和代码说明如下图
8、“CreateAsset”脚本的具体内容如下:
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
public class CreateAsset : Editor {
// 在菜单栏创建功能项
[MenuItem("CreateAsset/Asset")]
static void Create()
{ // 实例化类 Bullet ScriptableObject bullet = ScriptableObject.CreateInstance<Bullet>();
// 如果实例化 Bullet 类为空,返回
if (!bullet)
{
Debug.LogWarning("Bullet not found");
return;
}
// 自定义资源保存路径
string path = Application.dataPath + "/BulletAeeet";
// 如果项目总不包含该路径,创建一个
if (!Directory.Exists(path))
{ Directory.CreateDirectory(path);
}
//将类名 Bullet 转换为字符串
//拼接保存自定义资源(.asset) 路径
path = string.Format("Assets/BulletAeeet/{0}.asset", (typeof(Bullet).ToString()));
// 生成自定义资源到指定路径
AssetDatabase.CreateAsset(bullet, path);
}
}
9、脚本编译正确之后,回到Unity界面,在顶部菜单栏找到“CreateAsset”-“Asset”,点击“Asset”,具体如下图
10、点击“Asset”之后,工程中就会生成对应文件,具体如下图
11、到此,《Unity .asset教程一之自定义资源.asset配置数据》讲解结束,谢谢