、Unity .asset教程一之自定义资源.asset配置数据。在游戏开发中,经常会用到一些配置文件保存一些数据,然后项目运行中读取这些配置文件中的数据在游戏中使用。 如:配置血条:根据角色类型(人物、动物、怪物等)配置不同的血条,包括血条大小,血条名或血条预设,血条颜色等一些简单数据。 如:配置子弹:子弹类型(真子弹、假子弹、追踪子弹等),子弹速度,伤害数值,子弹关联的特效等。 诸如此类的配置很多种,可创建一个可序列化的类存储数据,或者创建 XML 、JSON 文件保存数据,创建 Excel 文件,创建 TXT 文件,皆可完成需求,灵活使用这些方法保存配置数据。 在此介绍一下使用可序列化类保存配置,并且将可序列化类保存成Unity的自定义文件(.asset),然后配置自定义文件(.asset)。本节介绍一子弹为例自定义资源.asset配置数据的简单案例,具体如下图
工具/原料
Unity
.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,强迫症患者的福音
二、.asset教程一之自定义资源.asset配置数据
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”脚本的具体内容如下:usingUnityEngine;usingSystem.Collections;usingUnityEditor;usingSystem.IO;publicclassCreateAsset:Editor{//在菜单栏创建功能项 [MenuItem("CreateAsset/Asset")] staticvoidCreate() {//实例化类BulletScriptableObjectbullet=ScriptableObject.CreateInstance<Bullet>();//如果实例化Bullet类为空,返回 if(!bullet) { Debug.LogWarning("Bulletnotfound"); return; }//自定义资源保存路径 stringpath=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配置数据》讲解结束,谢谢