[DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Falcon
Messages : 4
Inscription : 16 Mai 2016 20:59

[DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par Falcon » 16 Mai 2016 21:21

Voila, je me présente, je suis lycée en classe de terminales, et dans le cadre de mas spé ISN ( informatique et science du numérique ), nous avons choisi de réaliser une sorte de petit jeu sur Unity.

Le problème étant que j'ai trouver un système d'inventaire en Java, et que je voudrais y apporter une modification pour chercher le nombre de "tronc" et savoir si la construction que le joueur veut réaliser pourras être faite ( si il en as assez )

J'ai alors dans mon script un tableau qui représente les 12 cases de l'inventaire

Code : Tout sélectionner

var Contents : Transform[];
var MaxContent : int = 12;
et j'ai réaliser une sorte de compteur avec la variable x qui "cherche" donc le nombre de tronc pour les cases allant de i à 12, i étant à 0 au départ
ça me donne alors cela :

Code : Tout sélectionner

function compteur(Item:Transform)
{
    var tronc = GameObject("tronc");
    var x = 0;
    for (var i : int = 0; i < 12; i++)
    {
        if (Transform[i] == tronc) {
            x = x+1;
           }
    
    }
Debug.Log(x);
       
}
L'erreur étant au niveau de :

Code : Tout sélectionner

if (Transform[i] == tronc)
Voila, j’espère avoir été assez claire dans ce que j'ai fait et que quelqu'un pourras peut être m'aider !
Merci !

Le panneau rouge n'est pas asse lisible? -> Merci d'indiquer le type de message: Algorithme débutant: [DB - AL] dans le titre

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par Moi 1971 » 17 Mai 2016 08:41

Bonjour,
Je vais essayé de ne pas être trop cassant... ISN c'est une spé en info? Et vous appelé le "JavaScript", "Java"?
L'erreur étant au niveau de :
Quel est le message d'erreur? Que dit Unity?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6247
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par boubouk50 » 17 Mai 2016 10:33

Code : Tout sélectionner

if (Transform[i] == tronc)
Transform est un type, tu ne peux pas t'en servir comme tableau. C'est le tableau de Transform qu'il faut que tu utilises. Surement Contents?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Falcon
Messages : 4
Inscription : 16 Mai 2016 20:59

Re: [DB-AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par Falcon » 17 Mai 2016 17:43

Moi 1971 a écrit :Bonjour,
Je vais essayé de ne pas être trop cassant... ISN c'est une spé en info? Et vous appelé le "JavaScript", "Java"?
Pour ça excuse moi, c'est une habitude avec un amis, on dis cela pour aller plus vite, et je n'ai pas fait attention en rédigeant mon message

Moi 1971 a écrit :Quel est le message d'erreur? Que dit Unity?
Et unity me dis exactement :
"Assets/Inventory/Scripts/Inventory.js(126,13): BCE0048: Type 'System.Type' does not support slicing."

Et pour le tableau, je regarde en le remplaçant par content
Merci !
Dernière édition par Falcon le 17 Mai 2016 17:52, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6247
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par boubouk50 » 17 Mai 2016 17:47

Je sais pas si c'est parce que tu as rédigé vite:
Contents pas content (d'ailleurs une variable ne devrait pas commencer par une majuscule par convention ce sont les méthodes). Cette variable exactement:

Code : Tout sélectionner

var Contents : Transform[];
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Falcon
Messages : 4
Inscription : 16 Mai 2016 20:59

Re: [DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par Falcon » 17 Mai 2016 17:53

Oui, merci pour ça, c'est ce que je voulais dire pour Contents mais je n'avais plus le message sous les yeux ^^
Et merci pour l'info !!

Du coup je dois bien faire :

Code : Tout sélectionner

if (Contents[i] == tronc)
?

Et pourquoi :

Code : Tout sélectionner

function compteur(Item:Transform)
Ne se transforme pas en :

Code : Tout sélectionner

function compteur(Item:Contents)
?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6247
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par boubouk50 » 18 Mai 2016 09:24

Alors c'est peu l'une des bases de la programmation...

Transform est un type, Contents est une variable. var Contents : Transform est une variable de type Transform. Lorsque tu veux annoncer la variable tu utilises Contents, quand tu veux déclarer le type tu utilises Transform.
ici tu as var Contents : Transform[]; tu déclares donc un tableau de Transform.

function compteur(Item:Transform): Ici, tu déclares une fonction nommée compteur qui a un paramètre nommé Item de type Transform.
function compteur(Item:Contents): Ici, tu déclares une fonction nommée compteur qui a un paramètre nommé Item de type Contents. Or Contents n'est pas un type, c'est une variable. Donc tu ne peux pas faire ça. Il faudrait pour cela définir un nouveau type pour que ce soit possible en déclarant une Structure par exemple.

Aussi: Nomenclature -> Une variable ne commence PAS par une majuscule, Une fonction commence par une majuscule (l'inverse de ce que tu écris:
var contents : Transform [];
function Compteur (item : Transform) {}
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Falcon
Messages : 4
Inscription : 16 Mai 2016 20:59

Re: [DB - AL] Erreur BCE0048: Type 'System.Type' does not support slicing.

Message par Falcon » 18 Mai 2016 13:07

D'accord, merci beaucoup pour ces explications !
Et pour la nomenclature, merci encore, c'est toujours bon à savoir ! :)

Verrouillé

Revenir vers « (Js) Javascript »