0%

最近看的 skynet 使用的 c+lua 的架构,框架提供的是基础的api,所以业务逻辑还得自己去写,如果某些业务逻辑比较耗性能,那可能就需要把某些业务逻辑丢到 c/c++ 去做,提供个接口供 lua 调用。
那么就需要去编个动态库(.so)、静态库(.a)啥的

阅读全文 »

  1. 一般情况下,使用 hash 结构,需要有桶的概念,那么 unordered_map 是如何自动管理桶的,这个问题其实再细分的话是这样的:
    1. 初始的桶是如何设置的
    2. 当需要扩容的时候,是如何重新分布的
  2. 对于 string,unordered_map 的默认哈希函数是怎样的
阅读全文 »

  • 一开始打算用luasocket这个开源的项目,但是接入进cocos中后,在读到流的长度和服务端下发的一直,但是在解析的时候解不出来,push不进lua的stack中。断点跟过一下代码,还是找不出原因(懒癌发作不想看里面的代码),于是乎就写了个简单网络处理(没有做跨平台处理)。
  • 因为用是云风的 sproto 作为rpc框架,里面支持 lua53 ,对流的处理也有api string.packstring.unpack,使得断包粘包处理非常简单。
阅读全文 »

自己现在在做的demo中,用到了大量的UObject对象,战斗的过程中会频繁的new出这些对象,无疑会消耗很大的cpu,为了减少和现有架构的耦合性,本想用继承的方式写个基类,发现ue中不能同时继承两个UObject。根据answerhub里的提示,就是用接口来做。

阅读全文 »

一般来说都是在Editor中 add new c++,这样加完后会自动加入到vs工程中并编译自动生成 XXX.generated.h 头文件。
也可以手动创建c++的XXX.h 和XXX.cpp,然后使用UBT直接加入vs工程中,然后编译生成XXX.generated.h 头文件。
(ps:#inclued “XXX.generated.h”编译前是不存在的,但是也要加入到XXX.h中)

阅读全文 »

圆形Sphere形状选人,以当前某一Actor为中心,以半径为x的范围内选取符合条件的东东(ue中还有一Box形状选人,和Sphere选人差不多)

阅读全文 »

  • UObject、UActorComponent的gc机制
  • 引擎提供好几个 virtual 方法供使用者 override 重写去做 初始化清理
  • 更细节的内容可以去看看源码中流程是怎么走的和调用的时机。
  • 更新:4.15 版本的支持了 蓝图 map、set 容器
阅读全文 »