yyl
2026-03-26 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7
Main/Core/GameEngine/Launch/AssetCopyTask.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using Cysharp.Threading.Tasks;
using UnityEngine;
@@ -91,39 +92,95 @@
    private void AndroidCopyAsset()
    {
        switch (VersionConfig.Get().assetAccess)
        VersionConfig.GetAsync().ContinueWith(config =>
        {
            case InstalledAsset.FullAsset:
            case InstalledAsset.HalfAsset:
            case InstalledAsset.IngoreDownLoad:
                if (!SDKUtils.Instance.AssetCopyFinished)
                {
                    SDKUtils.Instance.CopyAsset();
                    done = false;
                    progress = 0f;
                }
                else
                {
                    done = true;
                }
                break;
            case InstalledAsset.NullAsset:
                done = true;
                break;
        }
    }
    private void IOSCopyAsset()
    {
        if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
        {
            switch (VersionConfig.Get().assetAccess)
            switch (config.assetAccess)
            {
                case InstalledAsset.FullAsset:
                case InstalledAsset.HalfAsset:
                case InstalledAsset.IngoreDownLoad:
                    if (!SDKUtils.Instance.AssetCopyFinished)
                    {
                        SDKUtils.Instance.CopyAsset();
                        done = false;
                        progress = 0f;
                    }
                    else
                    {
                        done = true;
                    }
                    break;
                case InstalledAsset.NullAsset:
                    done = true;
                    break;
            }
        }).Forget();
    }
    private void IOSCopyAsset()
    {
        if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
        {
            VersionConfig.GetAsync().ContinueWith(config =>
            {
                switch (config.assetAccess)
                {
                    case InstalledAsset.FullAsset:
                    case InstalledAsset.HalfAsset:
                    case InstalledAsset.IngoreDownLoad:
                        if (!SDKUtils.Instance.AssetCopyFinished)
                        {
                            copyTasks = new List<FileInfo>();
                            FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, copyTasks);
                            for (var i = copyTasks.Count - 1; i >= 0; i--)
                            {
                                var fileInfo = copyTasks[i];
                                var destPath = fileInfo.FullName.Replace(ResourcesPath.Instance.StreamingAssetPath, ResourcesPath.Instance.ExternalStorePath);
                                if (File.Exists(destPath))
                                {
                                    copyTasks.RemoveAt(i);
                                }
                            }
                            completedCount = 0;
                            totalCount = copyTasks.Count;
                        }
                        if (totalCount > 0)
                        {
                            done = false;
                            progress = 0f;
                        }
                        else
                        {
                            done = true;
                        }
                        break;
                    case InstalledAsset.NullAsset:
                        done = true;
                        break;
                }
            }).Forget();
        }
        else
        {
            done = true;
        }
    }
    private void StandaloneCopyAsset()
    {
        if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
        {
            VersionConfig.GetAsync().ContinueWith(config =>
            {
                switch (config.assetAccess)
                {
                    case InstalledAsset.FullAsset:
                    case InstalledAsset.HalfAsset:
                    case InstalledAsset.IngoreDownLoad:
                        copyTasks = new List<FileInfo>();
                        FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, copyTasks);
@@ -139,68 +196,23 @@
                        completedCount = 0;
                        totalCount = copyTasks.Count;
                    }
                    if (totalCount > 0)
                    {
                        done = false;
                        progress = 0f;
                    }
                    else
                    {
                        done = true;
                    }
                    break;
                case InstalledAsset.NullAsset:
                    done = true;
                    break;
            }
        }
        else
        {
            done = true;
        }
    }
    private void StandaloneCopyAsset()
    {
        if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
        {
            switch (VersionConfig.Get().assetAccess)
            {
                case InstalledAsset.FullAsset:
                case InstalledAsset.HalfAsset:
                case InstalledAsset.IngoreDownLoad:
                    copyTasks = new List<FileInfo>();
                    FileExtersion.GetAllDirectoryFileInfos(ResourcesPath.Instance.StreamingAssetPath, copyTasks);
                    for (var i = copyTasks.Count - 1; i >= 0; i--)
                    {
                        var fileInfo = copyTasks[i];
                        var destPath = fileInfo.FullName.Replace(ResourcesPath.Instance.StreamingAssetPath, ResourcesPath.Instance.ExternalStorePath);
                        if (File.Exists(destPath))
                        if (totalCount > 0)
                        {
                            copyTasks.RemoveAt(i);
                            done = false;
                            progress = 0f;
                        }
                    }
                    completedCount = 0;
                    totalCount = copyTasks.Count;
                    if (totalCount > 0)
                    {
                        done = false;
                        progress = 0f;
                    }
                    else
                    {
                        else
                        {
                            done = true;
                        }
                        break;
                    case InstalledAsset.NullAsset:
                        done = true;
                    }
                    break;
                case InstalledAsset.NullAsset:
                    done = true;
                    break;
            }
                        break;
                }
            }).Forget();
        }
        else
        {
@@ -260,7 +272,10 @@
    private void IOSProcessCopyComplete()
    {
        LocalSave.SetString("AssetCopyCompleted_IOSorStandalone", VersionConfig.Get().version);
        VersionConfig.GetAsync().ContinueWith(config =>
        {
            LocalSave.SetString("AssetCopyCompleted_IOSorStandalone", config.version);
        }).Forget();
    }
}