Lua_ uLua_创建对象_017
2018-03-08 15:10
369 查看
反射模式
using UnityEngine; using System.Collections; using LuaInterface; /// <summary> /// 反射调用方式是不推荐使用的,因为效率慢,推荐的是使用wrap的去反射模式, /// 这里还继续保留下来的原因在于,在某些特定环境下,反射还是有用途的, /// 去反射最大的弊端在于提前需要把C#的类导入到Lua中,如果上线了发现有些类没有导入, /// 反射就可以通过临时的调用未wrap的类,进行使用,当大版本更新时,再将此类加入wrap, /// 这时候反射就是解决这种情况出现,所以概率小,1%的可能性,但并不代表不存在。 /// </summary> public class CreateGameObject01 : MonoBehaviour { private string script = @" luanet.load_assembly('UnityEngine') GameObject = luanet.import_type('UnityEngine.GameObject') ParticleSystem = luanet.import_type('UnityEngine.ParticleSystem') local newGameObj = GameObject('NewObj') newGameObj:AddComponent(luanet.ctype(ParticleSystem)) "; //反射调用 void Start () { LuaState lua = new LuaState(); lua.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
30
31
32
33
非反射模式调用
using UnityEngine; using System.Collections; using LuaInterface; public class CreateGameObject02 : MonoBehaviour { private string script = @" luanet.load_assembly('UnityEngine') GameObject = UnityEngine.GameObject ParticleSystem = UnityEngine.ParticleSystem local newGameObj = GameObject('NewObj') newGameObj:AddComponent(ParticleSystem.GetClassType()) "; //非反射调用 void Start () { LuaScriptMgr lua = new LuaScriptMgr(); lua.Start(); lua.DoString(script); } // Update is called once per frame void Update () { } } 注意需要先Gen Lua Wrap Files,否则报错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
相关文章推荐
- Lua_ uLua_创建对象_017
- Lua_ULua创建基本的游戏对象
- Lua_ULua创建基本的游戏对象
- ulua里如何将C#创建的UnityEngine对象返回给lua
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- Lua复制方式创建对象表。
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- 017、创建对象做了哪些事情
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- (原创)cocos2d-x 3.0+ lua 学习和工作(1) : 自定义创建对象方法
- Cocos2d-x教程 Lua脚本(3) Lua中如何创建"类"与"对象"
- uLua学习之创建游戏对象(二)
- 云星数据---Scala实战系列(精品版)】:Scala入门教程017-Scala实战源码-Scala 创建对象 以及类的介绍
- Lua的系统学习(杂)_使用uLua在Unity中创建一个Sphere小球
- Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- 在lua中创建类和对象
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- Android中JNI高级应用 - 本地C代码中创建Java对象及本地JNI对象的保存 .
- 外壳扩展创建快捷方式和获取快捷方式的目标对象