Instance Method Injector

版本 v1.0.0·更新於 2024-02-02

A preload patcher that injects *blank* Unity Event methods, or really any method name, onto mod-requested objects for use with typical MonoMod patching.

模組介紹 作者原文

Instance Method Injector Preloader

A Preload Patcher that adds blank-public-instance methods as requested by any mods utilizing an assembly attribute into 'Assembly-CSharp.dll', primarily for relaying default Unity Messages such as Awake, Start, OnEnable, OnCollision, etc.. This is only needed when the target object you're patching doesn't contain a definition for a typical Unity Method as listed here.

How to Create Methods

First include a reference to the dll located under your profile: BepInEx/patchers/Daydream.InstanceMethodInjector. At the top of your Plugin.cs, or whatever file you use as your main BepInPlugin, ensuring you're outside of the scope of any namespaces, you'll add your method requirements.

using Daydream.InstanceMethodInjector;

[assembly: RequiresMethod(typeof(SomeTypeInAssemblyCSharp), "OnMessageName")]

If the message requires parameters then you can continue inserting typeof(xyz) statements in the params as follows:...

[assembly: RequiresMethod(typeof(SomeTypeInAssemblyCSharp), "OnMessageName", typeof(string), typeof(Action))]

These methods turn into the following code snippets, respectively:

public override void OnMessageName()

{

}

public override void OnMessageName(string pString, Action pAction)

{

}

Naming of Parameters

You can see the methods you've created in dnSpy by opening /BepInEx/cache/Assembly-CSharp.dll, but generally your parameter names will be p[TypeNamePascalCase] and in the event of multiple parameters of the same type they will be formatted as p[TypeNamePascaleCase]_0, with the last number incrementing per parameter of that type.

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

BepInEx-BepInExPack

檔案與校驗

檔案名稱
Instance_Method_Injector-1.0.0.zip
檔案大小
81.4 KiB