您的位置:首页 > 编程语言 > Lua

Lua_ uLua_Lua调用C#方法_020

2018-03-08 15:11 387 查看

反射方式

string str=@"

luanet.load_assembly('UnityEngine');
GameObject  = luanet.import_type('UnityEngine.GameObject');
ParticleSystem  = luanet.import_type('UnityEngine.ParticleSystem');

Test = luanet.import_type('Test')   ;

particles={}

for i=1,sum,1 do
local obj = GameObject('hello')
obj:AddComponent(luanet.ctype(ParticleSystem))
test = Test()
test:Show();
local ps = obj:GetComponent(luanet.ctype(ParticleSystem));
ps:Stop();
table.insert(particles,ps)
end

“;

Test类:

public class Test  {

public void Show(){

Debug.Log("showMessage");
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

非反射方式

1、将自己编写的脚本加入到WrapFile文件下方 
如图: 


 
点击Lua -> Gen Lua Wrap Files
using UnityEngine;
using System.Collections;

public class LuaTest03 : MonoBehaviour {

string script =@"

test = Test();
test:Show();
Test.ShowMess();

";

// Use this for initialization
void Start () {
LuaScriptMgr mgr = new LuaScriptMgr();
mgr.Start();
mgr.DoString(script);

}

// Update is called once per frame
void Update () {

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
C#类:
using UnityEngine;
using System.Collections;

public class Test  {

// Use this for initialization
void Start () {

}

public void Show(){

Debug.Log("showMessage");
}

public  static void ShowMess()
{
Debug.Log("Show");

}
// Update is called once per frame
void Update () {

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: