J'ai une grosse épine dans le pied et j'espère que vous pourrez m'aider, je vous expose mon problème :
Je suis en train de réaliser un jeu 2D se basant sur les couleurs, en bref les couleurs ont été volées et chaque boss vaincu ramène une couleur dans le jeu (celui-ci commence donc en noir et blanc).
Cependant, j'ai beaucoup de mal à réaliser la fonction permettant d'activer une couleur dans le jeu. Actuellement j'ai, pour chaque sprite, 4 versions de ce dernier*. Une première en noir et blanc, une deuxième avec le bleu, une troisième avec le bleu et le rouge, et une dernière avec R/G/B.
Pour faire des tests, j'ai créé 3 Triggers, l'un ramenant le bleu, l'un le rouge, et le dernier le vert (forcément dans cet ordre). Et j'ai un code presque fonctionnel (je n'arrive pas à récupérer le chemin d'un sprite, c'est le seul souci) qui s'occupe de recharger chaque sprite en jeu par celui avec la couleur en plus. Cependant, j'ai l'impression que je fais fausse route.
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class changeColor : MonoBehaviour {
SpriteRenderer[] spriteRenderers;
Sprite[] sprites = new Sprite[4];
// Use this for initialization
void Start () {
spriteRenderers = FindObjectsOfType<SpriteRenderer>();
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter2D(Collider2D coll) {
foreach (SpriteRenderer RS in spriteRenderers){
sprites = Resources.LoadAll<Sprite>("Sprites/Characters/Man"); // Ici je suis censé mettre le chemin du sprite, mais en attendant j'ai foutu un chemin en brut
if(name == "BlueButton"){
RS.sprite = sprites[1];
}else if(name == "RedButton"){
RS.sprite = sprites[2];
}else if(name == "GreenButton"){
RS.sprite = sprites[3];
}
}
}
}
* J'utilise des sprites multiples pour cela
https://unity3d.com/fr/