如何在 Unity 中使用碰撞脚本更改 material

How to change a material in Unity using a script on collison

我目前正在用 Unity3D 制作手机游戏。我想要这样当一个带有标签 'Damage' 的球被碰撞时,它会改变屏幕顶部损坏指示器的 material。有没有简单的方法来做到这一点?

提前致谢。

您通常会在您的“GameManager”中放置诸如“伤害指示器”之类的东西,而 GameManager 通常是一个单例。这意味着你在碰撞时间,你可以检查对撞机标签,如果它是“Damage”,那么你在你的 GameManager 中调用一个函数来改变你的“damage indicator”的 material 。像这样:

public class ExampleClass : MonoBehaviour
{

    ....

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Damage")
            GameManager.instance.DamageDone();
    }
}

游戏经理:

public class GameManager : MonoBehaviour
{
    public static GameManager instance;

    public Material damageMat;
    public Renderer damageIndicatorRenderer;

    ....

    void DamageDone()
    {
        damageIndicatorRenderer.material = damageMat;
    }
}