首页 > 解决方案 > 如何有效地渲染像素化线?

问题描述

我在 Unity2D 工作,并且有一个可以向各个方向射击的角色。游戏具有移动控制,玩家将通过右侧的操纵杆选择射击方向。

经过测试,我发现很难正确确定射击的目标位置。为了将这一点传达给玩家,我想为玩家添加一种“射击视线”。它根据操纵杆的位置在玩家周围移动。(如图所示) 因为我想要线条像素化(以匹配游戏的设计主题)我不能使用标准组件,因为它不支持这种像素化线条。所以我开始寻找这个问题的解决方案,偶然发现了Bresenham 的线算法

在此处输入图像描述

LineRenderer. 在将它实施到游戏中后,我知道我必须用像素填充哪个 x、y 坐标。目前,这条线中的每一个白色像素GameObject都有自己SpriteRenderer的一个白色像素作为精灵。在我的测试场景中,一次渲染最多 400 个像素。我已经在使用对象池系统来最大程度地减少性能拖累。移动这条线会使我在编辑器中从大约 1100 Fps 下降到大约 200 Fps。我知道它在构建游戏中会稍微好一些,但我相信当关卡中存在敌人、动画等时,它会对旧的移动设备造成影响。

所以我的问题是:有没有更好或更有效的方式来渲染精灵?或者(最好)你对如何在不创建〜300+的情况下渲染这条线有更好的想法GameObjects. (例如着色器(零经验),在纹理上绘制)

我很感激任何能引导我走向正确方向的想法。

标签: unity3d

解决方案


推荐阅读