【发布时间】:2020-12-18 09:52:05
【问题描述】:
我有一个玩家游戏对象。每当我改变方向时,我都会翻转玩家的 x 刻度,因此当他面向右侧时为 1,而当他面向左侧时为 -1。
这段代码负责翻转播放器刻度并水平移动播放器:
void FlipScale()
{
facingRight = !facingRight;
transform.localScale = new Vector2(transform.localScale.x * -1, transform.localScale.y);
}
void MoveHorizontally()
{
if (wantsToMoveLeft && wantsToMoveRight) { return; }
if (wantsToMoveRight)
{
rb.velocity = new Vector2(runVelocity, rb.velocity.y);
if (!facingRight) { FlipScale(); }
}
else if (wantsToMoveLeft)
{
rb.velocity = new Vector2(-runVelocity, rb.velocity.y);
if (facingRight) { FlipScale(); }
}
}
播放器对象有一个子对象,它具有使用此着色器材质的主精灵渲染器:
不断将 Fade 从 1 更改为 0 会产生玩家消散的效果,最终在 0 处完全消失。这是中途的样子:
但是,当我使用上面的脚本翻转播放器时,着色器中断,播放器消失。此外,当我将 Fade 值从 1 更改为小于 0.1 时,播放器突然看起来发光了:
再次翻转精灵并不能解决问题。此外,通过检查器翻转精灵不会破坏着色器,只有当我通过代码进行时。我使用本教程创建了这个着色器:https://www.youtube.com/watch?v=WiDVoj5VQ4c。这是我当前的着色器图:
我刚开始使用着色器,如果问题非常明显,我深表歉意。我在堆栈溢出和其他网站上尝试了很多修复,但到目前为止没有任何效果。如果我没有提供足够的信息,请询问。
编辑 1:发现当着色器中断时,只要 Fade 值低于 Edge 值,播放器就会开始发光。如果相同或以上,播放器看起来正常,但溶解效果仍然不起作用。
编辑 2:更改为无光照着色器并不能解决问题。
【问题讨论】: