John关注
累计获得0赞
xLua热补丁特性上线一年多,已经得到广泛的应用,其中不乏一些千万级DAU、亿级用户量的大游戏,反馈良好。然而同时也有些初接触的童鞋会有不少误区,这篇主要谈谈这些误区。误区规避了,自然容易玩转。误区1:我哪里预测得到哪些地方有bug,进而打标签呢?其实不用预测哪些地方有bug,更多时候我们是把大多数类都囊括在内,然后把一些有把握不出bug(或者出了bug也不好解决,比如还没读懂代码的第三方库)排除
前言Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点。这些优化说穿了其实不复杂。元凶在这里先看看这两个函数?123456789int inc1(int i){ return i + 1;} object inc2(object o){ return (int)o + 1;}window下实测inc1的性能是inc2的20倍!差距为什么那么大?主要原因在其参数及返回的类型,inc2参数
目前Unity下的热更新方案有不少,这些方案都要求要热更新的地方一开始就得用脚本来实现,这带来一些问题:1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用脚本重新实现;2、即使一开始就接入了,也存在同时用两种语言开发难度较大的问题,有些项目只是想fix下bug而已,却被迫使用两种语言开发,明显代价有点大;3、脚本性能不如C#; 对于双语编程的问题,有人尝试通过把C#翻译成脚本来解决(js,lua都见过)。这种翻译往往在C#语法支持上都不完备,而且,性能问题仍然未解决,甚至更严重
写在前面 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。 2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。 目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于:1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用Lua重新实现;2、即使一开始就接入了,也存在同
一、语言间相互调用的两种方式 技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快。今天技术的门槛下降得越来越快,原本需要语言间相互调用的两种方式 RPC 用通讯来实现相互调用,这不是本文的重点,有兴趣的童鞋可以看看这里《RPC的原理和问题》。 利用语言扩展API 大多数语言都提供了C语言的扩展,那么我们可以用C语言作为桥梁实现语言间相互调用,这篇文章主要讲的是这种,下面我们将结合一个实际项目,说下是怎么做的。二、C#和Lua的相互调用1、C#和C的交互 C#的C语言接口是P-
一、没有RPC我们如何通讯?1、收发数据最最基础的他们需要有向对方发送数据以及接收对方所发送数据的能力,可能接口根据其使用的协议,方案可能千变万化,但其接口集合里头肯定会包含如下子集(不会完全相同,可能下面一个接口只是某方案某接口的一部分,或者几个接口共同完成一个接口的任务):int sendTo(Address addr, byte[] data, int len);int recvFrom(Address &addr, byte[] data, int *len);总而言之,就是提供向某个地址发送一段二
这个家伙已过上与世隔绝的生活~