学习来源:https://blog.csdn.net/candycat1992/article/details/52181814
在没有.asset之前我们的配置文件通常用一个简短的json/txt之类的或者直接在场景里面填序列化的值,但是.asset大大方便了我们生成一些配置文件,可以填写不同环境的服务器地址啊之类的,交付给运维之后给个配置文件填写的方法就可以不管线上环境了~
用法很简单,直接继承ScriptableObject,然后使用CreateAssetMenu就可以创建:
using UnityEngine;
[CreateAssetMenu(menuName = "创建Config配置")]
public class Config : ScriptableObject
{
[Header("服务环境")]
public ServerEnvironment m_ServerEnvironment = ServerEnvironment.开发环境;
[Header("开发服务地址")]
public string m_DevelopmentServiceAddress;
[Header("测试服务地址")]
public string m_TestServiceAddress;
[Header("生产服务地址")]
public string m_ProductionServiceAddress;
}
public enum ServerEnvironment
{
开发环境,
测试环境,
生产环境
}
然后找个文件夹右击创建:

创建后:

创建完成后读取配置:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
Config config = Resources.Load<Config>("Data/Config");
Debug.Log(config.m_ServerEnvironment);
switch (config.m_ServerEnvironment)
{
case ServerEnvironment.开发环境:
Debug.Log("开发环境地址:" + config.m_DevelopmentServiceAddress);
break;
case ServerEnvironment.测试环境:
Debug.Log("测试环境地址:" + config.m_TestServiceAddress);
break;
case ServerEnvironment.生产环境:
Debug.Log("生产环境地址:" + config.m_ProductionServiceAddress);
break;
default: break;
}
}
}
当然了,需要改成Assetbudle加密再加载的也可以操作。
网友评论