使用着色器进行像素完美选择
Sky Tycoon中的对象选择不是使用碰撞器以及OnMouse或IPointer事件以传统的Unity方式处理的。 相反,为了实现对像素的完美选择而对性能的影响最小,游戏使用了一种自定义解决方案,该解决方案基于将可选对象渲染到RenderTexture并在每一帧期间从中获取选择信息。 访问 http://blog.celestial-static-games.de/ 上的 Sky Tycoon, 以找到有关Unity开发的游戏技术文章的更多信息! 理论上 我最近遇到了在最近玩《模拟人生4》时通过着色器输出执行对象选择的想法。 检出此游戏片段,其中选择在接收器和计数器之间交替。 如果涉及到碰撞器(甚至是网状碰撞器),那么当您移入水槽的插入区域时,您可能希望选择无法正常工作。 请注意,我已经增加了选择纹理的对比度,因为由于Alpha通道也用于编码值(在这种情况下非常低),否则它几乎是不可见的。 本身呈现选择颜色的着色器非常简单。 如前所述,由于Sky Tycoon将Instancing用于对象,演员等可选对象,因此着色器可以通过MaterialPropertyBlock访问选择颜色。 然后,着色器所做的全部工作就是将该颜色渲染到屏幕上,覆盖以前渲染的所有片段。…