38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using Cysharp.Threading.Tasks;
|
||
|
namespace BITKit
|
||
|
{
|
||
|
public class MultiplexOutput : Multiplex
|
||
|
{
|
||
|
public List<Provider> providers = new();
|
||
|
public string outputType = typeof(MultiplexOutput).Name;
|
||
|
public override async void Set<T>(T t)
|
||
|
{
|
||
|
if (active)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
await UniTask.SwitchToTaskPool();
|
||
|
foreach (var genericProvider in providers)
|
||
|
{
|
||
|
if (genericProvider is IProvider<T> provider)
|
||
|
{
|
||
|
provider.Set(t);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
genericProvider.Set(t);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception e)
|
||
|
{
|
||
|
BIT4Log.LogException(e);
|
||
|
}
|
||
|
outputType = typeof(T).Name;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|