mirror of https://github.com/tuyoogame/YooAsset
update sapce shooter
parent
4fc0d06908
commit
16117b67f1
|
@ -33,7 +33,6 @@ internal class FsmInitializePackage : IStateNode
|
|||
{
|
||||
var playMode = (EPlayMode)_machine.GetBlackboardValue("PlayMode");
|
||||
var packageName = (string)_machine.GetBlackboardValue("PackageName");
|
||||
var rawFileSystem = (bool)_machine.GetBlackboardValue("RawFileSystem");
|
||||
|
||||
// 创建资源包裹类
|
||||
var package = YooAssets.TryGetPackage(packageName);
|
||||
|
@ -56,10 +55,7 @@ internal class FsmInitializePackage : IStateNode
|
|||
if (playMode == EPlayMode.OfflinePlayMode)
|
||||
{
|
||||
var createParameters = new OfflinePlayModeParameters();
|
||||
if (rawFileSystem)
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinRawFileSystemParameters();
|
||||
else
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
|
||||
initializationOperation = package.InitializeAsync(createParameters);
|
||||
}
|
||||
|
||||
|
@ -70,16 +66,8 @@ internal class FsmInitializePackage : IStateNode
|
|||
string fallbackHostServer = GetHostServerURL();
|
||||
IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
|
||||
var createParameters = new HostPlayModeParameters();
|
||||
if (rawFileSystem)
|
||||
{
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinRawFileSystemParameters();
|
||||
createParameters.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheRawFileSystemParameters(remoteServices);
|
||||
}
|
||||
else
|
||||
{
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
|
||||
createParameters.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices);
|
||||
}
|
||||
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
|
||||
createParameters.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices);
|
||||
initializationOperation = package.InitializeAsync(createParameters);
|
||||
}
|
||||
|
||||
|
@ -174,22 +162,26 @@ internal class FsmInitializePackage : IStateNode
|
|||
/// 同步方式获取解密的资源包对象
|
||||
/// 注意:加载流对象在资源包对象释放的时候会自动释放
|
||||
/// </summary>
|
||||
AssetBundle IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo, out Stream managedStream)
|
||||
DecryptResult IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo)
|
||||
{
|
||||
BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
managedStream = bundleStream;
|
||||
return AssetBundle.LoadFromStream(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
|
||||
DecryptResult decryptResult = new DecryptResult();
|
||||
decryptResult.ManagedStream = bundleStream;
|
||||
decryptResult.Result = AssetBundle.LoadFromStream(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
|
||||
return decryptResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步方式获取解密的资源包对象
|
||||
/// 注意:加载流对象在资源包对象释放的时候会自动释放
|
||||
/// </summary>
|
||||
AssetBundleCreateRequest IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo, out Stream managedStream)
|
||||
DecryptResult IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo)
|
||||
{
|
||||
BundleStream bundleStream = new BundleStream(fileInfo.FileLoadPath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
managedStream = bundleStream;
|
||||
return AssetBundle.LoadFromStreamAsync(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
|
||||
DecryptResult decryptResult = new DecryptResult();
|
||||
decryptResult.ManagedStream = bundleStream;
|
||||
decryptResult.CreateRequest = AssetBundle.LoadFromStreamAsync(bundleStream, fileInfo.FileLoadCRC, GetManagedReadBufferSize());
|
||||
return decryptResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -223,20 +215,24 @@ internal class FsmInitializePackage : IStateNode
|
|||
/// 同步方式获取解密的资源包对象
|
||||
/// 注意:加载流对象在资源包对象释放的时候会自动释放
|
||||
/// </summary>
|
||||
AssetBundle IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo, out Stream managedStream)
|
||||
DecryptResult IDecryptionServices.LoadAssetBundle(DecryptFileInfo fileInfo)
|
||||
{
|
||||
managedStream = null;
|
||||
return AssetBundle.LoadFromFile(fileInfo.FileLoadPath, fileInfo.FileLoadCRC, GetFileOffset());
|
||||
DecryptResult decryptResult = new DecryptResult();
|
||||
decryptResult.ManagedStream = null;
|
||||
decryptResult.Result = AssetBundle.LoadFromFile(fileInfo.FileLoadPath, fileInfo.FileLoadCRC, GetFileOffset());
|
||||
return decryptResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步方式获取解密的资源包对象
|
||||
/// 注意:加载流对象在资源包对象释放的时候会自动释放
|
||||
/// </summary>
|
||||
AssetBundleCreateRequest IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo, out Stream managedStream)
|
||||
DecryptResult IDecryptionServices.LoadAssetBundleAsync(DecryptFileInfo fileInfo)
|
||||
{
|
||||
managedStream = null;
|
||||
return AssetBundle.LoadFromFileAsync(fileInfo.FileLoadPath, fileInfo.FileLoadCRC, GetFileOffset());
|
||||
DecryptResult decryptResult = new DecryptResult();
|
||||
decryptResult.ManagedStream = null;
|
||||
decryptResult.CreateRequest = AssetBundle.LoadFromFileAsync(fileInfo.FileLoadPath, fileInfo.FileLoadCRC, GetFileOffset());
|
||||
return decryptResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -8,11 +8,15 @@ using UniFramework.Machine;
|
|||
/// </summary>
|
||||
internal class FsmUpdaterDone : IStateNode
|
||||
{
|
||||
private PatchOperation _owner;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_owner = machine.Owner as PatchOperation;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
_owner.SetFinish();
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
|
|
|
@ -17,10 +17,13 @@ public class PatchOperation : GameAsyncOperation
|
|||
|
||||
private readonly EventGroup _eventGroup = new EventGroup();
|
||||
private readonly StateMachine _machine;
|
||||
private readonly string _packageName;
|
||||
private ESteps _steps = ESteps.None;
|
||||
|
||||
public PatchOperation(string packageName, bool rawFileSystem, EPlayMode playMode)
|
||||
public PatchOperation(string packageName, EPlayMode playMode)
|
||||
{
|
||||
_packageName = packageName;
|
||||
|
||||
// 注册监听事件
|
||||
_eventGroup.AddListener<UserEventDefine.UserTryInitialize>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<UserEventDefine.UserBeginDownloadWebFiles>(OnHandleEventMessage);
|
||||
|
@ -41,7 +44,6 @@ public class PatchOperation : GameAsyncOperation
|
|||
|
||||
_machine.SetBlackboardValue("PackageName", packageName);
|
||||
_machine.SetBlackboardValue("PlayMode", playMode);
|
||||
_machine.SetBlackboardValue("RawFileSystem", rawFileSystem);
|
||||
}
|
||||
protected override void OnStart()
|
||||
{
|
||||
|
@ -56,18 +58,20 @@ public class PatchOperation : GameAsyncOperation
|
|||
if(_steps == ESteps.Update)
|
||||
{
|
||||
_machine.Update();
|
||||
if(_machine.CurrentNode == typeof(FsmUpdaterDone).FullName)
|
||||
{
|
||||
_eventGroup.RemoveAllListener();
|
||||
Status = EOperationStatus.Succeed;
|
||||
_steps = ESteps.Done;
|
||||
}
|
||||
}
|
||||
}
|
||||
protected override void OnAbort()
|
||||
{
|
||||
}
|
||||
|
||||
public void SetFinish()
|
||||
{
|
||||
_steps = ESteps.Done;
|
||||
_eventGroup.RemoveAllListener();
|
||||
Status = EOperationStatus.Succeed;
|
||||
Debug.Log($"Package {_packageName} patch done !");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接收事件
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in New Issue