MOD制作教程 教你如何利用Unity Mod Manager制作一個(gè)Mod
MOD制作教程。今天給大家詳細(xì)介紹如何利用Unity Mod Manager制作一個(gè)Mod。相信很多玩家在使用別人制作的mod時(shí),都有一定不滿意的地方,這個(gè)時(shí)候玩家朋友就想自己修改一些不足的地方,或者制作自己喜歡的MOD。那么怎么制作MOD呢?制作MOD需要什么制作工具呢?那么一起詳細(xì)的看看下面的MOD制作教程,一定會(huì)幫助到你的。

支持制作的游戲
支持了不起的修仙模擬器
波西亞時(shí)光
花園瓜子
滑板XL
開拓者:擁王者
女主播經(jīng)紀(jì)公司
汽車修理工模擬2018
缺氧
嗜血印
雙電醫(yī)院
一起玩農(nóng)場
學(xué)習(xí)教程前請看需要的使用工具
Microsoft Visual Studio 2017下載地址====點(diǎn)我下載
Unity Mod Manager 下載地址====點(diǎn)我下載(以下我就直接簡稱為“UMM了”)
dnSpy 下載地址====點(diǎn)我下載 一個(gè)UMM支持的游戲(我這里使用的是雙點(diǎn)醫(yī)院)
準(zhǔn)備工作:
下載安裝好全部的工具
使用UMM安裝到游戲中(具體安裝方法可以查看UMM的下載頁面)
然后打開游戲目錄:游戲名_Data\Managed
將下面的文件復(fù)制出來(隨便復(fù)制到哪都可以):
必須:Assembly-CSharp.dll、Assembly-CSharp-firstpass.dll、0Harmony12.dll、UnityEngine.dll、UnityEngine.UI.dll
可選:UnityEngine.CoreModule.dll、UnityEngine.IMGUIModule.dll

配置文件
在正式開始之前,我們還需要準(zhǔn)備一個(gè)配置文件,
新建一個(gè)文件夾,重命名為“TextMod”,在里面新建一個(gè)記事本文件,重命名為“Info.json”(記得開啟顯示后綴名),然后使用Notepad++,
在里面粘貼下面的代碼:
{
"Id": "TestMod",
"DisplayName": "Test Mod",
"Author": "小莫",
"Version": "1.0.0",
"ManagerVersion": "1.0.0",
"Requirements": ["SomeMod-1.0.0", "AnotherMod"],
"AssemblyName": "TestMod.dll",
"EntryMethod": "TestMod.Main.Load",
"HomePage":"www.aaa.com",
"Repository ":"www.bbb.com"
}
解釋:
ID:ID就是Mod的ID,Mod ID不能重復(fù)(必須);
DisplayName :Mod名稱,顯示在游戲里面(可選,建議填寫);
Author:Mod作者,顯示在游戲里面(可選,建議填寫);
Version:版本,Mod的更新需要判斷版本(必須);
ManagerVersion:Mod管理器最低版本,建議填寫你現(xiàn)在使用的UMM版本(可選,建議填寫);
Requirements:要求,Mod所需要的其他Mod依賴(可選);
AssemblyName:文件名稱,即我們創(chuàng)建的dll文件名稱(可選);
EntryMethod:文件函數(shù),我們寫的代碼函數(shù),下面會(huì)講到(必須);
HomePage:主頁,作者的主頁,可以填寫Mod的發(fā)布地址,也可以填寫個(gè)人微博地址(可選);
Repository:自動(dòng)更新檢測地址,關(guān)于自動(dòng)更新這一塊,我也不知道,所以大家自己百度吧(可選);
Visual Studio部分
首先打開Visual Studio,然后新建一個(gè)項(xiàng)目工程(快捷鍵是Ctrl+Shift+N)
左邊選擇“Visual C#”,中間選擇“類庫.NET Framework”

將這里的“Class1”改成“Main”

這里就是剛剛提到的“EntryMethod”文件主函數(shù)的內(nèi)容,
【TestMod.Main.Load】的意思就是
加載 “TestMod“”里面的“Main”里面的“Load”
接下來我們來添加幾個(gè)引用
右鍵引用選擇添加引用

這里選擇“游覽”

然后找到一開始讓大家復(fù)制出來的那幾個(gè)文件,添加進(jìn)來


然后在引用這里就可以看到了

接下來我們在這里手動(dòng)添加幾個(gè)引用
using UnityEngine; using Harmony12; using UnityModManagerNet; using System.Reflection;

那么準(zhǔn)備工作就算完成了,我們可以開始寫代碼了
別問我怎么寫,我也不會(huì)寫
我們來看一下作者給的代碼吧:
首先,UMM自帶的函數(shù)有:
// modEntry.Info - 包含 'Info.json' 文件里面的所有字段. // modEntry.Path - Mod 文件夾路徑. string類型. // modEntry.Active - 是否是激活狀態(tài).bool類型 // modEntry.Logger - 將日志寫入 'UnityModManager.log' 文件. // modEntry.OnToggle - 該功能的存在讓玩家知道可以安全的關(guān)閉這個(gè)Mod. // modEntry.OnGUI - 添加Mod界面選項(xiàng). // modEntry.OnSaveGUI - 保存時(shí)調(diào)用.
具體C#什么意思我也不是非常精通,我就直接把完整代碼貼出來吧:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using Harmony12;
using UnityModManagerNet;
using System.Reflection;
namespace TestMod
{
public class Main
{
public static UnityModManager.ModEntry.ModLogger Logger; //寫入日志
public static bool enabled; // 讓游戲知道玩家關(guān)閉了這個(gè)Mod
// 有關(guān)Mod的數(shù)據(jù)變量
static bool Load(UnityModManager.ModEntry modEntry)
{
HarmonyInstance harmony = HarmonyInstance.Create(modEntry.Info.Id); //獲取符段
string a = modEntry.Path; //獲取路徑
bool b = modEntry.Active; //獲取激活狀態(tài)
Logger = modEntry.Logger; //寫入日志
modEntry.OnToggle = OnToggle; //讓游戲知道玩家關(guān)閉了這個(gè)Mod
modEntry.OnGUI = OnGUI; //添加Mod界面選項(xiàng).界面內(nèi)容 是“OnGUI”里面的內(nèi)容
modEntry.OnSaveGUI = OnSaveGUI; //保存時(shí)調(diào)用“OnSaveGUI”里面的內(nèi)容
// modEntry.Info - 包含 'Info.json' 文件里面的所有字段.
// modEntry.Path - Mod 文件夾路徑.目前是: 'F:\steam\steamapps\common\TPH\Mods\TextMod'.
// modEntry.Active - 是否是激活狀態(tài).
// modEntry.Logger - 將日志寫入 'UnityModManager.log' 文件.
// modEntry.OnToggle - 該功能的存在讓玩家知道可以安全的關(guān)閉這個(gè)Mod.
// modEntry.OnGUI - 添加Mod界面選項(xiàng).
// modEntry.OnSaveGUI - 保存時(shí)調(diào)用.
return true;
}
public static bool OnToggle(UnityModManager.ModEntry modEntry, bool value) //讓游戲知道玩家關(guān)閉了這個(gè)Mod
{
enabled = value;
return true;
}
static void OnGUI(UnityModManager.ModEntry modEntry) //添加Mod界面選項(xiàng).
{
}
static void OnSaveGUI(UnityModManager.ModEntry modEntry) // 設(shè)置保存(modEntry);
{
}
}
}
(上面這段代碼沒有任何意義)
給Mod添加一個(gè)開關(guān)事件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using Harmony12;
using UnityModManagerNet;
using System.Reflection;
namespace TestMod
{
class Main
{
public static bool enabled;
static bool Load(UnityModManager.ModEntry modEntry)
{
modEntry.OnToggle = OnToggle;
return true;
}
// 當(dāng)Mod打開或關(guān)閉時(shí)執(zhí)行
static bool OnToggle(UnityModManager.ModEntry modEntry, bool value /*有效或無效*/)
{
enabled = value;
return true; // 是或不是.
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using Harmony12;
using UnityModManagerNet;
using System.Reflection;
namespace TestMod
{
class Main
{
public static bool enabled;
static bool Load(UnityModManager.ModEntry modEntry)
{
modEntry.OnToggle = OnToggle;
var harmony = HarmonyInstance.Create(modEntry.Info.Id);
harmony.PatchAll(Assembly.GetExecutingAssembly());
return true;
}
static bool OnToggle(UnityModManager.ModEntry modEntry, bool value)
{
enabled = value;
modEntry.Logger.Log(Application.loadedLevelName);
return true;
}
}
[HarmonyPatch(typeof(Application), "loadedLevelName", MethodType.Getter)]
static class Application_loadedLevelName_Patch
{
static void Postfix(ref string __result)
{
if (!Main.enabled)
return;
__result = "New Level Name";
}
}
}
這段的意思就是
函數(shù)“Application.loadedLevelName”將始終返回字符串類型“New Level Name”
寫完之后,我們就可以生成了(快捷鍵是F6):

完事之后我們找到項(xiàng)目文件的\TestMod\TestMod\bin\Debug目錄,將里面的“TestMod.dll”文件復(fù)制出來,放到我們之前建立的“TextMod”文件夾里面


最后將“TextMod”文件夾放到游戲目錄中的“mods”文件夾里面就可以了,然后進(jìn)游戲就可以看到我們的Mod了
以上就是今天大家?guī)淼腢nity Mod Manager制作一個(gè)Mod的教程了,不知道你學(xué)會(huì)了沒有,如果還是不明白可以多學(xué)習(xí)幾次,畢竟對于初次接觸的用戶還是很復(fù)雜的。
相關(guān)文章

Keysight mbp2019怎么破解?Keysight mbp2019安裝破解詳細(xì)圖文教程
Keysight mbp2019怎么破解?下文小編為大家?guī)砹薑eysight mbp2019安裝破解詳細(xì)圖文教程,感興趣的朋友可以一起看看2019-04-04
steam提示“安裝文件夾當(dāng)前不可寫”怎么解決?
有網(wǎng)友反映steam提示“安裝文件夾當(dāng)前不可寫”怎么解決?下面小編教大家解決方法,供大家參考!2019-04-02
迅捷視頻轉(zhuǎn)換器怎么剪輯視頻 裁剪視頻的方法分享
迅捷視頻轉(zhuǎn)換器又被廣大的網(wǎng)友稱為迅捷萬能格式轉(zhuǎn)換器,很多用戶在使用過程中不知道怎么剪輯視頻,今天,小編就來教大家具體的操作步驟2019-03-30
2024微信搖色子輔助器是一款微信骰子的作弊軟件,用戶可以隨意控制骰子的大小,再也不擔(dān)心和朋友伙伴玩這種小游戲會(huì)輸了,歡迎感興趣的朋友一起看看2023-07-06
迅捷視頻轉(zhuǎn)換器如何視頻轉(zhuǎn)換器 輕松減少視頻的大小方法介紹
迅捷視頻轉(zhuǎn)換器是一款多功能的視頻格式轉(zhuǎn)換工具,但某些視頻文件的體積本來就比一般文件的體積要大很多,這時(shí)候就可以使用迅捷視頻轉(zhuǎn)換器來幫助大家2019-04-04






