大鹏的专栏

欢迎评论和转载,共同进步,Github : https://github.com/liuhaopen

Unity2018 ECS框架Entities源码解析(一)框架的启动与循环

本文主题:ECS框架的启动和循环,System的OnUpdate函数在哪里被调用,运行时disable一个System 先上个简约版的类图: World:保存着一个EntityManager和一堆ComponentSystem,默认情况下游戏启动时会为我们创建一个World并通过反射把所有...

2018-12-07 11:28:58

阅读数 4542

评论数 7

提取lua代码的函数定义和调用信息(函数名、参数列表、返回值列表等)

最近想做个工具来做一些lua代码检测,比如统计某函数体里的a函数的调用次数,调用绑定事件后是否有把其返回值在某退出函数里解绑定,或者某函数调用的参数是不是和协议文档里的有对应上(这个还是建议直接从协议文档生成lua代码的好).大学时就用正则表达式做过java代码的解析了,这次想换个实现姿势,也想弄...

2018-04-19 18:04:35

阅读数 9935

评论数 0

Unity-UGUI提高开发效率的插件集合

项目源码都在github里:UIEditor PrefabWin窗口 一般一些通用常用的资源我们都会做成prefab,比如某些按钮,文本样式等,然后用到时就在Project视图把它拉入场景,但project视图看不到prefab的预览图,都是蓝色的方块比较难辩认,所以可以用PrefabWin这...

2018-03-17 18:24:45

阅读数 11687

评论数 16

Unity2018 ECS框架Entities源码解析(四)System注入组件信息

我们上章谈过ComponentSystem需要为注入的字段找到符合条件的Archetype链表(m_FirstMatchingArchetype),有两种实现方式,一是每次Update前都遍历所有Archetype找一次,这样简单粗暴但过于低效;复杂点的是做法二,在创建好System时就找一次,之...

2018-12-28 10:23:02

阅读数 3136

评论数 1

Unity2018 ECS框架Entities源码解析(三)ComponentDataArray的实现

一个普通的System大体是这样的: public class SampleSystem : ComponentSystem { public struct Data { public readonly int Length; public Co...

2018-12-23 21:28:00

阅读数 3444

评论数 0

Unity2018 ECS框架Entities源码解析(二)组件与Chunk的内存布局

为了性能考虑,所有Entity里的组件数据都会存放在被称为Chunk的连续内存空间里,因为cpu访问某内存时会顺便加载附近的一段数据,所以数据的连续存放有利于提高缓存命中。 当然,并不是所有的A组件的值都放在同一个Chunk里的,Chunk是按EntityArchetype分配的。EntityA...

2018-12-20 16:43:03

阅读数 4014

评论数 0

在windows上编译PC和Android平台的xlua库(并加入第三方lua库lpeg,sproto,lua-crypt)

添加第三方库: 因为在项目里需要用到其它的lua库如lpeg,sproto,lua-crypt,所以要把它们编译进xlua里. 复制几个库的源码到xlua/build目录里,然后按xlua官方教程(XLua增加删除第三方lua库)那样,先安装cmake,然后在xlua/build/CMakeL...

2018-10-10 10:04:48

阅读数 4848

评论数 0

《守望先锋》中的网络脚本化的武器和技能系统

原文地址:《守望先锋》中的网络脚本化的武器和技能系统在GDC2017【Networking Scripted Weapons and Abilities in Overwatch】的分享会上,来自暴雪的Dan Reed介绍了《守望先锋》中网络化的脚本和工具相关技术。一起来看看吧。  嗨,大家好,我...

2018-05-26 11:35:38

阅读数 7002

评论数 0

用python做爬虫看图软件-RandomPicture

在多次向HR申请程序员鼓励师被无情拒绝后,我决定自力更生,奈何money不够只好代码来凑.我的需求很简单,就是打码打累了或工作闲余之时可以看点美女图陶冶下情操(其实不一样要女的...搞笑图也行),所以就用python做了这个sublime看图插件,图是通过爬虫在特定网页上抓来的,每按一次看图的快捷...

2018-04-28 11:46:18

阅读数 7472

评论数 0

Lua-continuation实现原理

原文地址:Programming in Lua(六)-Continuation在之前的 blog 中 (三、五) 讨论了 Lua C APIs 的 continuation 概念。可以说 Lua continuation 的 VM 实现和 APIs 设计是「inevitable and perfe...

2018-04-26 09:01:33

阅读数 5164

评论数 0

Unity编辑器扩展-制作界面时引入外部的参考图

一般做界面,我们按美术出的图,那里拉个按钮,那里弄个文本,其坐标大小比例等肯定要严格按美术出的图来调节的,所以编辑界面时最好就有张参考图,添加方式如下:参考图的资源可来自项目外的目录,添加后,可以选中它后右键菜单->锁定,这样就不会碍着你了.关于在Scene视图显示右键菜单可...

2018-04-03 19:55:10

阅读数 8297

评论数 0

Unity编辑器扩展-在Scene视图添加右键菜单

我用Unity前的界面编辑器是可以选中节点右键显示菜单的,所以现在也想在Unity上弄一个,需要做的也不多,一是知道什么时候在Scene视图右键单击了,二是在鼠标位置上显示菜单.对于拦截Scene视图的右键单击事件,可以给SceneView.onSceneGUIDelegate加个处理方法就可以了...

2018-04-02 19:49:44

阅读数 8412

评论数 4

帧同步(LockStep)该如何反外挂

原文地址:帧同步(LockStep)该如何反外挂在中国的游戏环境下,反挂已经成为了游戏开发的重中之重,甚至能决定一款游戏的生死,吃鸡就是一个典型的案例。目前参与了了一款动作射击的MOBA类游戏的开发,同步方案上选择了帧同步技术(LockStep而非snapshots以下同)。那么就有很多人担心起来...

2018-03-29 14:41:38

阅读数 6680

评论数 0

Unity Shader-死亡溶解效果

简介原文地址:Unity Shader-死亡溶解效果游戏里面角色死亡的时候,有很多方式可以表现人物死亡效果。最简单粗暴的,播放完死亡动画直接删除或者直接Y轴逐渐降低,沉到地下;比较好的死亡效果就是今天要研究的这种效果-死亡溶解。个人印象比较深刻的就是《生化危机6》里面的克里斯篇,里面的功夫丧尸挂掉...

2018-03-28 09:28:32

阅读数 6805

评论数 1

Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)

简介原文地址:Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)今天来研究几个效果,最近比较忙,所以来弄几个比较简单的效果玩一下。不过也是游戏中常用的一些效果,流光效果,按照方向的溶解效果。其实这几个效果主要运用的就是世界空间坐标或者模型空间坐标用于采样的一个方法,总之就是有些非...

2018-03-27 09:48:50

阅读数 5879

评论数 0

描述编程语言的BNF

转:来自维基百科BNF 规定是推导规则(产生式)的集合,写为:<符号> ::= <使用符号的表达式> 这里的 <符号> 是非终结符,而表达式由一个符号序列,或用指示选...

2018-03-23 15:32:47

阅读数 8756

评论数 0

Unity编辑器扩展-生成prefab的预览图并保存为图片

Project视图里的prefab文件都是一个蓝色的正方体,我想给它们加个预览图,暂时不知道怎么改Project视图的,但反正我想像NGUI那样有个专门的窗口存放一些常用的prefab,所以做成了如下效果:关于如何定制窗口,可以参考雨松的教程:Unity3D研究院之拓展自定义编辑器窗口实现思路:主...

2018-03-21 14:38:59

阅读数 9918

评论数 0

Unity编辑器扩展-点击Projec视图的图片就赋给当前选中的Image节点

我所知道的,UGUI给Image赋上图片的方式有二:一是把图片拉去Image的监视器的Source Image处,一是在点其小圆点弹出选择图片的界面。两种方式我都觉得有点麻烦,我想如果我已经选中某Image节点了,这时再点击Project视图的图片时就要给我赋上该图,效果如下:实现思路:Selec...

2018-03-21 11:41:08

阅读数 8664

评论数 0

Unity编辑器扩展-拉UGUI的prefab入场景时挂在鼠标下的Canvas上

Unity的编辑器,你从Project视图拉图片或者prefab到Scene视图时,默认情况下它会挂在根节点上(起码我用的Unity5.4的是这样的),而每次都要手动地把新增节点挂到想要挂的Canvas上。还好Unity编辑器扩展可以让你自己自由定制,我想要的效果是这样的:实现思路:首先我们需要知...

2018-03-21 11:03:31

阅读数 8779

评论数 0

Unity编辑器扩展-判断当前鼠标在scene视图下有哪些的节点

有时我们需要知道当前鼠标进入了Scene视图中的哪个控件区域,比如说要实现一功能:把prefab拉入Scene视图时判断拉入的位置是否有Canvas,有的话就挂在该Canvas上,无则生成一个。首先是获取鼠标的坐标:可通过Event.current.mousePosition;拿到但拿到的是基于S...

2018-03-19 10:07:34

阅读数 8916

评论数 0

提示
确定要删除当前文章?
取消 删除