"轻量化的Unity游戏插件开发框架,给你带来极佳的体验."
NaResolver是为插件开发研发的一款轻量化开发框架.
- 编写Wiki
-
标准库字符串与游戏之间无痛转换
-
轻量化的开发设计
-
简单的安装
-
强劲的兼容性
-
同时支持Mono与Il2Cpp
-
拥有TestEngine,让错误快速显现
-
简单易用
#define NA_RESOLVER_STRING_XOR _xor_ // 如果你需要使用xor #define NA_RESOLVER_TEST_ENGINE // 如果你需要使用TestEngine #include <NaResolver/NaResolver.h> ...main() { if (naResolverInstance.Setup()) printf("Setup successfully!"); }#define NA_RESOLVER_STRING_XOR _xor_ // 如果你需要使用xor #define NA_RESOLVER_TEST_ENGINE // 如果你需要使用TestEngine #include <NaResolver/NaResolver.h> ...main() { if (naResolverInstance.Setup()) printf("Setup successfully!"); }// 类声明 class NormalClass { public: // 获取类 // CLASS(assemblyName, namespaceName, className); CLASS("FakeAssembly", "FakeNamespace", NormalClass); // 嵌套类声明 class NestedClass { public: // 获取嵌套类 // NESTED_CLASS(declaringClassName, nestedClassName); NESTED_CLASS(NormalClass, NestedClass); }; // 静态成员字段声明 // STATIC_FIELD(type, name); // STATIC_BACKING_FIELD(type, name); // BackingField STATIC_FIELD(int, fakeStaticField); // 实例成员字段声明 // FIELD(type, name); // BACKING_FIELD(type, name); FIELD(int, fakeField); // 方法声明 // METHOD(parameterCount, returnTypeName, methodName, ...methodParameterTypes); METHOD(1, "System.Int32", fakeMethod, "System.String"); int fakeMethod(std::string arg1) { return Template::MethodInvoker<void*>(__fakeMethod_1_Method_Info__.GetMethodAddresss())(VmGeneralType::String(args1)); } // 注意:这里展示了一个比较特殊的类型(String)的传递 };方法的调用
// 1. 获取方法 auto methodInstance = naResolverInstance.GetMethod(klass, "returnType", "methodName", {"parameterType1", "parameterType2"}); // 2. 获取方法地址 auto methodInvokeAddress = methodInstance.method.GetInvokeAddress(); // 3. 函数指针 // ...字段的读写
// 1. 获取字段 auto fieldInfo = klass.klass.GetField("name"); // 2. 读取 int value; fieldInfo.GetValue(object, &value); // 3. 写入 fieldInfo.SetValue(object, &value);NaResolver使用GPL3.0协议, 详细见 LICENSE.txt.