初学者的理解 。。。。可能有很多是错的,可能有很多表述不清
本文有些地方不区分大小写,还有可能有拼写错误
02_CreateGameObject
反射中:
load_assembly 相当于using
import_type 获取类 例如 luanet.import_type('UnityEngine.GameObject') 这样就获得GameObject
ctype 获取类的类型 例如 luanet.ctype(ParticleSystem)
去反射中:
和反射主要的不同是:GameObject = UnityEngine.GameObject 和 ParticleSystem.GetClassType()
例子中是有两种方式,一种使用反射,一种使用wrap的去反射模式
对于wrap的去反射模式来说,优点:调用起来比较简单, 效率高 缺点:准备阶段比较复杂,当准备阶段没有把该类加载进去时,无法使用。
准备阶段:http://www.cnblogs.com/hammerc/p/4718857.html
其中添加注册信息这一步不需要,他自动为我们添加好了
对于反射模式来说,优点:随时随地都能调用 缺点:效率低,调用的时候比较复杂(不会怎么用反射来调用unity中的类,这只是我猜);
还有个很简单的问题。。。unity中创建一个类时没用命名空间 那么他是否有个默认的命名空间
03_AccessingLuaVariables
突然想到还有个问题 :luastate和luascirptmgr这两个也是反射的问题 luastate是反射模式,luascirptmgr是去反射模式
对于luascirptmgr来说 必须先定义变量才能使用,对于luastate来说,lua的代码中可以不定义变量,到unity再定义变量也许。
需要注意 lua中table是一个字典,如果往table中存储数据 ,取出来是应当只取table.value
04_ScriptsFromFile
当使用dofile来加载文件时,luascirptmgr能够直接加载文件名,但路径必须是ulua下面的lua路径。luastate不行
dostring还能加载text文件 text文件名应当加上.lua(猜测)
05_CallLuaFunction
有gc 回收
GetFunction获得方法
Call方法参数是方法的参数, 返回值是方法的返回值
无gc回收的
不会