夜游神论坛,传奇一条龙,GM论坛,GM部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

安全 996 php 88A
查看: 2160|回复: 0

[手游教程] Lua框架总结 传奇lua脚本写法及函数定义说明书

[复制链接]

签到天数: 806 天

[LV.10]以坛为家III

3138

主题

3879

帖子

3万

钻石

Rank: 9Rank: 9Rank: 9

积分
7017

最佳新人活跃会员推广达人以坛为家灌水之王热心会员

QQ
发表于 2019-5-23 14:28:36 | 显示全部楼层 |阅读模式
1: ResourceManager
用来加载素材和重写加载素材函数的
2LuaManager
其中的StarMain函数是用来执行lua脚本的
3Packager
用来打包资源的,框架提供的是4.X版本的打包方式,当然,可以用5.X方式打包
4AppConst
这是选择更新模式,如果UpdateModefalese则从本地提取资源更新,如果为true就从WebUrl提供的服务器地址去检测MD5码进行更新
5AppFacade.Instance.GetManager<LuaManager>(ManagerName.Lua).CallFunction(request.callBackName,request.asset);    //这可以使得lua脚本有回调的功能
使得lua脚本可以有回调函数功能
6LuaHelper
为了使得luaC#进行交互,方便获得各种Manager对象而设计的桥梁
7CustomSettings
A:可以查看lua脚本可以访问的C#类型
B:如果要生成自定义的C#脚本供Lua调用的接口,要在CustomSettings中加多个_GTtypeof(自定义C#类的类名))
8:lua调用C#的例子:
function Main()                                       
        print('Begin Load Object')
        LuaHelper=LuaFramework.LuaHelper
        resMgr=LuaHelper.GetResManager()
        resMgr:LoadPrefab('player','Player','OnLoadFinish')
end
function OnLoadFinish(obj)
        print('Lua Load')
        local go=UnityEngine.GameObject.Instantiate(obj)
end
--场景切换通知
function OnLevelWasLoaded(level)
        Time.timeSinceLevelLoad = 0
End
9:如果想知道有哪些C#脚本可供lua调用,只需要搜索Wrap,然后“_“换成“.“,最后把Wrap去掉就是调用的形式
10:event.lua中提供了许多已经封装好monobehaviour的自动触发函数的lua调用,eg
local function Start(o)
                print('Beat')
                self.luaObj = o
                --self.shotPos = self.go.transform.Find('ShotPos')
                self.shotPos = UnityEngine.Transform.Find(self.trans, 'ShotPos')        --查找炮弹发射位置子对象
                UpdateBeat:Add(self.luaObj.Update,self)
        End
这里的意思是将这个脚本的Update函数加入到UpdateBeat里面,这样就可以每一帧都去跑这个函数了!





上一篇:龙女传奇H5手游架设教程
下一篇:Lua脚本要点 Lua脚本解释语言 Lua热更新原理及变量
锄禾日当午,签到不辛苦...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

传奇广告代理|传奇脚本|微变传奇|单职业传奇|热血传奇|传奇私服|GM论坛|英雄合击|小黑屋|百度统计|夜游神论坛 |网站地图

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.