protected override async Task <IResource> GetResourceAsync(ResourcePath path)
        {
            ICacheable cacheable = null;

            if (m_Resources.TryGetValue(path.Path, out cacheable))
            {
                return((IResource)(cacheable));
            }
            else
            {
                LogService.Logger.Log(LogService.LogType.LT_DEBUG, "ResService Cache Missed");
                IResource        newRes  = null;
                IResourceCreator creator = GetCreator(path.GetExt());

                if (creator == null)
                {
                    newRes = new UnityResource <UnityEngine.Object>();
                }
                else
                {
                    newRes = creator.Create();
                }
                if (newRes != null)
                {
                    await newRes.LoadAsync(path);

                    newRes = (IResource)(m_Resources.GetOrAdd(path.Path, newRes));
                }
                return(newRes);
            }
        }