本地资源_Asset

数据

using System.Collections.Generic;
using UnityEngine;

public enum Enum_Test
{
    A,
    B,
    C,
}

[System.Serializable]
public class Data_Test : ScriptableObject
{
    public Enum_Test state;
    [Range(0, 10)]
    public float value;
    public List<int> numbers;
    public List<string> infomations;
    public string description;
    //可挂载资源
    public GameObject obj;
}
View Code

处理

using System.IO;
using UnityEditor;
using UnityEngine;

public class AssetBuilder
{
    public static void CreateAsset<T>() where T : ScriptableObject
    {
        ScriptableObject data = ScriptableObject.CreateInstance<T>();

        LoadData(data);

        string path = Application.dataPath + "/Data";
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }

        path = string.Format("Assets/Data/{0}.asset", (typeof(T).ToString()));
        AssetDatabase.CreateAsset(data, path);
    }

    public static T LoadAsset<T>() where T : ScriptableObject
    {
        string name = typeof(T).ToString();
        string path = string.Format("Assets/Data/{0}.asset", name);
        T data = AssetDatabase.LoadAssetAtPath<T>(path);
        return data;
    }

    public static void LoadData(ScriptableObject data)
    {
        //可以去load表
        if (data.GetType() == typeof(Data_Test))
        {
            Data_Test dt = (Data_Test)data;
            dt.description = "测试";
        }
    }
}
View Code

测试

using UnityEngine;

public class LoadAssetData : MonoBehaviour
{
    void Start()
    {
        AssetBuilder.CreateAsset<Data_Test>();

        Data_Test dt = AssetBuilder.LoadAsset<Data_Test>();

        Debug.LogError(dt.description);
    }
}
View Code

转载于:https://www.cnblogs.com/Joke-crazy/p/9328601.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值