我刚开始用URP在Unity进行中的游戏。我在做一种3D精灵,所以我在四边形上画了一些精灵片。为此,我用sprite工作表创建了一个材料,并使用贴图/偏移来渲染适当的动画框架,方法是进行如下调用:
CombatMaterial?.SetTextureOffset("_BaseMap", new Vector2( (AnimationDefinitions[animationDefinition] % 16) * .0625f, CombatMaterial.mainTextureOffset.y));我目前正试图添加一些反馈到我的游戏中,当角色使用能力或被击中时,闪烁的材料。因为基色从白色开始,然后变成黑色,这是行不通的;我唯一能得到的东西就是发射,这看起来很棒。使用0xAAAish颜色达到了我正在寻找的效果。我一直在使用“感觉统一”资产来完成这项工作,但我也尝试使用这样的方法:
CombatMaterial?.SetColor("_EmissionColor", Color.white);问题是,一旦我设置了_EmissionColor,主纹理就不会再在游戏中更新,从而破坏所有的动画。如果在运行时通过检查器手动更改纹理偏移量,则动画无法工作,_EmissionColor闪烁停止工作。如果我在检查器中混淆了_BaseMap的颜色,_EmissionColor闪烁又开始工作了。
在我开始尝试一些难看的颜色调整来让它再次发挥作用之前,我很想知道我是否在做一些根本没有URP/Materials/任何东西支持的事情,或者除了我正在做的事情之外,还有其他的选择,这就更简单了。
谢谢!
发布于 2022-04-28 19:21:52
在尝试了一堆随机的东西之后,我没有一个“真正的”解决方案,但是这个游戏正在以我想要的方式工作。
对我起作用的是将材料上的_EmissionColor设置为(1,1,1)。由于某些原因,当_EmissionColor设置为(0,0,0)时,它是一个黑色(ha)洞,不会接受将来对_EmissionColor的更改。我认为这是一些无稽之谈(与基础照明阴影,URP使用),我显然不熟悉。
希望这能帮助任何人做一些像我这样毫无意义的反对粮食的事情!
https://stackoverflow.com/questions/72010188
复制相似问题