void Awake() { Instance = this; var childResources = GetComponentsInChildren <Resource>(); ResourcesManagerDic = new Dictionary <string, ResourceManager>(childResources.Length); foreach (var resource in childResources) { if (!ResourcesManagerDic.ContainsKey(resource.GetName())) { ResourceManager manager = gameObject.AddComponent <ResourceManager>(); manager.ResourceName = resource.GetName(); ResourcesManagerDic[resource.GetName()] = manager; } ResourcesManagerDic[resource.GetName()].AddResource(resource); } }
void Awake() { if (Instance != null) { throw new UnityException("[ResourcesManager] Can have only one instance per scene."); } Instance = this; var childResources = GetComponentsInChildren <IResource>(); Resources = new Dictionary <string, IResourceManager>(childResources.Length); foreach (var resource in childResources) { if (!Resources.ContainsKey(resource.GetName())) { var manager = gameObject.AddComponent <ResourceManager>(); manager.ResourceName = resource.GetName(); Resources[resource.GetName()] = manager; } Resources[resource.GetName()].AddResource(resource); } }