TheLudGamer 发表于 2021-12-15 10:04

《Unity3D网络游戏实战》终于出版了,感谢关注^_^,拖了好久

RedZero9 发表于 2021-12-15 10:12

Add会调用awake方法,如果没有调用awake,而只调用了new,那就说明在    if (rets.Length != 1)return null;这里返回了,也就是看一看new返回的值个数不是1。那么可能检查一下这一块相关的内容就能解决

Baste 发表于 2021-12-15 10:16

说明没有找到lua脚本里面的Awake方法,有两个地方可能会导致这个问题,可以检查看看cmp.table = (LuaTable)rets;这里的table是不是符合预期的(即new出来的返回值),而且这个返回值是继承自TankCmp,且确保表TankCmp 有Awake方法

七彩极 发表于 2021-12-15 10:16

参考作者自定义Api的那篇文章,很可能是你没在CustomSettings.cs上添加注册到lua的类型列表,下面这句                _GT(typeof(LuaComponent)),

RhinoFreak 发表于 2021-12-15 10:17

谢谢解答,大神你的新书真是不错,收货颇丰

JamesB 发表于 2021-12-15 10:20

您好,我确定了new返回的个数是1,但是我发现,我new出来的table中不包含Awake等方法,貌似并没有在元表中查找Awake就返回了空。请问这个应该怎么解决呢

LiteralliJeff 发表于 2021-12-15 10:25

object[] rets = fun.Call (tableClass);
您写的这句话有问题,LuaFunction中的Call函数是没有返回值的

TheLudGamer 发表于 2021-12-15 10:31

我也遇到了这个问题,我的解决方法是不要rets[],直接让cmp.table =tableClass;
使用没有问题,但是不知道这样改有没有什么隐患。

c0d3n4m 发表于 2021-12-15 10:36

我也遇到这个问题

unityloverz 发表于 2021-12-15 10:45

我也遇到了,不知道作者是怎么搞出来的。你是怎么解决的呢?
页: 1 [2] 3
查看完整版本: Unity3D热更新LuaFramework入门实战(4)——Lua组件