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
我也遇到了,不知道作者是怎么搞出来的。你是怎么解决的呢?