UnityEditor Unity的模塊

有時(shí)寫(xiě)了點(diǎn)編輯器工具,希望在每個(gè)項(xiàng)目中都用到,但是又不希望每次都把腳本拷貝一下。這時(shí),就可以用到這個(gè)功能,讓腳本成為Unity的“一部分”,任何項(xiàng)目可用。

比如平時(shí)用VsCode作為Unity的編輯器時(shí),經(jīng)常需要用到VsCode這個(gè)插件,下面以Vscode為例,讓Unity打開(kāi)所有項(xiàng)目時(shí),都自帶VsCode插件。

Step1.

在Unity的安裝目錄 Unity5.4.3\Editor\Data\UnityExtensions\Unity (我的版本是5.4.3)下,有一些Unity自帶的模塊,比如 Networking、GUISystem等,所有的模塊根目錄都有一個(gè)ivy.xml文件。如:

<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
  <info version="5.4.3" organisation="Unity" module="UNetHLAPI" e:packageType="UnityExtension" e:unityVersion="5.4.3f1" xmlns:e="http://ant.apache.org/ivy/extra" />
  <publications xmlns:e="http://ant.apache.org/ivy/extra">
    <artifact name="UnityEngine.Networking" type="dll" ext="dll" e:guid="870353891bb340e2b2a9c8707e7419ba" />
    <artifact name="Editor/UnityEditor.Networking" type="dll" ext="dll" e:guid="5f32cd94baa94578a686d4b9d6b660f7" />
  </publications>
</ivy-module>

其中:version、unityVersion均為當(dāng)前Unity的版本號(hào);artifact name 標(biāo)簽為我們的DLL文件的相對(duì)路徑。這兩項(xiàng)是需要我們修改的(在Step3)。

Step2. 生成dll

打開(kāi)Visual Studio 新建一個(gè)Dll類庫(kù)。

文件 - 新建 - 項(xiàng)目 - Visual C# - 類庫(kù)(.NET Framework)

dll
  • 這里需要將目標(biāo)框架設(shè)置為framework3.5。(項(xiàng)目屬性 - 應(yīng)用程序 - 目標(biāo)框架 - framework3.5 。),否則可能報(bào)下面的錯(cuò)誤
TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly '...

由于我們需要用到Unity的一些Api,所以還需要為Vs項(xiàng)目引用兩個(gè)Dll,UnityEngine.dll和UnityEditor.dll。

添加引用
添加引用

這兩個(gè)引用在Unity5.4.3\Editor\Data\Managed\ 目錄下,當(dāng)然,也可以引用其他的dll文件。

將Unity插件VsCode的腳本拷貝到這個(gè)項(xiàng)目中,并生成一下解決方案,可以生成我們需要的dll了。

生成dll
生成dll

Step3. 打包模塊使用

從Unity自帶的模塊中拷貝一份 ivy.xml 文件放置好。VSCodeModule文件夾下ivy.xml文件、并且將生成的

VSCodeModule.dll、VSCodeModule.pdb 文件放置到Editor下(如果是非Editor腳本則放在根目錄)。

這里除了要拷貝主要的VSVSCodeModule.dll,如果有引用其他dll庫(kù),也需要一并復(fù)制進(jìn)來(lái)。Unity已有的庫(kù)則不用再拷貝(如UnityEditor.dll...等)。

結(jié)構(gòu)
結(jié)構(gòu)

然后修改ivy.xml文件,如:

<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
  <info version="5.4.3" organisation="Unity" module="VSCodeModule" e:packageType="UnityExtension" e:unityVersion="5.4.3" xmlns:e="http://ant.apache.org/ivy/extra" />
  <publications xmlns:e="http://ant.apache.org/ivy/extra">
    <artifact name="Editor/VSCodeModule" type="dll" ext="dll" e:guid="80a3616ca19596e4da0f10f14d241e9f" />
  </publications>
</ivy-module>

修改了 version="5.4.3" e:unityVersion="5.4.3" module="VSCodeModule" artifact name="Editor/VSCodeModule" 主要是Unity的版本號(hào),模塊名稱和dll位置。

然后將 VSCodeModule 文件夾復(fù)制到 \Editor\Data\UnityExtensions\Unity\下。新建一個(gè)項(xiàng)目,空空如也,依然可用vscode插件。

vscode

參考:http://homans.nhlrebel.com/2014/12/09/unity-4-6-and-modules/

Unity VsCode插件:https://github.com/dotBunny/VSCode

本文示例工程:https://github.com/liangddyy/UnityDemos/tree/master/VSCodeModule

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容