时钟的滴答声:如何在Unity中优化编译时间

上周五标志着​​Unity 5.3.5p7的发布,这是一个不经通知或夸大其词就通过的小补丁。 但是,在此修补程序中,还有一个要点,其中还有许多其他修复措施值得我们关注。 那就对了。 优化您的编译时间又回来了!*升级后,我的编译时间从大约17秒缩短到6.3秒。 *(在Unity 5.2.4之后,大多数版本都有一个编译器错误,该错误会否决最有效的编译时间优化策​​略) 但是,我不仅在这里描述每次更改代码后等待的时间减少10秒有多么惊人,我还想问一个问题:为什么没有更多的人看到这个错误得到修复呢? 减少编译时间的想法会不会激发他人的喜悦? 我唯一的结论是,大多数人没有意识到他们可以优化编译时间。 没有官方文档,并且相关的论坛帖子已经过时,因此要获得全面发展并不容易。 但是一旦有了这些,减少编译时间就很简单,而且好处是巨大的。 因此,这是我与编译时间作斗争的个人策略: 1.了解事实 首先,您需要找出代码编译需要多长时间。 对于我自己的一个人的代码库,它徘徊在17秒左右。 对于较大的团队,合理的估计约为30秒。 为了正确理解这一点,我每小时要进行20到30次更改,而不得不等待30秒而不是6.3秒,这会使我的时间表每小时增加大约10分钟的等待时间…

植绒代理算法

爱好项目的小更新 我可定制的植绒算法是我个人面临的挑战,它是创建一个单一的植绒行为脚本来在其代理上生成自发行为。 它考虑了凝聚力,分离力,游荡,攻击(对某些标记为可攻击的实体),回避和其他一些因素。 该算法基于我参加的Udemy课程,并据此制作了自己的增强版本。 分解动物行为动作并将其重新编写成代码,这是一个很棒的练习,它基于静态逻辑生成自然对羊群运动的随机性。 该算法允许复制一个实体,并使用相同的逻辑生成不同的行为。 这项练习帮助我增进了将复杂情况转换为编程逻辑所需的经验和知识。 同样,它也帮助我推进了游戏AI编程,这是我非常感兴趣的主题。 在我看来,使用代码来重现行为有助于增强分析能力,以开发满足特定需求的优质产品,同时考虑到人类习惯和行为以产生更好的结果。 该算法与97个克隆实体一起运行 它可以在机器可以处理的尽可能多的实体上运行,以保持帧速率,仿真是使用97个单位完成的。 如视频所示,所有参数均可实时配置。 为了使事情井井有条,克隆的单元在群游戏对象内部生成,避免了过多的对象填充“层次结构”面板。 也可以添加具有不同个性的实体(只需进行少量代码编辑,即可向系数中添加随机范围值,而不是使它们完全相同)。 遵循的例程是首先收集周围的单位(基于用户定义的半径),对于每次计算(内聚,分离,徘徊,回避,攻击等……),将确定“威尔”系数(该因素的权重)在最终方向上),并根据结果矢量计算最终属性(加速度,速度,方向),它们分别是权重。 这个想法开始是因为我想练习将真实的行为转换为代码,现在轮到我计划制作一款小型游戏(也许是VR),并以此为敌人AI的基础了。 简而言之,这是非常具有挑战性的,但是在我的业余时间开发这个业余爱好项目则更加令人满意。 玩得开心,学习适用于任何编程语言的新技术,创造新事物,并有动力以实现自己的目标为乐,继续学习,这是很棒的。…

我的工作流程示例

本文是制作着色器时的工作流程示例,尽管其背后的许多原理也适用于其他方面。 这对使用Tobii EyeTracker来解决魔术/心灵运动难题的游戏是一种效果。 如果gif在本文中无效,也可以在这里找到。 首先,我将要思考的效果发挥核心作用,以查看效果是否达到了预期的效果。 在这种情况下,我想制作一个魔术光环。 我首先在球体上放置了一个简单的透明且未照明的纹理,然后使用Unity的Time.time变量乘以一个速度变量,然后使用一些辅助脚本将其传递给着色器,在X轴和Y轴上对其进行UV滚动。附加到光环的GameObject。 在这种情况下,我喜欢核心,所以我继续第二步。 一旦对这个想法的核心感到满意,我便会从效果上添加一点点才可以真正出售它。 在这种情况下,我使用一个简单的正弦波将光环的颜色脉动。 这对效果有所帮助,但我认为效果不够。 为了修正效果的无聊性和“是的,看起来仍然像球体”的感觉,我添加了旋转的粒子效果,这些效果在球体表面生成并以随机方向浮动。 加上脉动的颜色和紫外线滚动,足以给我带来魔幻光环的氛围,但我仍然感觉到缺少特别的小东西,使我感到炫耀。 最后一次在边缘上的推动是一个非常透明的,稍大的球体,它在X轴上与基本球体相反地滚动,而在Y轴上不滚动。 然后,我根据Time.time的正弦波对顶点进行动画处理,该动画首先在X轴上然后在Y轴上轻轻地使球体变形。 这种变形会交替出现。 经过最后一次颠簸之后,我对将其放入游戏中的效果非常满意。 这个效果花了我大约两个小时的时间,并且在制作它的游戏中被广泛使用。…