我希望在游戏中,如果玩家在游戏过程中与特定物体碰撞,能够通过脚本在运行时将玩家对象的透明度设置为2秒钟……这是否可能?
我希望在游戏中,如果玩家在游戏过程中与特定物体碰撞,能够通过脚本在运行时将玩家对象的透明度设置为2秒钟……这是否可能?
检查碰撞。当触发所需的碰撞时,您可以更改透明度。
GameObject g;
// 50% Transparency.
g.renderer.material.color.a = 0.5f; // a is the alpha value.
// 100% Transparency.
g.renderer.material.color.a = 1.0f;
试试这个扩展方法:
public static void ChangeAlpha(this Material mat, float alphaValue)
{
Color oldColor = mat.color;
Color newColor = new Color(oldColor.r, oldColor.g, oldColor.b, alphaValue);
mat.SetColor("_Color", newColor);
}
您可以通过以下方式调用它:
gameObject.renderer.material.ChangeAlpha( Your Alpha Value );
UIMask
的项目。这可以通过着色器简单地完成,您可以在运行时快速高效地更改:
Unlit/Transparent Cutout