我们刚刚在 Unity 项目中修复了一些问题,想与大家分享一下。
首先,背景介绍一下。玩家扮演地狱的清洁工,拥有小型的无人机叫做“Doomba”,它们不是敌人,而是你的工人,它们会四处移动并自动化一些事情。你可以故意把它们吸起来,这是游戏中的一个实际功能,吸起来的目的是为了收集它们,命名它们或者杀死它们。所以,抓住 Doomba 是一个你故意要做的事情。
问题出在吸尘功能上。吸尘是一个大循环,主要是清理掉肢体的堆积,但是吸尘的方式有问题。吸尘的方法是基于一个圆锥体的重叠检测,如果任何可以被吸附的物体进入这个圆锥体,就会被吸附。问题出在于,如果玩家正在吸尘,而附近的 Doomba 过于靠近玩家,就会被吸附进去。所以,你正在清理一堆肢体,而你的工人却被吸附进去,因为它只是走过来了。我们在 NextFest 展示中遇到这个问题,玩家们都非常恼火。
解决这个问题的方法是引入一个瞄准门。对于单位,我们现在从玩家的瞄准点发射一个射线,只有玩家瞄准的 Doomba 才会被吸附。肢体和掉落物品仍然使用老的宽圆锥体,因为这个部分的感觉应该是松散和放松的。整个过程都由一个 LayerMask 驱动,所以它是基于层的,单位需要瞄准,肢体和掉落物品不需要,之后我可以在不改变任何代码的情况下标记更多的层。
我们还修复了一个相关的问题,一个正在被吸附的 Doomba 会浮在玩家头上,而不是朝着吸尘口移动。这个问题是因为单位的浮动弹簧和吸尘力的冲突。分离了这些之后,现在一切正常。
我们还对工具的轮廓高亮系统进行了修复。因为玩家们经常无法确定他们的工具会做什么。现在,工具的轮廓高亮系统是基于玩家检测器的,基于渲染器的图形轮廓驱动。现在,所有在玩家工具范围内的物体都会高亮显示玩家当前工具的颜色,吸尘工具是蓝色的,绑定工具是绿色的,粘液工具有自己的颜色。玩家瞄准的目标会高亮显示,玩家试图使用工具的物体会显示红色闪烁,玩家试图使用无法作用的工具会显示红色闪烁。
评论 (0)