热更踩坑

1.lua无法自动注入C#程序集

PlayerSetting里的Scripting Define Symbol里设置为HOTFIX_ENABLE(宏)

2.[CSharpCallLua]无法编译

接口类或委托类必须设为public才能编译

3.无法打包成功的坑

删除Example文件,再clear->gen->hotfix

4.定义myLoader

private byte[] MyLoader(ref string path)
    {
        string absPath;
        absPath = Application.streamingAssetsPath+"/"+path+".lua.txt";
        return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));
    }

5.LuaEnv释放时的bug

//新建一个lua文件用于释放,在luaenv释放前
private void OnDisable()
    {
        lua.DoString("require 'Dispose'");
    }

//lua文件内容
xlua.hotfix(CS.CreateEmpty,'CreateCube',nil)

6.对类的私有成员进行修改的坑

需要加上xlua.private_accessible(CS.类名)

7.方法调用的坑

静态方法直接可以.()调用,普通方法调用要传自己如.(self)

8.补丁运行顺序坑

将LuaEnv声明为全局唯一的静态变量,并在所有逻辑前最先调用

9.只修改函数里部分变量

//将xlua的util文件引入自己lua的同级文件下,并声明对象引用
local util=require 'util'

xlua.private_accessible(CS.Rotate)
//用这个引用对象的hotfix_ex方法可以运行C# 脚本里的代码再修改
util.hotfix_ex(CS.Rotate,'Start',function(self)
	self.Start(self)
	self.rotateSpeed=550
end)

10.Invoke是谁调用的

当前类。即this.Invoke,转lua时是self.Invoke

11.lua没有泛型

如GetCoponent(),转lua是GetComponent(“xxx”)

12.从Web上拉lua

 private void GetLua()
    {
        StartCoroutine(GetLuaFromWeb("HotFix"));
        StartCoroutine(GetLuaFromWeb("Dispose"));
    }

    IEnumerator GetLuaFromWeb(string luaName)
    {

        //www加载方式

        //string uri = @"file:///D:\Unity_WorkSpace\XLuaLearn\AssetBundles\longcube.ab";
        string uri = @"http://localhost/" + luaName + ".lua.txt";

        UnityWebRequest request = UnityWebRequest.Get(uri);
        yield return request.SendWebRequest();

        string luaText = request.downloadHandler.text;

        string luaWritePath = Application.streamingAssetsPath + "\\" + luaName + ".lua.txt";


        File.WriteAllText(luaWritePath, luaText);

    }

13.luaEnv

 void CreateLuaEnv()
    {
        lua = new LuaEnv();

        lua.AddLoader(MyLoader);

        lua.DoString("require 'HotFix'");
    }
Activiti是一个流程引擎,用于管理和执行工作流程。在使用Activiti时,有一些常见的问题和需要注意。以下是一些可能会遇到的问题和解决方法: 1. 数据库问题:Activiti使用数据库来存储流程实例、任务、历史数据等。在使用Activiti之前,确保已正确配置并连接了数据库。 2. 配置问题:Activiti需要一个activiti.cfg.xml文件来配置引擎的属性,如数据库连接信息和流程定义文件的位置。确保配置文件正确地指定了这些属性。 3. 流程定义问题:在部署流程定义时,确保流程定义文件(通常是一个BPMN文件)位于正确的位置,并且包含了正确的流程定义和任务。 4. 用户任务问题:如果你在流程中使用了用户任务,确保在任务分配给用户之前,已经创建了相应的用户或用户组,并且用户具有执行该任务的权限。 5. 并发问题:当多个用户同时执行流程时,可能会出现并发问题。确保在设计流程时考虑到并发情况,并使用适当的锁机制来处理共享资源。 6. 异常处理问题:在执行流程过程中可能会出现异常情况,如任务超时或执行失败。确保适当地处理这些异常,并记录错误信息以便后续排查。 7. 版本问题:如果你新了流程定义或者修改了流程模型,确保在部署新版本之前,旧版本的流程实例已经完成或被中止。 这些是一些常见的Activiti问题,希望对你有所帮助。如果你有具体的问题或者其他方面的疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值