tolua 框架 c# 调用 lua 过程 笔记
来源:互联网 发布:淘宝网下载2015新版 编辑:程序博客网 时间:2024/04/29 04:51
c#层
GlobalGenerator
|
AppFacade.Instance.StartUp();// RegisterCommand(NotiConst.START_UP, typeof(StartUpCommand));-> SendMessageCommand(NotiConst.START_UP); ->StartUpCommand
|
//-----------------关联命令-----------------------
AppFacade.Instance.RegisterCommand(NotiConst.DISPATCH_MESSAGE, typeof(SocketCommand));
//-----------------初始化管理器-----------------------
AppFacade.Instance.AddManager(ManagerName.Lua, new LuaScriptMgr());
AppFacade.Instance.AddManager<PanelManager>(ManagerName.Panel);
AppFacade.Instance.AddManager<MusicManager>(ManagerName.Music);
AppFacade.Instance.AddManager<TimerManager>(ManagerName.Timer);
AppFacade.Instance.AddManager<NetworkManager>(ManagerName.Network);
AppFacade.Instance.AddManager<ResourceManager>(ManagerName.Resource);
AppFacade.Instance.AddManager<ThreadManager>(ManagerName.Thread);
AppFacade.Instance.AddManager<GameManager>(ManagerName.Game); -> OnResourceInited -》 LuaManager.DoFile("Logic/Network"); //加载游戏 LuaManager.DoFile("Logic/GameManager"); //加载网络
|
c#调用 LuaScriptPanel
foreach (object o in panels) {
string name = o.ToString().Trim();
if (string.IsNullOrEmpty(name)) continue;
name += "Panel"; //添加
LuaManager.DoFile("View/" + name); //创建panel
Debug.LogWarning("LoadLua---->>>>" + name + ".lua");
|
OnInitOK ->创建Panelctrl
|
lua层
GameManager
|
Panel 创建流程
PromptCtrl new
|
PanelManager:CreatePanel
|
{
string assetName = name + "Panel";
// Load asset from assetBundle.
string abName = name.ToLower() + AppConst.ExtName;
AssetBundleAssetOperation request = ResourceManager.LoadAssetAsync(abName, assetName, typeof(GameObject));
if (request == null) yield break;
yield return StartCoroutine(request);
// Get the asset.
GameObject prefab = request.GetAsset<GameObject>(); 获取prefab(预制的layerUI)
if (Parent.FindChild(name) != null || prefab == null) {
yield break;
}
GameObject go = Instantiate(prefab) as GameObject;
go.name = assetName;
go.layer = LayerMask.NameToLayer("Default"); 设置默认的层级
go.transform.SetParent(Parent);
go.transform.localScale = Vector3.one; 设置大小
go.transform.localPosition = Vector3.zero;设置位置
go.AddComponent<LuaBehaviour>(); 添加控件LuaBehaviour
}
ResManager:LoadAsset('prompt', 'PromptItem', this.InitPanel); 寻找目标PromptItem prefab 并在InitPanel 进行处理
function PromptCtrl.InitPanel(prefab) prefab 即为寻找到的预制物体
end
GlobalGenerator
|
AppFacade.Instance.StartUp();// RegisterCommand(NotiConst.START_UP, typeof(StartUpCommand));-> SendMessageCommand(NotiConst.START_UP); ->StartUpCommand
|
//-----------------关联命令-----------------------
AppFacade.Instance.RegisterCommand(NotiConst.DISPATCH_MESSAGE, typeof(SocketCommand));
//-----------------初始化管理器-----------------------
AppFacade.Instance.AddManager(ManagerName.Lua, new LuaScriptMgr());
AppFacade.Instance.AddManager<PanelManager>(ManagerName.Panel);
AppFacade.Instance.AddManager<MusicManager>(ManagerName.Music);
AppFacade.Instance.AddManager<TimerManager>(ManagerName.Timer);
AppFacade.Instance.AddManager<NetworkManager>(ManagerName.Network);
AppFacade.Instance.AddManager<ResourceManager>(ManagerName.Resource);
AppFacade.Instance.AddManager<ThreadManager>(ManagerName.Thread);
AppFacade.Instance.AddManager<GameManager>(ManagerName.Game); -> OnResourceInited -》 LuaManager.DoFile("Logic/Network"); //加载游戏 LuaManager.DoFile("Logic/GameManager"); //加载网络
|
c#调用 LuaScriptPanel
foreach (object o in panels) {
string name = o.ToString().Trim();
if (string.IsNullOrEmpty(name)) continue;
name += "Panel"; //添加
LuaManager.DoFile("View/" + name); //创建panel
Debug.LogWarning("LoadLua---->>>>" + name + ".lua");
|
OnInitOK ->创建Panelctrl
|
lua层
GameManager
|
Panel 创建流程
PromptCtrl new
|
PanelManager:CreatePanel
|
{
string assetName = name + "Panel";
// Load asset from assetBundle.
string abName = name.ToLower() + AppConst.ExtName;
AssetBundleAssetOperation request = ResourceManager.LoadAssetAsync(abName, assetName, typeof(GameObject));
if (request == null) yield break;
yield return StartCoroutine(request);
// Get the asset.
GameObject prefab = request.GetAsset<GameObject>(); 获取prefab(预制的layerUI)
if (Parent.FindChild(name) != null || prefab == null) {
yield break;
}
GameObject go = Instantiate(prefab) as GameObject;
go.name = assetName;
go.layer = LayerMask.NameToLayer("Default"); 设置默认的层级
go.transform.SetParent(Parent);
go.transform.localScale = Vector3.one; 设置大小
go.transform.localPosition = Vector3.zero;设置位置
go.AddComponent<LuaBehaviour>(); 添加控件LuaBehaviour
}
ResManager:LoadAsset('prompt', 'PromptItem', this.InitPanel); 寻找目标PromptItem prefab 并在InitPanel 进行处理
function PromptCtrl.InitPanel(prefab) prefab 即为寻找到的预制物体
end
0 0
- tolua 框架 c# 调用 lua 过程 笔记
- ToLua#--lua调用C#泛型结构以及遍历
- 项目记录29--unity-tolua框架 c#导出定时器lua
- Lua调用C函数:tolua++ 的使用
- tolua++暴露C++类到lua调用
- ToLua#--lua调用NGUI的事件委托
- tolua里C#与lua互调
- Tolua使用笔记二:lua与C#的函数,变量交互方法
- Tolua使用笔记五:lua中遍历访问c#的Dictionary类对象与枚举类型
- Tolua使用笔记二:lua与C#的函数,变量交互方法
- Tolua使用笔记五:lua中遍历访问c#的Dictionary类对象与枚举类型
- tolua 学习笔记 链表list.lua
- 【Lua】tolua
- [一][ToLua]C#与toLua代码相互调用
- ToLua学习笔记,获取全局lua表,局部lua表
- tolua++绑定C/C++语言函数供lua调用
- 使用tolua++实现C++与LUA相互调用
- 使用tolua++实现C++与LUA相互调用
- 获取线程名
- [Haskell] Module
- exploit
- git的日常使用
- JS实现去除一个字符串中的所有标点和空格
- tolua 框架 c# 调用 lua 过程 笔记
- swiper 手机移动端页面循环
- iOS二维码扫描
- C语言---大数相加
- Java线程池ThreadPoolExecutor深度探索及源码解析
- Ogre中绘制平面
- 树莓派 超声波测距模块HC-SR04
- 采用popupWindow实现view下落效果
- 使用Gradle生成包含所有依赖库(.jar或.aar)的aar包