很多玩家玩游戲的時(shí)候都會(huì)用到mod,那你知道了不起的修仙模擬器如何制作mod嗎?看下小編帶來的了不起的修仙模擬器mod制作方法介紹,你自己也能成為制作mod的大神。
mod制作方法介紹
使用到的工具:Visual Studio 2017。
新建一個(gè)項(xiàng)目
首先打開VisualStudio2017(以下簡(jiǎn)稱VS),單擊左上角新建,項(xiàng)目,C#,類庫(.Net Framework)如上圖,為你的MOD起一個(gè)名字吧,圖例中使用了MakeFaBaoManager,把其改成自己MOD的名字即可(盡量開發(fā)過程中避免使用中文字符,命名最好也不要用中文,雖然C#支持中文編譯,但是出了BUG找不到原因,最后發(fā)現(xiàn)是用了中文的感覺太痛苦了,第一次制作最好與例子中一模一樣,第二次再考慮改名)。
框架要改為3.5或者4.0,推薦3.5,雖然更新的框架會(huì)有更多的功能,但實(shí)際上并用不到,而高版本的框架對(duì)使用MOD人來講是一個(gè)門檻,他也必須要有對(duì)應(yīng)的框架版本才行,所以推薦最低的3.5。
導(dǎo)入游戲所用的類庫
右鍵單擊"引用",選擇添加引用,在瀏覽中尋找以上dll添加引用。
其中0Harmony12和UnityModManager可以在你UnityModManager安裝目錄下找到:
Assembly-CSharp
Assembly-CSharp-firstpass
UnityEngine
UnityEngine.CoreModule
UnityEngine.IMGUIModule
UnityEngine.TextRenderingModule
UnityEngine.UI
UnityEngine.UIModule
以上類庫可以再游戲根目錄下的Amazing Cultivation Simulator_Data/Managed 文件夾下找到,其他Unity3D游戲也是相同道理Managed文件夾下。
添加引用完成后,選中所有引用,在下方會(huì)有一個(gè)復(fù)制到本地,更改值為False,不讓他進(jìn)行復(fù)制,然后右鍵解決方案下面,你為MOD起的名字的菜單,右鍵,選擇添加,新建項(xiàng),文本文件,名稱改為info.json,這個(gè)文件將是你MOD的信息文件,UMM依靠這個(gè)文件顯示你MOD的名字,版本號(hào)等。
選中新創(chuàng)建的info.json,將他的復(fù)制到輸出目錄改為始終復(fù)制,方便發(fā)布打包。
然后我們右鍵右邊Class1,選擇重命名,更改名稱為MainMod,會(huì)彈出提示是否更新引用路徑,我們選擇是,這樣就與上方截圖中的文件名保持一致了。
我們雙擊MainMod.cs文件,切換到代碼窗口,將我們添加的引用文件類進(jìn)行使用,如上圖,如此我們的準(zhǔn)備工作就結(jié)束了,可以具體的來寫我們的MOD了。
處理使用mod玩家的配置文件,讓其可以保存配置
UnityModManager提供了一個(gè)非常簡(jiǎn)便的方法,用來保存每個(gè)使用MOD玩家的配置文件,要使用他我們首先要?jiǎng)?chuàng)建一個(gè)類,并起名為Settings(名稱可以更改,但是對(duì)于初次接觸的人來說,最好按照?qǐng)D中示例做一遍再嘗試自己修改),他繼承了UnityModManager.ModSettings,然后我們重寫一下save方法(override),最后完成結(jié)果如同上圖一樣就完成了,我們現(xiàn)在可以方便的存儲(chǔ)玩家配置了。
接下來我們焦點(diǎn)回到public class MainMod 中,我們需要?jiǎng)?chuàng)建一個(gè)入口,來讓UMM加載我們的MOD,并且我們還需要幾個(gè)變量開關(guān),來讓MOD是運(yùn)行還是停止。
此處我們新添加了三個(gè)變量,enable來確定MOD是開啟的還是關(guān)閉的,settings,玩家的設(shè)置文件,玩家調(diào)的MOD選項(xiàng)都保存在里面,logger,用來在游戲中輸出信息的,我們還添加了一個(gè)Load方法,這里是UMM直接調(diào)用我們MOD的入口,當(dāng)我們的MOD被UMM找到被加載時(shí),就會(huì)執(zhí)行這里,如果我們r(jià)eturn true,意思就是告訴umm,這個(gè)MOD已經(jīng)成功加載并且完成初始化了,可以正常使用了(如果return false,表示我啟動(dòng)失敗了,不要加載這個(gè)MOD了,UMM此時(shí)會(huì)把這個(gè)MOD的狀態(tài)改為紅色,適用于我們發(fā)現(xiàn)MOD已經(jīng)不兼容這個(gè)游戲版本了,或者這個(gè)MOD必須要在某個(gè)MOD之后,但是我們發(fā)現(xiàn)沒有加載那個(gè)MOD,就可以return false通知使用者)。
mod初始化
之前說了UMM會(huì)調(diào)用我們的Load來加載MOD,我們就可以在加載MOD的時(shí)候進(jìn)行初始化,比如我們之前的玩家配置文件還沒讀取呢,于是我們就可以這么寫。
每一行代碼的含義都已經(jīng)寫在圖上了,但是那里有幾行紅色報(bào)錯(cuò)了,怎么回事呢,是因?yàn)槲覀冞€沒有定義這幾個(gè)方法,我們將鼠標(biāo)放到紅線上面,就會(huì)彈出提示。
我們選擇顯示可能的修補(bǔ)程序,選擇生成方法。
我們依次對(duì)三個(gè)帶有紅色的地方進(jìn)行相同操作,就能得到如下圖的代碼。
這樣我們就可以讓用戶在開關(guān)MOD,保存配置,打開配置面板的時(shí)候,執(zhí)行我們對(duì)應(yīng)的代碼了。
只要改為如上的代碼(綠色為注釋,可以不用打),基本功能就都能看到了。注意OnToggle方法,他要返回一個(gè)值,return true;就是告訴UMM我切換狀態(tài)成功了,如果return false,則表示我切換失敗了,可能需要用戶重啟游戲才能讓MOD生效,UMM在接收到return false 的時(shí)候,會(huì)將MOD的狀態(tài)更改為紅色(UMM紅色狀態(tài)表示需要重啟游戲或者無法使用)。
上述mod制作方法看起來有點(diǎn)復(fù)雜,但只要玩家自己去操作幾遍,基本就能掌握了,與其玩別人開發(fā)的mod,不如自己做一個(gè)mod玩更有意思。