Exemplo n.º 1
0
    /// <summary>
    /// 销毁控制器
    /// </summary>
    /// <returns>是否销毁成功</returns>
    public bool Destory()
    {
        if (mStatus == EnumConfig.SystemControllerStatusEnum.OVER)
        {
            Debug.LogError("system controller status is overed. destory faild.");
            return(false);
        }
        mStatus = EnumConfig.SystemControllerStatusEnum.OVER;

        if (mLuaOnDestroy != null)
        {
            mLuaOnDestroy();
        }

        if (mLuaenv != null)
        {
            mLuaenv.Dispose();
        }
        mLuaStart     = null;
        mLuaUpdate    = null;
        mLuaOnDestroy = null;
        mLuaenv       = null;
        mScriptEnv.Dispose();
        injections = null;
        return(true);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 初始化控制器
    /// </summary>
    private void init()
    {
        mStatus = EnumConfig.SystemControllerStatusEnum.INIT;
        mLuaenv = new XLua.LuaEnv();
        mLuaenv.DoString("CS.UnityEngine.Debug.Log('Lua Env create successful.')");

        mScriptEnv = mLuaenv.NewTable();

        Utils.BindMetaTable(mLuaenv, mScriptEnv);

        mScriptEnv.Set("self", this);

        foreach (var injection in injections)
        {
            mScriptEnv.Set(injection.name, injection.value);
        }
        mLuaenv.DoString(mLuaScript.text, "LuaTestScript", mScriptEnv);

        Action awake = mScriptEnv.Get <Action>("awake");

        if (awake != null)
        {
            awake();
        }

        mScriptEnv.Get("onStart", out mLuaStart);
        mScriptEnv.Get("update", out mLuaUpdate);
        mScriptEnv.Get("onDestroy", out mLuaOnDestroy);
    }
Exemplo n.º 3
0
 /// <summary>
 /// 启动控制器
 /// </summary>
 /// <returns>是否启动成功</returns>
 public bool Start()
 {
     mStatus = EnumConfig.SystemControllerStatusEnum.STARTING;
     if (mLuaStart != null)
     {
         mLuaStart();
     }
     return(true);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 暂停游戏
 /// </summary>
 /// <returns>是否暂停成功</returns>
 public bool Pause()
 {
     mStatus = EnumConfig.SystemControllerStatusEnum.PAUSE;
     return(true);
 }