public void LoadAsync <T>(string asset, OnLoaded <T> onLoaded) where T : UnityEngine.Object
        {
            if (string.IsNullOrEmpty(asset))
            {
                onLoaded(null);
            }

            if (loadMode == LoadMode.Original)
            {
                var request = OriginalResourceLoader.loadResourceAsync <T>(resourcePath, asset);
                keysToAdd.Add(new AsyncRequest(request), new LoadFinishCallback(onLoaded, LoadFinishCallback.Type.TypeT));
            }
            else if (loadMode == LoadMode.AssetBundle)
            {
                var request = bundleResourceLoader.LoadAssetAsync <T>(asset);
                keysToAdd.Add(new AsyncRequest(request), new LoadFinishCallback(onLoaded, LoadFinishCallback.Type.TypeT));
            }
#if UNITY_EDITOR
            else if (loadMode == LoadMode.Editor)
            {
                var result = UnityEditor.AssetDatabase.LoadAssetAtPath <T>(asset);
                onLoaded(result);
            }
#endif
        }