Пример #1
0
    public static IPromise PreloadAll()
    {
        var types           = GetTypes();
        var preloadPromises = types.Select(t =>
        {
            var argName = t.Name;
            if (t.IsSubclassOf(typeof(AddressableSingletonAsset)))
            {
                return(AddressableExtensions.LoadAsync <AddressableSingletonAsset>(argName));
            }
            else
            {
                return(ResourceExtensions.LoadAsync(argName));
            }
        });

        return(Promise.All(preloadPromises)
               .ThenDo <object[]>(assets =>
        {
            for (var i = 0; i < assets.Length; i++)
            {
                var singletonAsset = (SingletonAsset)assets[i];
                AssetDictionary.Add(types[i], singletonAsset);
            }
        }));
    }
Пример #2
0
    public static IPromise InstanceAsync <T>() where T : AddressableSingletonAsset
    {
        if (AssetDictionary.TryGetValue(typeof(T), out var asset))
        {
            return(Promise.Resolved((T)asset));
        }

        return(AddressableExtensions.LoadAsync <T>(typeof(T).Name));
    }