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