Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
    // 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()
    }
Ejemplo n.º 3
0
    void Awake()
    {
        DontDestroyOnLoad(this);

        Instance = this;
        Application.targetFrameRate = 60;


        XLuaManager.GetInstance().StartUp();
        // XLuaManager.GetInstance().OnEntry();
    }
Ejemplo n.º 4
0
    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;;
        }
    }
Ejemplo n.º 5
0
 private Action CallLuaFunction(string _fun)
 {
     return(XLuaManager.GetInstance().CallFunction(gameObject.name, _fun));
 }
Ejemplo n.º 6
0
 public static Action CallFunction(string _targetName, string _function)
 {
     return(XLuaManager.GetInstance().CallFunction(_targetName, _function));
 }