如何在 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;
}
}
我目前正在用 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;
}
}