asset 资源配置文件

 在游戏开发中,我们经常要对一些数据预先配置,一般可通过XML,Json配置. 还可以用Unity自带的.Asset资源配置文件配置数据,下面介绍一下如何灵活快速的创建.Asset文件并使用.

Asset文件可以直接配置如 GameObject、Sprite、AudioClip等高级的对象

直接上码:

1.

[CreateAssetMenu(fileName = "AssetTest",menuName = "__Asset/AssetTest")]
public sealed class AssetTest : ScriptableObject {

    public int age;
    public float height;
    public GameObject obj;
    public Sprite sprite;
    public AudioClip audioClip;

}

2.在Asset目录下创建Editor文件夹,创建脚本

public class AssetTestEditor : Editor {

    private const string ConfigDir = "Assets/Editor/Resources/Config";
    private const string AssetTest= "AssetTest";
    private const string FileNameFull = AssetTest+ ".asset";

    [MenuItem("Test/Create .asset")]
    public static void Create() {
        AssetDatabase.StartAssetEditing();
        AssetTest assetTest;
        assetTest = ScriptableObject.CreateInstance<AssetTest>();
        AssetDatabase.CreateAsset(assetTest, ConfigDir + "/" + FileNameFull );
        assetTest.age = 10;
        assetTest.height = 5.0f;

        EditorUtility.SetDirty(assetTest);

        //更新本地版本
        AssetDatabase.StopAssetEditing();
        AssetDatabase.SaveAssets();
    }

    
}

在菜单栏里Test/Create .asset

现在你就可以通过ConfigDir路径下找到你创建的.asset文件

在创建一个脚本用来测试,挂在场景的对象上

    AssetTest testConfig;
    string ConfigDir = "Assets/Editor/Resources/Config/";
    string ConfigFileName = "AssetTest.asset";
    // Use this for initialization
    void Start () {
        this.testConfig = AssetDatabase.LoadAssetAtPath<AssetTest>(ConfigDir + ConfigFileName);
        print("1:"+testConfig.age);
        this.testConfig.age = Random.Range(1,100);
        print("2:" + testConfig.age);
    }

这样每次运行就会age就会改变新的值,不用保存,里面的值直接被修改了

附:你也可以通过WWW从服务器上下载数据给本地.asset文件赋值

猜你喜欢

转载自blog.csdn.net/u012909508/article/details/84250904