Repository navigation
API Loader Constants
3cxc edited this page Sep 12, 2026
·
2 revisions
Shared ABI definitions exchanged between host and plugin.
| Type | Description |
|---|---|
HostApiBridgeBuilder |
用于构建 HostApiTable 的静态工厂类 |
HostApiTable |
主程序暴露给插件的函数指针表 |
PluginInfo |
插件元数据结构体 |
PluginInitDelegate |
插件导出初始化函数签名 |
public static class HostApiBridgeBuilder用于构建 HostApiTable 的静态工厂类。将托管委托转换为非托管函数指针。
public delegate void TransitionToSceneDelegate(IntPtr scenePathPtr, bool fadeOut)表示场景切换函数的委托,与宿主 API 中的 TransitionToScene 匹配。
public delegate void PrintLogDelegate(IntPtr messagePtr)表示日志输出函数的委托,与宿主 API 中的 PrintLog 匹配。
public static HostApiTable Create(
TransitionToSceneDelegate transition,
PrintLogDelegate printLog)创建填充了函数指针的 HostApiTable 实例。
| Parameter | Type | Description |
|---|---|---|
transition |
TransitionToSceneDelegate |
实现场景切换的托管委托 |
printLog |
PrintLogDelegate |
实现日志输出的托管委托 |
Returns: 包含非托管函数指针的 API 表结构体。
public struct HostApiTable主程序暴露给插件的函数指针表,包含插件可调用的宿主功能。结构体采用顺序布局,与非托管内存直接对应。
| Member | Type | Description |
|---|---|---|
PrintLog |
IntPtr |
指向 PrintLog 函数的指针。签名:void PrintLog(IntPtr messagePtr)
|
TransitionToScene |
IntPtr |
指向 TransitionToScene 函数的指针。签名:void TransitionToScene(IntPtr scenePathPtr, bool fadeOut)
|
public struct PluginInfo插件元数据结构体。宿主在加载插件时读取此结构以获取插件名称、版本和兼容性信息。
| Member | Type | Description |
|---|---|---|
NamePtr |
IntPtr |
指向插件名称的 UTF-8 字符串指针 |
DescriptionPtr |
IntPtr |
指向插件描述的 UTF-8 字符串指针 |
AuthorPtr |
IntPtr |
指向插件作者的 UTF-8 字符串指针 |
MajorVersion |
int |
插件主版本号 |
MinorVersion |
int |
插件次版本号 |
BuildVersion |
int |
插件构建号 |
RevisionVersion |
int |
插件修订号 |
RequiredApiMajor |
int |
要求的宿主 API 主版本 |
RequiredApiMinor |
int |
要求的宿主 API 次版本 |
public string GetName()返回插件名称。
public string GetDescription()返回插件描述。
public string GetAuthor()返回插件作者。
public Version GetVersion()返回插件版本。
public Version GetRequiredApiVersion()返回插件所要求的宿主 API 版本。
public delegate void PluginInitDelegate(IntPtr hostApiTable)插件导出的初始化函数签名。插件必须导出一个名为 OnInit 的函数,参数为指向 HostApiTable 的指针。