亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MOD制作教程 教你如何利用Unity Mod Manager制作一個Mod

  發(fā)布時間:2019-04-01 17:00:08   作者:佚名   我要評論
怎么利用Unity Mod Manager制作一個Mod呢?相信很多玩家都想自己制作一些自己喜歡的游戲MOD,那么怎么制作呢

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

支持制作的游戲

支持了不起的修仙模擬器

波西亞時光

花園瓜子

滑板XL

開拓者:擁王者

女主播經(jīng)紀公司

汽車修理工模擬2018

缺氧

嗜血印

雙電醫(yī)院

一起玩農(nóng)場

學習教程前請看需要的使用工具

Microsoft Visual Studio 2017下載地址====點我下載

Unity Mod Manager 下載地址====點我下載(以下我就直接簡稱為“UMM了”)

dnSpy 下載地址====點我下載 一個UMM支持的游戲(我這里使用的是雙點醫(yī)院)

準備工作:

下載安裝好全部的工具

使用UMM安裝到游戲中(具體安裝方法可以查看UMM的下載頁面)

然后打開游戲目錄:游戲名_Data\Managed

將下面的文件復制出來(隨便復制到哪都可以):

必須:Assembly-CSharp.dll、Assembly-CSharp-firstpass.dll、0Harmony12.dll、UnityEngine.dll、UnityEngine.UI.dll

可選:UnityEngine.CoreModule.dll、UnityEngine.IMGUIModule.dll

配置文件

在正式開始之前,我們還需要準備一個配置文件,

新建一個文件夾,重命名為“TextMod”,在里面新建一個記事本文件,重命名為“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不能重復(必須);

DisplayName :Mod名稱,顯示在游戲里面(可選,建議填寫);

Author:Mod作者,顯示在游戲里面(可選,建議填寫);

Version:版本,Mod的更新需要判斷版本(必須);

ManagerVersion:Mod管理器最低版本,建議填寫你現(xiàn)在使用的UMM版本(可選,建議填寫);

Requirements:要求,Mod所需要的其他Mod依賴(可選);

AssemblyName:文件名稱,即我們創(chuàng)建的dll文件名稱(可選);

EntryMethod:文件函數(shù),我們寫的代碼函數(shù),下面會講到(必須);

HomePage:主頁,作者的主頁,可以填寫Mod的發(fā)布地址,也可以填寫個人微博地址(可選);

Repository:自動更新檢測地址,關于自動更新這一塊,我也不知道,所以大家自己百度吧(可選);

Visual Studio部分

首先打開Visual Studio,然后新建一個項目工程(快捷鍵是Ctrl+Shift+N)

左邊選擇“Visual C#”,中間選擇“類庫.NET Framework”

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

這里就是剛剛提到的“EntryMethod”文件主函數(shù)的內(nèi)容,

【TestMod.Main.Load】的意思就是

加載 “TestMod“”里面的“Main”里面的“Load”

接下來我們來添加幾個引用

右鍵引用選擇添加引用

這里選擇“游覽”

然后找到一開始讓大家復制出來的那幾個文件,添加進來

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

接下來我們在這里手動添加幾個引用

using UnityEngine;
using Harmony12;
using UnityModManagerNet;
using System.Reflection;

那么準備工作就算完成了,我們可以開始寫代碼了

別問我怎么寫,我也不會寫

我們來看一下作者給的代碼吧:

首先,UMM自帶的函數(shù)有:

// modEntry.Info - 包含 'Info.json' 文件里面的所有字段.
// modEntry.Path - Mod 文件夾路徑. string類型.
// modEntry.Active - 是否是激活狀態(tài).bool類型
// modEntry.Logger - 將日志寫入 'UnityModManager.log' 文件.
// modEntry.OnToggle - 該功能的存在讓玩家知道可以安全的關閉這個Mod.
// modEntry.OnGUI - 添加Mod界面選項.
// modEntry.OnSaveGUI - 保存時調(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;     // 讓游戲知道玩家關閉了這個Mod

        // 有關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;   //讓游戲知道玩家關閉了這個Mod
            modEntry.OnGUI = OnGUI;         //添加Mod界面選項.界面內(nèi)容 是“OnGUI”里面的內(nèi)容
            modEntry.OnSaveGUI = OnSaveGUI; //保存時調(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 - 該功能的存在讓玩家知道可以安全的關閉這個Mod.
            // modEntry.OnGUI - 添加Mod界面選項.
            // modEntry.OnSaveGUI - 保存時調(diào)用.
            return true;
        }
        public static bool OnToggle(UnityModManager.ModEntry modEntry, bool value)   //讓游戲知道玩家關閉了這個Mod
        {
           enabled = value;
            return true;
        }
        static void OnGUI(UnityModManager.ModEntry modEntry)    //添加Mod界面選項.
        {           
        }
        static void OnSaveGUI(UnityModManager.ModEntry modEntry)     // 設置保存(modEntry);
        {           
        }

    }
}

(上面這段代碼沒有任何意義)

給Mod添加一個開關事件

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;
        }

        // 當Mod打開或關閉時執(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):

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

最后將“TextMod”文件夾放到游戲目錄中的“mods”文件夾里面就可以了,然后進游戲就可以看到我們的Mod了

以上就是今天大家?guī)淼腢nity Mod Manager制作一個Mod的教程了,不知道你學會了沒有,如果還是不明白可以多學習幾次,畢竟對于初次接觸的用戶還是很復雜的。

相關文章

最新評論