找回密码
 立即注册
查看: 225|回复: 0

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

[复制链接]
发表于 2022-5-11 13:15 | 显示全部楼层 |阅读模式
针对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文档)
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-27 09:34 , Processed in 0.090310 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表