反射方式
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