iFactory.Cutting.Unity/Assets/BITKit/Unity/Scripts/Config/ConfigProvider.cs

33 lines
667 B
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace BITKit
{
public interface IConfigProvider
{
string GetConfig(params object[] args);
void Configure(params object[] args);
}
[Serializable]
public sealed class ConfigProviders:IConfigProvider
{
[SerializeReference,SubclassSelector] private IConfigProvider[] providers;
public string GetConfig(params object[] args)
{
return string.Join("\n",providers.Select(x=>x.GetConfig(args)));
}
public void Configure(params object[] args)
{
foreach (var provider in providers)
{
provider.Configure(args);
}
}
}
}