mastertravels77 发表于 2022-5-11 13:15

lua调用函数时什么时候使用冒号?什么时候使用点号?

针对lua本身而言,需要传递self调用的时候使用冒号。
<hr/>上面这句话对题目意义不大,那是标准lua下的情况。
而对于题中的Unity里xlua和C#互调用的情况,萌新只需要记住:

[*]lua在访问C#对象中的非静态方法时,使用冒号
[*]lua在访问lua class 对象中的方法时,使用冒号。(如果不知道怎么在lua中实现class,直接无视第二条即可)
其他情况下全部用点号来访问就行。
(不严谨,但细说原理比较复杂,先就这么理解就行)
<hr/>然后关于:
另外还有一个问题是c#中类似于getcomponent<rigidbody>()这种带有键值对的移植到lua中又该怎么写?首先,这玩意叫泛型方法。xlua的文档里有怎么调用泛型的说明,自己看看就好了。
实际使用中,完全可以不管这个泛型方法。
详见unity api文档,GetComponent除了泛型方法之外,提供了两个非泛型方法
GetComponent("字符串 类名")和
GetComponent(typeof(类))实际使用比如:
myActor:GetComponent("Rigidbody")

myActor:GetComponent(typeof(CS.UnityEngine.Rigidbody))
(关于“CS.”的用法详见xLua文档)
页: [1]
查看完整版本: lua调用函数时什么时候使用冒号?什么时候使用点号?