上节课程我们讲解了如何安装Unity 接下来用lua实现unity的功能

 

由于unity中 api特多 我就写一些简单的举例说明

首先我们在场景中创建个Cube然后修改tag为“Player”

ToLua 使用教程 下

  1. 然后利用lua修改其名字

ToLua 使用教程 下

执行测试

ToLua 使用教程 下

利用lua已经把cube的名字修改

FindGameObjectWithTag返回的就是GameObject该物体所以能直接.name 把name修改

 

心得:因为lua的方法没有提示,所以好多api我们只能通过查看wrap文件注册的api

如:UnityEngine.GameObject.FindGameObjectWithTag("Player")

这行代码的FindGameObjectWithTag方法在lua中很容易敲错,所以可以查看wrap文件找到并拷贝过来。ToLua 使用教程 下

 

 

2.给Cube添加一个脚本,我刚刚写的RotateSelf的那个脚本

C#写法: gameObject. AddComponent<RotateSelf>();

Lua无法用泛型

所以上面的无法让lua用

C# 有个重载; gameObject. AddComponent (typeof(RotateSelf));

然后lua中就

ToLua 使用教程 下

根据第二个重载方法添加该脚本。

测试结果:

ToLua 使用教程 下

Cube就有了之前写的那个脚本了。

注意:lua中用c#的方法  静态方法用“.”非静态方法用“:”

3.利用lua执行我们自己写的脚本的方法

 RotateSelf里面的Rotate方法完善

ToLua 使用教程 下

然后重新wrap

其实这个方法名没有变 参数没有变 就可以不wrap还是可以直接使用

Lua代码

ToLua 使用教程 下

因为Rotate方法是非静态所以是用“:”

执行结果

ToLua 使用教程 下

 

相关文章: