Skip to content

Commit 09a05c4

Browse files
committed
增加热更新状态
1 parent 1e4e78d commit 09a05c4

File tree

4 files changed

+91
-3
lines changed

4 files changed

+91
-3
lines changed

Assembly-CSharp.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
<Compile Include="Assets\Game\Scripts\Resource\EditorResourceHelper.cs" />
6363
<Compile Include="Assets\Game\Scripts\State\CheckResourceState.cs" />
6464
<Compile Include="Assets\Game\Scripts\State\LaunchGameState.cs" />
65+
<Compile Include="Assets\Game\Scripts\State\LoadHotfixState.cs" />
6566
<Compile Include="Assets\Game\Scripts\State\LoadResourceState.cs" />
6667
<Compile Include="Assets\Game\Scripts\State\PreloadState.cs" />
6768
<Compile Include="Assets\GameFramework\Base\GameFrameworkMode.cs" />
@@ -101,6 +102,12 @@
101102
<Compile Include="Assets\GameFramework\Utility\Encipherer.cs" />
102103
<Compile Include="Assets\GameFramework\Utility\IdGenerater.cs" />
103104
<Compile Include="Assets\GameFramework\Utility\UnityEventUtility.cs" />
105+
<Compile Include="Assets\GameFramework\WebRequest\IWebDownloadHelper.cs" />
106+
<Compile Include="Assets\GameFramework\WebRequest\IWebRequestHelper.cs" />
107+
<Compile Include="Assets\GameFramework\WebRequest\WebDownloadMonoHelper.cs" />
108+
<Compile Include="Assets\GameFramework\WebRequest\WebRequestEventArgs.cs" />
109+
<Compile Include="Assets\GameFramework\WebRequest\WebRequestManager.cs" />
110+
<Compile Include="Assets\GameFramework\WebRequest\WebRquestMonoHelper.cs" />
104111
<Compile Include="Assets\ThirdParty\ILRuntime\CLR\Method\CLRMethod.cs" />
105112
<Compile Include="Assets\ThirdParty\ILRuntime\CLR\Method\ExceptionHandler.cs" />
106113
<Compile Include="Assets\ThirdParty\ILRuntime\CLR\Method\ILMethod.cs" />

Assets/Game/Scripts/Base/GameMode.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class GameMode : MonoBehaviour
2222
public static ResourceManager Resource;
2323
public static UIManager UI;
2424
public static WebRequestManager WebRequest;
25+
public static HotFixManager HotFix;
2526

2627
/// <summary>
2728
/// 当前程序集
@@ -63,10 +64,11 @@ IEnumerator Start()
6364
Resource = GameFrameworkMode.GetModule<ResourceManager>();
6465
UI = GameFrameworkMode.GetModule<UIManager>();
6566
WebRequest = GameFrameworkMode.GetModule<WebRequestManager>();
66-
#endregion
67+
HotFix = GameFrameworkMode.GetModule<HotFixManager>();
68+
#endregion
6769

68-
#region resource
69-
Resource.ResUpdateType = ResUpdateType;
70+
#region resource
71+
Resource.ResUpdateType = ResUpdateType;
7072
Resource.ResUpdatePath = ResUpdatePath;
7173
Resource.LocalPathType = LocalPathType;
7274

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
//-----------------------------------------------------------------------
2+
// <copyright>
3+
// Copyright (c) 2018 Zhang Yang. All rights reserved.
4+
// </copyright>
5+
// <describe> #加载热更新状态# </describe>
6+
// <email> [email protected] </email>
7+
// <time> #2018年7月15日 16点47分# </time>
8+
//-----------------------------------------------------------------------
9+
10+
using System.Collections;
11+
using System.Collections.Generic;
12+
using UnityEngine;
13+
14+
namespace GameFramework.Taurus
15+
{
16+
[GameState]
17+
public class LoadHotfixState : GameState
18+
{
19+
//热更新的资源
20+
private string _dllPath = "Assets/Game/HotFix/HotFix.dll.bytes";
21+
private string _pdbPath = "Assets/Game/HotFix/HotFix.pdb.bytes";
22+
23+
#region 重写函数
24+
public override void OnEnter(params object[] parameters)
25+
{
26+
base.OnEnter(parameters);
27+
//加载热更新
28+
LoadHotFix();
29+
}
30+
31+
public override void OnExit()
32+
{
33+
base.OnExit();
34+
}
35+
36+
public override void OnFixedUpdate()
37+
{
38+
base.OnFixedUpdate();
39+
}
40+
41+
public override void OnInit()
42+
{
43+
base.OnInit();
44+
}
45+
46+
public override void OnUpdate()
47+
{
48+
base.OnUpdate();
49+
}
50+
#endregion
51+
52+
#region 内部函数
53+
54+
private void LoadHotFix()
55+
{
56+
byte[] dllDatas = GameMode.Resource.LoadAsset<TextAsset>(_dllPath).bytes;
57+
byte[] pdbDatas = null;
58+
#if UNITY_EDITOR
59+
pdbDatas = GameMode.Resource.LoadAsset<TextAsset>(_pdbPath).bytes;
60+
GameMode.HotFix.Appdomain.DebugService.StartDebugService(56000);
61+
#endif
62+
GameMode.HotFix.LoadHotfixAssembly(dllDatas, pdbDatas);
63+
}
64+
65+
#endregion
66+
67+
}
68+
}

Assets/Game/Scripts/State/LoadHotfixState.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)