Chemin vers le dossier Resources

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
petertohen
Messages : 1
Inscription : 13 Jan 2018 08:15

Chemin vers le dossier Resources

Message par petertohen » 13 Jan 2018 08:19

Bonjour à tous,

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];
			}
		}
	}
}
En effet, ce code, si je corrigeais la ligne qui déconne, ne me permettrait pas de recharger le sprite des objets créés pendant que le jeu tourne, comme les projectiles. Alors je sais pas trop comment procéder. Vous auriez des pistes ? Une autre manière de faire plus efficace et plus souple ? J'ai l'impression qu'avec ma manière de faire, je pourrai pas non plus gérer les animations. Je suis dans l'impasse.

* J'utilise des sprites multiples pour cela
https://unity3d.com/fr/

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Aidez-moi

Message par Max » 13 Jan 2018 12:37

Bonjour,

Est-ce que tes ressources en sprites sont bien dans le dossier 'Resources ' de ton projet ?
Le chemin que tu donne "Sprites/Characters/Man" doit implicitement être dans le dossier 'Resources', comme spécifié dans la doc, sinon cela ne fonctionnera pas.

PS: pour le titre de ton sujet, change le, car pas vraiment explicite. Merci.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « Scripting »