【发布时间】:2021-07-03 16:17:44
【问题描述】:
我正在制作一款 2D 潜行游戏。玩家有一个显示玩家视线的视锥。目前,视锥是在 2D 游戏中呈现在 2D 精灵前面的网格。我正在尝试使用精灵面具来隐藏不在玩家视线范围内的敌人。
我尝试为此使用精灵蒙版,但精灵蒙版组件需要精灵,而我有一个网格。 Sprite Mask Component
我希望红色方块仅在黄色视野锥后面可见。
fov 网格是在运行时使用光线投射计算的,并根据这些投射的命中点构建。
有没有办法将网格转换为精灵以与精灵蒙版一起使用?
【问题讨论】:
-
我不确定你能/想要这样做。那将修改每帧可能有点大的图像。您可能想要研究的是在着色器中使用模板缓冲区。无需过多介绍细节,FOV 材质可以有一个带有 Stencil{ Pass incrSat } 的着色器。还有你敌人的着色器 Stencil{ Ref 1 Comp LEqual}。这样做的目的是,当您的 FOV 渲染时,它会在其渲染的所有像素上绘制 +1,而当敌人执行 Comp LEqual 时,它将丢弃所有仍为 0 的像素。不是超级直接,但它可以正常工作:)。