2

空间划分的数据结构(网格/四叉树/八叉树/BSP树/k-d树/BVH/自定义划分)

[Toc] 前言: 在游戏程序中,空间划分往往是非常重要的优化思想。 于是博主花了一些时间去整理了游戏程序中常用的几个空间划分数据结构,并将它们大概列举出来以供笔记。 网格 (Grid) 这个很容易理解,即一个多维数组。平面/基于高度的空间使用二维网格数组,而3D空间使用三维网格数组。 网格的应用 ...

KillerAery 发布于 2019-05-26 00:07 评论(0)阅读(116)
0

Lua中用table统一管理需要获取的unity物体

unity上的组件,可以用table统一管理 然后在初始化时候统一给table赋值,这样需要用到时候直接调用table中对应的key便可拿到对应的物体,省下了在脚本开头一堆声明的脚本,这样就不用声明这么多次,代码看起来也很简洁 ...

土到极致便是潮 发布于 2019-05-22 16:32 评论(0)阅读(23)
0

UE4 RHI与条件式编译

RHI即RenderHardwareInterface, 即渲染硬件接口, 是UE为实现跨平台而实现的一套API. 每个RHI接口都为OpenGL, Vulkan, DX11等做了不同的实现. 在引擎初始化时使用的绘图接口就已经确定, 引擎就可以确定RHI所使用接口的版本. 针对于不同的绘图API( ...

Saeru_Hikari 发布于 2019-05-21 10:03 评论(0)阅读(21)
1

2019Unite大会

一年一度的Unite大会,在今年(2019)的5月10日准时在上海的国际会议中心盛大举行。本届大会历时三天,由来自全球的Unity公司技术专家、开发者、艺术家和Unity爱好者们齐聚一堂,展示Unity的最新技术成就,以及展示Made with Unity的游戏与行业应用,分享Unity技术应用经验... ...

刘老师讲Unity 发布于 2019-05-21 08:59 评论(0)阅读(267)
0

游戏编程精粹学习 - 使用定点颜色插值模拟实时光照

终于有空看点新东西,这一篇在《游戏编程精粹1》的5.3节中,主要讲通过烘焙前后左右4个方向光照并插值,来代替顶点光照的做法 看了下原文例程的代码,似乎是放在cpu部分处理的顶点色,或可能只是参考用的脚本 这种烘焙4个方向的做法或许优于顶点光照,但缺点是光线角度较为固定,原文描述早期的足球游戏有使用到 ...

HONT 发布于 2019-05-18 23:09 评论(0)阅读(35)
0

Unity检视面板的继承方法研究

对于检视面板 Inspector 的面板继承方式对项目来说是很有必要的, 比如一个基类, 写了一个很好看的检视面板[CustomEditor(typeof(XXX))], 可是所有子类的面板无法直接继承这个CustomEditor, 有些人的解决方案是把子类写检视面板的代码独立出来, 然后子类面板直 ...

tiancaiKG 发布于 2019-05-17 16:22 评论(0)阅读(41)
1

第八章 更复杂的光照(1)

@[TOC] Unity的渲染路径 在Unity里,渲染路径(Rendering Path)决定了光照是如何应用到Unity Shader中的。因此,如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径,只有这样才能让Unity知道“哦,原来这个程序员想要用这种渲染路径,那么好的,我把光源 ...

御坂御坂001 发布于 2019-05-17 07:55 评论(0)阅读(24)
0

获取相机视口内物体在视线范围内某点的方法

我们在做HUD时经常使用物体的位置作为世界坐标点, 这在小物体的情况下没有问题, 但是在对于大型物体就有点麻烦, 因为我们的视角不一定能看到该点, 比如大楼, 大桥甚至公路等, 希望能在物体进入视线范围内时获取一个当前视线范围内该物体离屏幕中心最近的一个点, 作为HUD的世界坐标点来显示. 1. 首 ...

tiancaiKG 发布于 2019-05-15 20:41 评论(0)阅读(22)
0

在win10上使用premake工具和vs2017编译运行Box2D源码和Testbed

1.从github上下载Box2D源码的zip包 2.解压缩zip包 3.从premake网站下载premake5工具,解压后得到premake5.exe 4.将premake5.exe拷贝到Box2D解压的根目录下 5.打开cmd,切换到box2d解压根目录,运行命令premake5 vs2017 ...

编程的小卢 发布于 2019-05-15 15:46 评论(0)阅读(32)
0

刀塔OMG塔防1.26b单机版使用方法

使用方法 1.确保魔兽的版本为1.26以上(低版本会报错),如果版本不对用附件中的版本转换器转一下 2.把 omg.w3x 复制到 魔兽的MAPS文件夹 WarcraftIII 游戏根目录\Maps\ 3.双击运行 点我启动游戏.bat 就可以了另:如果需要改运行参数 如 窗口化 局域网运行等 可以 ...

chillest 发布于 2019-05-14 13:50 评论(0)阅读(104)
0

客户端热更新框架之UI热更框架设计(下)

本篇针对UI框架的热更新功能实现部分展开讨论,讨论的重点是热更新如何与UI框架进行结合?笔者把设计“UI热更新框架”的整体设计与构建过程表述如下,最后附带源码工程的下载链接,供广大学员参考研究。如果大家有什么不明白的地方,欢迎大家在评论区进行讨论。 ...

刘老师讲Unity 发布于 2019-05-09 10:16 评论(0)阅读(141)
0

“996” 工作制热议与奋斗者协议

最近一个月来,互联网上“996”话题被各家媒体与朋友圈刷屏。 各种调侃各种比“惨”应接不暇。 现在笔者就这个问题,整理部分国内外资料以及笔者观点以供国内广大程序员们参考。 ...

刘老师讲Unity 发布于 2019-05-04 17:36 评论(0)阅读(133)
0

插件之一:Epplus

从策划配置文件导入项目实际使用,为提高效率总会使用一些转换工具,据同事介绍Epplus更强大一些,我自己试了下,发现api非常全面且强大。记录下所学。 一、插件来源 https://github.com/JanKallman/EPPlus https://www.nuget.org/packages ...

feixus 发布于 2019-05-04 12:36 评论(0)阅读(25)
0

Bulid过程中中遇到的问题UnityEditor.BuildPlayerWindow+BuildMethodException: '' is an incorrect path for a scene file. BuildPlayer expects paths relative to the project folder.

今天,在Bulid的过程中,遇到了一个错误“ UnityEditor.BuildPlayerWindow+BuildMethodException: '' is an incorrect path for a scene file. BuildPlayer expects paths relativ ...

iNeXTs 发布于 2019-05-03 13:13 评论(0)阅读(42)
0

Unity脚本生命周期与执行顺序

在Unity中,脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码。必须绑定在游戏对象上才能开始它的生命周期。游戏对象可以理解为能容纳各种组件的容器,游戏对象的所有组件一起决定了这个对象的行为和游戏中的表现。 ...

坏坏也童鞋 发布于 2019-05-01 14:51 评论(0)阅读(69)
3

客户端热更新框架之UI热更框架设计(上)

本博客从“什么是热更新,为什么需要热更新”、“热更新要解决的问题”、“热更新的基本原理是什么”、“为什么需要带热更新的框架” 等方面入手,开始介绍笔者开发的一套简易热更新框架设计原理与实现全过程,希望起到抛砖引玉的作用,结交行业好友。 ...

刘老师讲Unity 发布于 2019-04-26 17:50 评论(2)阅读(687)
4

游戏设计模式——内存池管理

前言:对C++游戏程序员来说,内存管理是一件相当头疼的问题。因为C++是将内存赤裸裸的交给程序员,而不像Java/C 有gc机制。 好处是这样对于高性能要求的游戏程序,原生的内存分配可以避免gc机制的臃肿操作,从而大大提高性能。 坏处是C++程序员得时时警惕内存问题: 内存泄露问题 上面的例子中。忘 ...

KillerAery 发布于 2019-04-26 13:02 评论(0)阅读(493)
2

Unity Ragdoll 实现死亡效果 心得+坑点总结

效果展示 正如其名,Ragdoll可以让人物模型实现像布娃娃一样物理效果 创建Ragdoll 在场景中新建 3D Object → Ragdoll... 接下来是一个初见复杂的绑定界面,这里我做了简单翻译 我们需要将模型对应的关节部位一一拉进这个表 创建完成后,可以发现模型中的每个所选部位中多了 一 ...

zhxmdefj 发布于 2019-04-24 18:22 评论(1)阅读(181)
0

Unity 敌人波次设计

一.平均时间随机敌人 将所有种类敌人预制物体放在一个列表里面,每隔时间T从列表中随机选出一个生成在场景中。 二.时间加权紧迫度随机敌人 在随机情况下每种敌人出现的概率近似相等,当敌人种类较多时,有可能有些种类敌人从来没有出现过。解决的方法是,给某个种类的敌人设置一个权值R大小,每个权值乘以当前的帧时 ...

小辉歌 发布于 2019-04-22 22:51 评论(0)阅读(69)
0

Jenkins自动构建Unity

1.下载安装Jenkins 链接:https://jenkins.io/。 2.安装推荐plugins NOTE:安装失败的话,后面进入管理plugins的高级选项中,将更新站点设置为:http://mirror.xmission.com/jenkins/updates/current/update ...

smallrainf 发布于 2019-04-21 18:23 评论(0)阅读(56)