mirror of https://github.com/tuyoogame/YooAsset
parent
2aa2a0ac3a
commit
fb8720edd3
|
@ -3,6 +3,7 @@ using UnityEngine;
|
|||
using UnityEngine.Networking;
|
||||
using YooAsset;
|
||||
using TTSDK;
|
||||
using WeChatWASM;
|
||||
|
||||
internal class TTFSLoadBundleOperation : FSLoadBundleOperation
|
||||
{
|
||||
|
@ -49,7 +50,22 @@ internal class TTFSLoadBundleOperation : FSLoadBundleOperation
|
|||
|
||||
if (CheckRequestResult())
|
||||
{
|
||||
var assetBundle = (_webRequest.downloadHandler as DownloadHandlerTTAssetBundle).assetBundle;
|
||||
if (_bundle.Encrypted && _fileSystem.DecryptionServices == null)
|
||||
{
|
||||
_steps = ESteps.Done;
|
||||
Status = EOperationStatus.Failed;
|
||||
Error = $"The {nameof(IDecryptionServices)} is null !";
|
||||
YooLogger.Error(Error);
|
||||
return;
|
||||
}
|
||||
|
||||
AssetBundle assetBundle;
|
||||
var downloadHanlder = _webRequest.downloadHandler as DownloadHandlerTTAssetBundle;
|
||||
if (_bundle.Encrypted)
|
||||
assetBundle = _fileSystem.LoadEncryptedAssetBundle(downloadHanlder.data);
|
||||
else
|
||||
assetBundle = downloadHanlder.assetBundle;
|
||||
|
||||
if (assetBundle == null)
|
||||
{
|
||||
_steps = ESteps.Done;
|
||||
|
|
|
@ -8,11 +8,20 @@ using System;
|
|||
|
||||
public static class TiktokFileSystemCreater
|
||||
{
|
||||
public static FileSystemParameters CreateByteGameFileSystemParameters(IRemoteServices remoteServices, string packageRoot)
|
||||
public static FileSystemParameters CreateByteGameFileSystemParameters(string packageRoot, IRemoteServices remoteServices)
|
||||
{
|
||||
string fileSystemClass = $"{nameof(TiktokFileSystem)},YooAsset.RuntimeExtension";
|
||||
var fileSystemParams = new FileSystemParameters(fileSystemClass, packageRoot);
|
||||
fileSystemParams.AddParameter("REMOTE_SERVICES", remoteServices);
|
||||
fileSystemParams.AddParameter(FileSystemParametersDefine.REMOTE_SERVICES, remoteServices);
|
||||
return fileSystemParams;
|
||||
}
|
||||
|
||||
public static FileSystemParameters CreateByteGameFileSystemParameters(string packageRoot, IRemoteServices remoteServices, IWebDecryptionServices decryptionServices)
|
||||
{
|
||||
string fileSystemClass = $"{nameof(TiktokFileSystem)},YooAsset.RuntimeExtension";
|
||||
var fileSystemParams = new FileSystemParameters(fileSystemClass, packageRoot);
|
||||
fileSystemParams.AddParameter(FileSystemParametersDefine.REMOTE_SERVICES, remoteServices);
|
||||
fileSystemParams.AddParameter(FileSystemParametersDefine.DECRYPTION_SERVICES, decryptionServices);
|
||||
return fileSystemParams;
|
||||
}
|
||||
}
|
||||
|
@ -89,6 +98,11 @@ internal class TiktokFileSystem : IFileSystem
|
|||
/// 自定义参数:远程服务接口
|
||||
/// </summary>
|
||||
public IRemoteServices RemoteServices { private set; get; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// 自定义参数:解密方法类
|
||||
/// </summary>
|
||||
public IWebDecryptionServices DecryptionServices { private set; get; }
|
||||
#endregion
|
||||
|
||||
|
||||
|
@ -150,6 +164,10 @@ internal class TiktokFileSystem : IFileSystem
|
|||
{
|
||||
RemoteServices = (IRemoteServices)value;
|
||||
}
|
||||
else if (name == FileSystemParametersDefine.DECRYPTION_SERVICES)
|
||||
{
|
||||
DecryptionServices = (IWebDecryptionServices)value;
|
||||
}
|
||||
else
|
||||
{
|
||||
YooLogger.Warning($"Invalid parameter : {name}");
|
||||
|
@ -250,6 +268,14 @@ internal class TiktokFileSystem : IFileSystem
|
|||
}
|
||||
return filePath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载加密资源文件
|
||||
/// </summary>
|
||||
public AssetBundle LoadEncryptedAssetBundle(byte[] fileData)
|
||||
{
|
||||
return DecryptionServices.LoadAssetBundle(fileData);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
#endif
|
Loading…
Reference in New Issue