新接触Lua,有些词语用的生硬,请多理解!
定义数据类: 便于存取
-- 引用别的Lua文件 ,下面可以直接调用 比如 functions里的方法 : warn('字符串');
require "Common/functions"
require "System/class"
-- 定义变量
local json = require "cjson"
local util = require "3rd/cjson.util"
--数据类 :herodata--
HeroData = class("HeroData")
HeroData.__index = HeroData;
local this = HeroData
--shuxing
function HeroData:New(data)
this.id = data["id"]
this.name = data["name"]
return this
end
<span style="color:#ff0000;">using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace SimpleFramework.Manager {
public class HeroManager : BehaviourBase {
// Use this for initialization
void Start() {
}
public object[] CallMethod(string func, params object[] args) {
return Util.CallMethod("HeroManager", func, args);
}
public void OnInit( )
{
CallMethod("Init");
}
}
}</span>
定义manager。lua类,数据管理类
-- 引用别的Lua文件 ,下面可以直接调用 比如 functions里的方法 : warn('字符串');
require "Logic/hero/HeroData"
require "Common/functions"
require "System/class"
-- 定义变量
local json = require "cjson"
local util = require "3rd/cjson.util"
--管理器--
HeroManager = {};
local this = HeroManager;
local transform;
local gameObject;
function HeroManager.Awake()
end
function HeroManager.Start()
end
function HeroManager.Init()
local path = Util.DataPath.."json/Hero.json";
local text = util.file_load(path);
LuaHelper.OnJsonCallFunc(text,this.OnJsonCallFunc)-- 读取C#脚本 回调回来OnJsonCallFunc()
end
function HeroManager.OnJsonCallFunc(data)
mTextDatas = {};
local tempdata = json.decode(data);
for i,v in ipairs(tempdata) do
local herodata = HeroData:New(v)
mTextDatas[herodata.id] = herodata
end
warn(mTextDatas[13231].name)
end
function HeroManager.OnDestroy()
end
using UnityEngine;
using System.Collections;
using PureMVC.Interfaces;
using SimpleFramework.Manager;
namespace SimpleFramework {
public class BehaviourBase : MonoBehaviour {
private AppFacade m_Facade;
private LuaScriptMgr m_LuaMgr;
private ResourceManager m_ResMgr;
private NetworkManager m_NetMgr;
private MusicManager m_MusicMgr;
private TimerManager m_TimerMgr;
private ThreadManager m_ThreadMgr;
<span style="color:#ff0000;">private HeroManager m_HeroMgr;</span>
protected AppFacade facade {
get {
if (m_Facade == null) {
m_Facade = AppFacade.Instance;
}
return m_Facade;
}
}
protected LuaScriptMgr LuaManager {
get {
if (m_LuaMgr == null) {
m_LuaMgr = facade.GetManager<LuaScriptMgr>(ManagerName.Lua);
}
return m_LuaMgr;
}
set { m_LuaMgr = value; }
}
protected ResourceManager ResManager {
get {
if (m_ResMgr == null) {
m_ResMgr = facade.