예제 #1
0
        public static void WriteAssetPackConfig()
        {
            Debug.LogFormat("[{0}.{1}] target={2}", nameof(AssetPackBuilder), nameof(WriteAssetPackConfig), AssetPackBundleConfig.PATH);
            AssetPackBundleConfig config = GetOrCreateConfig();

            config.bundles = GetBundles(Addressables.BuildPath).Select(pack => pack.Name).ToArray();;
            EditorUtility.SetDirty(config);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }
예제 #2
0
        private static void WriteAssetPackConfig(IEnumerable <AssetPackBundle> packBundles)
        {
            AssetPackBundleConfig config = GetOrCreateConfig();

            config.packs = packBundles.Select(pack => pack.Name).ToArray();
            Debug.LogFormat("[{0}.{1}] path={2}", nameof(AssetPackBuilder), nameof(WriteAssetPackConfig), AssetPackBundleConfig.PATH);
            EditorUtility.SetDirty(config);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }
예제 #3
0
        private static AssetPackBundleConfig GetOrCreateConfig()
        {
            AssetPackBundleConfig config = AssetDatabase.LoadAssetAtPath <AssetPackBundleConfig>(AssetPackBundleConfig.PATH);

            if (config == null)
            {
                config = ScriptableObject.CreateInstance <AssetPackBundleConfig>();
                AssetDatabase.CreateAsset(config, AssetPackBundleConfig.PATH);
            }
            return(config);
        }
예제 #4
0
        private static AssetPackBundleConfig GetOrCreateConfig()
        {
            AssetPackBundleConfig config = AssetDatabase.LoadAssetAtPath <AssetPackBundleConfig>(AssetPackBundleConfig.PATH);

            if (config == null)
            {
                config = ScriptableObject.CreateInstance <AssetPackBundleConfig>();
                var basePath = Path.GetDirectoryName(AssetPackBundleConfig.PATH);
                if (!Directory.Exists(basePath))
                {
                    Directory.CreateDirectory(basePath);
                }
                AssetDatabase.CreateAsset(config, AssetPackBundleConfig.PATH);
            }
            return(config);
        }
        public bool TryBeginOperation(ProvideHandle provideHandle)
        {
            string path = provideHandle.ResourceManager.TransformInternalId(provideHandle.Location);

            if (!path.StartsWith(Addressables.RuntimePath) || !path.EndsWith(".bundle"))
            {
                return(false);
            }
            string assetPackName = Path.GetFileNameWithoutExtension(path);

            if (!AssetPackBundleConfig.IsAssetPackBundle(assetPackName))
            {
                return(false);
            }
            provideHandle.SetProgressCallback(PercentComplete);
            BeginOperation(assetPackName);
            return(true);
        }