private void Awake() { this.luaTable = XLuaManager.GetInstance().InitMonoBehaviour(this, scriptName); luaAwake = CallLuaFunction("Awake"); luaStart = CallLuaFunction("Start"); luaUpdate = CallLuaFunction("Update"); luaOnEnable = CallLuaFunction("OnEnable"); luaOnDestroy = CallLuaFunction("OnDestroy"); luaAwake?.Invoke(); }
// Start is called before the first frame update void Start() { LuaEnv lua = XLuaManager.GetInstance().GetLuaEnv(); onCollisionEnter = lua.Global.Get <Action <Collision> >("OnCollisionEnter"); onCollisionStay = lua.Global.Get <Action <Collision> >("OnCollisionStay"); onCollisionExit = lua.Global.Get <Action <Collision> >("OnCollisionExit"); //transform.GetChild() }
void Awake() { DontDestroyOnLoad(this); Instance = this; Application.targetFrameRate = 60; XLuaManager.GetInstance().StartUp(); // XLuaManager.GetInstance().OnEntry(); }
protected override void Awake() { m_scriptEnv = XLuaManager.GetInstance().CreateTable(); // 为每个脚本设置一个独立的环境,可一定程度上防止脚本间全局变量、函数冲突 LuaTable _meta = XLuaManager.GetInstance().CreateTable(); _meta.Set("__index", XLuaManager.GetInstance().GlobalTable); m_scriptEnv.SetMetaTable(_meta); _meta.Dispose(); m_scriptEnv.Set("self", this); foreach (var _injection in m_injections) { m_scriptEnv.Set(_injection.name, _injection.value); } var _chunk = ScriptFileName; // 读取 var _objects = XLuaManager.GetInstance().DoStringForPath(_chunk, m_scriptEnv, _chunk); if (_objects != null && _objects.Length > 0) { m_luaTable = _objects[0] as LuaTable;; } else { //Debug.LogError("没找到对应lua"); } Action _luaAwake = null; if (m_luaTable != null) { Debug.LogWarning("成功读取函数" + ScriptFileName); _luaAwake = m_luaTable.Get <Action>("Awake"); m_luaTable.Get("Start", out m_luaStart); m_luaTable.Get("Update", out m_luaUpdate); m_luaTable.Get("OnDestroy", out m_luaOnDestroy); m_luaTable.Get("OnEnable", out m_luaEnable); m_luaTable.Get("OnDisable", out m_luaDisable); } if (!XLuaManager.GetInstance().m_scriptEnvDic.Contains(this)) { XLuaManager.GetInstance().m_scriptEnvDic.Add(this); //Debug.LogError("添加"); } //Action _luaAwake = scriptEnv.Get<Action>("Awake"); //scriptEnv.Get("Start", out luaStart); //scriptEnv.Get("Update", out luaUpdate); //scriptEnv.Get("OnDestroy", out luaOnDestroy); //scriptEnv.Get("OnEnable", out luaEnable); //scriptEnv.Get("OnDisable", out luaDisable); if (_luaAwake != null) { _luaAwake(); _luaAwake = null;; } }
private Action CallLuaFunction(string _fun) { return(XLuaManager.GetInstance().CallFunction(gameObject.name, _fun)); }
public static Action CallFunction(string _targetName, string _function) { return(XLuaManager.GetInstance().CallFunction(_targetName, _function)); }