、Unity.asset教程一之自定义资源.asset配置数据。在游戏开发中水貔藻疽,经常会用到一些配置文件保存一些数据,然后项目蠕蒜唏怜运行中读取这些配置文件中的数据在游戏中使用。 如:配置血条:根据角色类型(人物、动物、怪物等)配置不同的血条,包括血条大小,血条名或血条预设,血条颜色等一些简单数据。 如:配置子弹:子弹类型(真子弹、假子弹、追踪子弹等),子弹速度,伤害数值,子弹关联的特效等。 诸如此类的配置很多种,可创建一个可序列化的类存储数据,或者创建XML、JSON文件保存数据,创建Excel文件,创建TXT文件,皆可完成需求,灵活使用这些方法保存配置数据。 在此介绍一下使用可序列化类保存配置,并且将可序列化类保存成Unity的自定义文件(.asset),然后配置自定义文件(.asset)。本节介绍一子弹为例自定义资源.asset配置数据的简单案例,具体如下图
工具/原料
Unity
.asset
一、知识要点
1、.asset:1)优点: 可以保存数据类型多样(int、string、VectorGame蚪嬷吃败Object、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”脚本,双击脚本或者右键“OpenC#Project”,打开脚本,具体如下图
4、在“Bullet”脚本上编辑代码,具体的代码和代码说明如下图
5、“Bullet”脚本具体内容如下:
6、脚本编译正确之后,回到Unity界面,在工程中再新建一个文件夹“Editor”,在“Editor”文件夹下新建一个脚本“CreateAsset”,双击脚本或者右键“OpenC#Project”,打开脚本具体如下图
7、在“CreateAsset”脚本上编写代码,具体的代码和代码说明如下图
8、“CreateAsset”耔阵式肥脚本的具体内容如下:usingUnityEngine;usingSystem.Collections;usingUnityE颊俄岿髭ditor;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配置数据》讲解结束,谢谢