51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using AYellowpaper.SerializedCollections;
|
|
using UnityEngine;
|
|
|
|
namespace BITKit.GameSocket
|
|
{
|
|
public class UnitySocketService : MonoBehaviour,ISocketService
|
|
{
|
|
private readonly Dictionary<string, ISocketComponent> _sockets=new();
|
|
public void Initialize()
|
|
{
|
|
_sockets.Clear();
|
|
foreach (var x in GetComponentsInChildren<ISocketComponent>())
|
|
{
|
|
_sockets.Add(x.Name, x);
|
|
}
|
|
}
|
|
|
|
public IEnumerator<KeyValuePair<string, ISocketComponent>> GetEnumerator()
|
|
{
|
|
return _sockets.GetEnumerator();
|
|
}
|
|
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return _sockets.GetEnumerator();
|
|
}
|
|
|
|
public int Count => _sockets.Count;
|
|
|
|
public bool ContainsKey(string key)
|
|
{
|
|
return _sockets.ContainsKey(key);
|
|
}
|
|
|
|
public bool TryGetValue(string key, out ISocketComponent value)
|
|
{
|
|
return _sockets.TryGetValue(key, out value);
|
|
}
|
|
|
|
public ISocketComponent this[string key] => _sockets[key];
|
|
|
|
public IEnumerable<string> Keys => _sockets.Keys;
|
|
|
|
public IEnumerable<ISocketComponent> Values => _sockets.Values;
|
|
}
|
|
|
|
}
|