Comments (5)
谢谢反馈,NestedType确实没支持。已经增加,请更新下代码。
另外,xlua.hotfix第一个参数新增字符串的支持,和C#的Type.GetType规则一样,如果NestedType是非public的,就必须得用字符串来表示。
from xlua.
支持的
from xlua.
刚才写错lua代码了,删了重新发一下,点击Hotfix按钮时,就报下面的错
错误日志:
LuaException: exception in xlua.access: System.NullReferenceException: Object reference not set to an instance of an object
at XLua.StaticLuaCallbacks.XLuaAccess (IntPtr L) [0x00001] in C:\Users\Seven\Downloads\xLua-master\xLua\Assets\XLua\Src\Utils.cs:419
stack traceback:
[C]: in field 'access'
[string "Init"]:86: in field 'hotfix'
[string "chunk"]:2: in main chunk
XLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop)
XLua.LuaEnv.DoString (System.String chunk, System.String chunkName, XLua.LuaTable env) (at Assets/XLua/Src/MethodWarpsCache.cs:254)
TestForXLuaHotfix.OnGUI () (at Assets/Scripts/TestForXLuaHotfix.cs:24)
Hotfix操作代码
public class TestForXLuaHotfix : MonoBehaviour {
LuaEnv luaEnv = new LuaEnv();
void OnGUI()
{
//['TestOutterClass+TestInnerClass']
if(GUI.Button(new Rect(10, 100, 300, 150), "Hotfix"))
{
luaEnv.DoString(@"
xlua.hotfix(CS['TestOutterClass+TestInnerClass'], 'Update', function(self)
self.tick = self.tick + 1
if(self.tick % 50) == 0 then
print('<<<<<<<< update in lua, tick = ' .. self.tick)
end
end)
");
}
}
}
两个类的代码
[Hotfix]
public class TestOutterClass : MonoBehaviour {
TestInnerClass innerC = new TestInnerClass();
void Update () {
innerC.Update();
}
[Hotfix]
public class TestInnerClass
{
public int tick = 1;
public void Update()
{
if (++tick % 50 == 0)
{
Debug.Log("Update tick : " + tick);
}
}
}
}
from xlua.
内置类直接用点:CS.TestOuterClass.TestInnerClass
from xlua.
直接使用点(CS.TestOutterClass.TestInnerClass)出现错误:
LuaException: xlua.access, no field __Hitfix0_Update
stack traceback:
[C]: in field 'access'
[string "Init"]:86: in field 'hotfix'
[string "chunk"]:2: in main chunk
XLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop) (at Assets/XLua/Src/LuaEnv.cs:360)
XLua.LuaEnv.DoString (System.String chunk, System.String chunkName, XLua.LuaTable env) (at Assets/XLua/Src/LuaEnv.cs:212)
TestForHotfix.OnGUI () (at Assets/Scripts/TestForHotfix.cs:23)
另外我发现一个问题,在Hotfix.cs中的HotfixInject函数里的assembly.modules[0].Types里面并没有TestInnerClass,不知道是不是这个原因,具体的我还没有深入看
from xlua.
Related Issues (20)
- [Hotfix] 有时需要放到非Editor目录才生效
- 内存泄漏严重 HOT 3
- Disabling Domain Reload causes crashes and strange behaviour
- Unity2022.3.16 IOS 打包 报错
- 最新版本支持多asmdef功能revert? HOT 1
- iOS编译报错 duplicate symbol '_luaopen_bit'
- "SymbolsNotMatchingException" occurs when performing Obfuscator after HotFix Injection.
- 想编译Nintendo Switch平台用的XLua版本 HOT 1
- 鸿蒙平台导出包报错
- ps4平台编译xlua不通过 HOT 1
- 添加HOTFIX_ENABLE宏,在主线程中调用GC.WaitForPendingFinalizers导致死锁,有什么推荐修改方案吗? HOT 4
- 代码里using了UnityEngine.Purchasing.Security命名空间导致Android打包inject失败
- self.gameObject无法访问 HOT 2
- xLua适配 OpenHarmony 平台吗 HOT 1
- Unity2022.3.17发布WebGL后运行报错 HOT 1
- 使用ExampleConfig.cs中的热更新Delegate配置,会使C#方法通过反射调用
- webgl平台下如何自定义异步加载loader HOT 2
- webgl微信小程序打包出现错误,求帮助 HOT 1
- 集成第三方库,在webgl平台要怎么处理? HOT 1
- Xlua中非UnityObject对象销毁问题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xlua.