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);
            }
        }