Skip to content

Commit

Permalink
Updated Docs for v2.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
liiir1985 committed Oct 7, 2022
1 parent d17ba04 commit 67a58aa
Show file tree
Hide file tree
Showing 22 changed files with 168 additions and 37 deletions.
2 changes: 1 addition & 1 deletion ReadMe.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ILRuntime
==========
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Ourpalm/ILRuntime/blob/master/LICENSE.TXT)
[![release](https://img.shields.io/badge/release-v2.0.2-blue.svg)](https://github.com/Ourpalm/ILRuntime/releases)
[![release](https://img.shields.io/badge/release-v2.1.0-blue.svg)](https://github.com/Ourpalm/ILRuntime/releases)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/Ourpalm/ILRuntime/pulls)

![example workflow](https://github.com/Ourpalm/ILRuntime/actions/workflows/dotnet.yml/badge.svg)
Expand Down
2 changes: 1 addition & 1 deletion docs/public/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
5 changes: 4 additions & 1 deletion docs/public/v1/guide/FastQA.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down Expand Up @@ -189,6 +189,9 @@ <h2 id="编辑器内的常见问题"><a href="#编辑器内的常见问题" clas
<h3 id="运行出现报错ObjectDisposedException-Cannot-access-a-closed-Stream"><a href="#运行出现报错ObjectDisposedException-Cannot-access-a-closed-Stream" class="headerlink" title="运行出现报错ObjectDisposedException: Cannot access a closed Stream"></a>运行出现报错ObjectDisposedException: Cannot access a closed Stream</h3><blockquote>
<p>加载dll的流被关闭了。新版要求流不能关闭,也不能用using写法。新的用法请参见Demo示例</p>
</blockquote>
<h3 id="调试时提示ILRuntime-Debugger-version-mismatch-Expected-version-4-Actual-version-2"><a href="#调试时提示ILRuntime-Debugger-version-mismatch-Expected-version-4-Actual-version-2" class="headerlink" title="调试时提示ILRuntime Debugger version mismatch Expected version:4 Actual version:2"></a>调试时提示ILRuntime Debugger version mismatch Expected version:4 Actual version:2</h3><blockquote>
<p>所使用的调试插件和运行时不匹配,2.1.0运行时需要搭配VS和VS Code插件商店里的调试器进行调试,2.0.2及以前版本的运行时需要搭配随包发布的调试插件使用</p>
</blockquote>
<h3 id="运行时出现Cannot-find-Adaptor-for-xxxxxxxxx"><a href="#运行时出现Cannot-find-Adaptor-for-xxxxxxxxx" class="headerlink" title="运行时出现Cannot find Adaptor for: xxxxxxxxx"></a>运行时出现Cannot find Adaptor for: xxxxxxxxx</h3><blockquote>
<p>热更当中跨域继承了xxxxxxx类型,但是没有注册对应的适配器</p>
</blockquote>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/bind.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/contribution.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/cross-domain.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/delegate.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/il2cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
7 changes: 4 additions & 3 deletions docs/public/v1/guide/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down Expand Up @@ -172,7 +172,7 @@
</ul>
</section>
<article class="clearfix">
<h2 id="ILRuntime"><a href="#ILRuntime" class="headerlink" title="ILRuntime"></a>ILRuntime</h2><p><a href="https://github.com/Ourpalm/ILRuntime/blob/master/LICENSE.TXT" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license"></a> <a href="https://github.com/Ourpalm/ILRuntime/releases" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/release-v2.0.2-blue.svg" alt="release"></a> <a href="https://github.com/Ourpalm/ILRuntime/pulls" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/PRs-welcome-blue.svg" alt="PRs Welcome"></a></p>
<h2 id="ILRuntime"><a href="#ILRuntime" class="headerlink" title="ILRuntime"></a>ILRuntime</h2><p><a href="https://github.com/Ourpalm/ILRuntime/blob/master/LICENSE.TXT" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license"></a> <a href="https://github.com/Ourpalm/ILRuntime/releases" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/release-v2.1.0-blue.svg" alt="release"></a> <a href="https://github.com/Ourpalm/ILRuntime/pulls" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/PRs-welcome-blue.svg" alt="PRs Welcome"></a></p>
<p>ILRuntime项目为基于C#的平台(例如Unity)提供了一个<code>纯C#实现</code><code>快速</code><code>方便</code><code>可靠</code>的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新</p>
<h3 id="ILRuntime的优势"><a href="#ILRuntime的优势" class="headerlink" title="ILRuntime的优势"></a>ILRuntime的优势</h3><p>同市面上的其他热更方案相比,ILRuntime主要有以下优点:</p>
<ul>
Expand All @@ -182,7 +182,8 @@ <h3 id="ILRuntime的优势"><a href="#ILRuntime的优势" class="headerlink" tit
<li>选择性的CLR绑定使跨域调用更快速,绑定后跨域调用的性能能达到slua的2倍左右(从脚本调用GameObject之类的接口)</li>
<li>支持跨域继承</li>
<li>完整的泛型支持</li>
<li>拥有Visual Studio的调试插件,可以实现真机源码级调试。支持Visual Studio 2015 Update3 以及Visual Studio 2017和Visual Studio 2019</li>
<li>拥有Visual Studio的调试插件,可以实现真机源码级调试。支持Visual Studio 2015 Update3、Visual Studio 2017、Visual Studio 2019和Visual Studio 2022</li>
<li>支持VS Code源码级调试,支持Mac OSX</li>
<li>最新的2.0版引入的寄存器模式将数学运算性能进行了大幅优化</li>
</ul>
<h3 id="C-vs-Lua"><a href="#C-vs-Lua" class="headerlink" title="C# vs Lua"></a>C# vs Lua</h3><p>目前市面上主流的热更方案,主要分为Lua的实现和用C#的实现,两种实现方式各有各的优缺点。</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/litjson.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/performance-optimization.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/principle.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/redirection.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/reflection.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
2 changes: 1 addition & 1 deletion docs/public/v1/guide/register-vm.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down
27 changes: 19 additions & 8 deletions docs/public/v1/guide/tutorial.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<nav class="nav">
<div class="border">
<img src="/ILRuntime/public/images/logo.png" />
<button class="hiden-in-phone">V2.0.2</button>
<button class="hiden-in-phone">V2.1.0</button>
<button id="btn-menu" class="hiden-in-pc">菜单</button>
<ul class="nav-link hiden-in-phone">
<!--li>
Expand Down Expand Up @@ -220,20 +220,31 @@ <h3 id="开始使用"><a href="#开始使用" class="headerlink" title="开始
<figure class="highlight csharp"><table><tr><td class="code"><pre><span class="line">ILRuntime.Runtime.Enviorment.AppDomain appdomain;</span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">Start</span>(<span class="params"></span>)</span></span><br><span class="line"><span class="function"></span>&#123;</span><br><span class="line"> StartCoroutine(LoadILRuntime());</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function">IEnumerator <span class="title">LoadILRuntime</span>(<span class="params"></span>)</span></span><br><span class="line"><span class="function"></span>&#123;</span><br><span class="line"> appdomain = <span class="keyword">new</span> ILRuntime.Runtime.Enviorment.AppDomain();</span><br><span class="line"><span class="meta">#<span class="meta-keyword">if</span> UNITY_ANDROID</span></span><br><span class="line"> WWW www = <span class="keyword">new</span> WWW(Application.streamingAssetsPath + <span class="string">"/Hotfix.dll"</span>);</span><br><span class="line"><span class="meta">#<span class="meta-keyword">else</span></span></span><br><span class="line"> WWW www = <span class="keyword">new</span> WWW(<span class="string">"file:///"</span> + Application.streamingAssetsPath + <span class="string">"/Hotfix.dll"</span>);</span><br><span class="line"><span class="meta">#<span class="meta-keyword">endif</span></span></span><br><span class="line"> <span class="keyword">while</span> (!www.isDone)</span><br><span class="line"> <span class="keyword">yield</span> <span class="keyword">return</span> <span class="literal">null</span>;</span><br><span class="line"> <span class="keyword">if</span> (!<span class="keyword">string</span>.IsNullOrEmpty(www.error))</span><br><span class="line"> Debug.LogError(www.error);</span><br><span class="line"> <span class="keyword">byte</span>[] dll = www.bytes;</span><br><span class="line"> www.Dispose();</span><br><span class="line"><span class="meta">#<span class="meta-keyword">if</span> UNITY_ANDROID</span></span><br><span class="line"> www = <span class="keyword">new</span> WWW(Application.streamingAssetsPath + <span class="string">"/Hotfix.pdb"</span>);</span><br><span class="line"><span class="meta">#<span class="meta-keyword">else</span></span></span><br><span class="line"> www = <span class="keyword">new</span> WWW(<span class="string">"file:///"</span> + Application.streamingAssetsPath + <span class="string">"/Hotfix.pdb"</span>);</span><br><span class="line"><span class="meta">#<span class="meta-keyword">endif</span></span></span><br><span class="line"> <span class="keyword">while</span> (!www.isDone)</span><br><span class="line"> <span class="keyword">yield</span> <span class="keyword">return</span> <span class="literal">null</span>;</span><br><span class="line"> <span class="keyword">if</span> (!<span class="keyword">string</span>.IsNullOrEmpty(www.error))</span><br><span class="line"> Debug.LogError(www.error);</span><br><span class="line"> <span class="keyword">byte</span>[] pdb = www.bytes;</span><br><span class="line"> System.IO.MemoryStream fs = <span class="keyword">new</span> MemoryStream(dll);</span><br><span class="line"> System.IO.MemoryStream p = <span class="keyword">new</span> MemoryStream(pdb);</span><br><span class="line"> appdomain.LoadAssembly(fs, p, <span class="keyword">new</span> Mono.Cecil.Pdb.PdbReaderProvider()); </span><br><span class="line"> </span><br><span class="line"> OnILRuntimeInitialized();</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">void</span> <span class="title">OnILRuntimeInitialized</span>(<span class="params"></span>)</span></span><br><span class="line"><span class="function"></span>&#123;</span><br><span class="line"> appdomain.Invoke(<span class="string">"Hotfix.Game"</span>, <span class="string">"Initialize"</span>, <span class="literal">null</span>, <span class="literal">null</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>这个例子为了演示方便,直接从StreamingAssets目录里读取了脚本DLL文件以及调试符号PDB文件, 实际发布的时候,如果要热更,肯定是将DLL和PDB文件打包到Assetbundle中进行动态加载的,这个不是ILRuntime的范畴,故不具体演示了。</p>
<h3 id="调试插件"><a href="#调试插件" class="headerlink" title="调试插件"></a>调试插件</h3><p>ILRuntime提供了一个支持Visual Studio 2015、Visual Studio 2017和Visual Studio 2019的调试插件,用来源码级调试你的热更脚本。</p>
<p>你可以在<a href="https://github.com/Ourpalm/ILRuntime/releases" target="_blank" rel="noopener">这里</a>下载到最新的Visual Studio调试插件</p>
<p><strong>使用方法如下</strong></p>
<h3 id="调试插件"><a href="#调试插件" class="headerlink" title="调试插件"></a>调试插件</h3><p>ILRuntime提供了一个支持Visual Studio 2015、Visual Studio 2017、Visual Studio 2019、Visual Studio 2022和VSCode的调试插件,用来源码级调试你的热更脚本。</p>
<p>你可以在Visual Studio和VS Code的插件商店中搜索ILRuntime安装调试插件</p>
<p><strong>Visual Studio调试插件使用方法如下</strong></p>
<ul>
<li>安装ILRuntime调试插件,并重新启动VS2015或VS2017、VS2019</li>
<li>安装ILRuntime调试插件,并重新启动Visual Studio</li>
<li>确保dll和pdb都加载完毕。</li>
<li>运行Unity工程,并保证执行过appdomain.DebugService.StartDebugService(56000);来启动调试服务器</li>
<li>运行Unity工程,并保证执行过appdomain.DebugService.StartDebugService();来启动调试服务器</li>
<li>用VisualStudio打开热更DLL项目</li>
<li>点击菜单中的Debug-&gt;Attach to ILRuntime按钮。注意,不是“附加Unity调试程序”</li>
<li>在弹出来的窗口中填入被调试的主机的IP地址以及调试服务器的端口</li>
<li>点击Attach按钮后,即可像UnityVS一样下断点调试</li>
<li>在弹出来的窗口中会列出可以调试的实例,如果没有显示想要调试的实例可以点击刷新按钮进行刷新</li>
<li>点击OK按钮后,即可像UnityVS一样下断点调试</li>
</ul>
<p><strong>VS Code调试插件使用方法如下:</strong></p>
<ul>
<li>从VS Code插件商店安装调试插件</li>
<li>确保dll和pdb都加载完毕。</li>
<li>运行Unity工程,并保证执行过appdomain.DebugService.StartDebugService();来启动调试服务器</li>
<li>用VS Code打开热更DLL项目</li>
<li>F5新建调试Profile</li>
<li>在弹出来的窗口中会列出可以调试的实例,如果没有显示想要调试的实例可以点击刷新按钮进行刷新</li>
<li>选择需要调试的实例按确定,即可像UnityVS一样下断点调试</li>
</ul>
<p><strong>注意事项:</strong></p>
<ul>
<li>在Visual Studio和VS Code中安装的调试器要求2.1.0以上版本的ILRuntime运行时</li>
<li>如果使用VS2015的话需要<code>Visual Studio 2015 Update3</code>以上版本</li>
</ul>

Expand Down
Loading

0 comments on commit 67a58aa

Please sign in to comment.