Techniques d'intégration multimédia, prof(s):
Ce document explique comment changer le sprite d'un GameObject qui est sur la scène par programmation.
C'est le composant SpriteRenderer qui est responsable de l'affichage du sprite d'un GameObject.
Pour modifier le sprite d'un game object il faut...
// Champs requis - placer au dessus de la méthode Start()
private SpriteRenderer _monSpriteRenderer;
[SerializeField] private Sprite _nouveauSprite; // Associez dans l'inspecteur votre asset de sprite à ce champ
// Dans Start()
_monSpriteRenderer = GetComponent<SpriteRenderer>();
// Pour changer le sprite du GameObject au moment voulu...
_monSpriteRenderer.sprite = _nouveauSprite;
Il faut procéder de façon légèrement différente. Par exemeple, si GameManager doit modifier le sprite d'un GameObject (autre que lui-même), on pourra créer dans GameManager un champ exposé afin d'associer dans l'inspecteur de GameManager le GameObject ciblé:
// Champs requis - placer au dessus de la méthode Start()
[SerializeField] private Sprite _nouveauSprite; // Associez dans l'inspecteur votre asset de sprite à ce champ
[SerializeField] private GameObject _objetCible; // Associez dans l'inspecteur votre GameObject à ce champ
// Pour changer le sprite du GameObject au moment voulu...
_objetCible.GetComponent<SpriteRenderer>().sprite = _nouveauSprite;