nikho
07/10/2013, 18h08
Bonjour à tous,
En général, lorsque j'ai des problèmes dans mes scripts j'arrive à m'en sortir en trouvant la réponse sur divers forums consacrés à unity mais pour ce soucis la, je n'ai pas réussi à trouver de réponses. Je me décide donc à m'inscrire ici pour poser la question, en espérant qu'une âme charitable puisse m'aider.
Donc mon soucis. Je suis entrain de développer un jeu dans lequel je laisse libre cours à l'imagination des joueurs : a savoir qu'ils pourront modeler le monde comme ils le désirent, ils pourront créer des structures, créer des scripts, bouger les structures, etc...
Je suis donc entrain de coder tout cela, et cela fonctionne, par contre lorsque je compile j'ai des erreurs.
Par exemple cette erreur : Assets/Scripts/Importer.js(129,36): BCE0005: Unknown identifier: 'AssetDatabase'.
Mon script importer.js permet aux joueurs d'importer des éléments (3d, sons, textures, etc...) directement dans les assets unity.
Voici un bout de ce script pour ceux que ça intéresse
if(etattooglefichiermusique){ //si on doit importer un fichier son
//on verifie son extension
extensionok = false;
for(var extension : String in extensionsfichiermusique) //scan des extensions possibles pour un fichier son
{
if(fichieraimporter.Substring(fichieraimporter.Las tIndexOf(".")) == extension)
{
extensionok = true; //l'extension est ok
}
}
if(extensionok){ //l'extension est ok, on paramétre donc le chemin de destination
chemindestination = "Assets/Resources/Import/Sons";
}else{
//erreur sur l'extension
messagepourutilisateur = "Le fichier n'est pas correct, verifier son type";
}
}
if (chemindestination != ""){ //on lance l'import uniquement si un chemin de destination est correct
messagepourutilisateur = "Importation en cours, merci de patienter";
assetdestination = chemindestination + fichieraimporter.Substring(fichieraimporter.LastIn dexOf('/'));
assetdestination = AssetDatabase.GenerateUniqueAssetPath(assetdestina tion);
System.IO.File.Copy(fichieraimporter, assetdestination, true);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
messagepourutilisateur = "Importation terminée";
}
En fait le soucis proviens du fait que la fonction AssetDatabase est une fonction editor donc inutilisable dans un projet compilé, je me retrouve alors coincé.
Auriez-vous une idée, pour pallier à ce problème? Pouvoir faire ce que j'en envie et pouvoir le compiler.
Je n'ai pas mis toutes les erreurs mais toutes sont dues au fait que j'utilise des fonctions editor, notamment draganddrop, assetdatabase, editorapplication.
En vous remerciant par avance pour avoir lu tout ce pavé et m'aider à trouver une solution.
En général, lorsque j'ai des problèmes dans mes scripts j'arrive à m'en sortir en trouvant la réponse sur divers forums consacrés à unity mais pour ce soucis la, je n'ai pas réussi à trouver de réponses. Je me décide donc à m'inscrire ici pour poser la question, en espérant qu'une âme charitable puisse m'aider.
Donc mon soucis. Je suis entrain de développer un jeu dans lequel je laisse libre cours à l'imagination des joueurs : a savoir qu'ils pourront modeler le monde comme ils le désirent, ils pourront créer des structures, créer des scripts, bouger les structures, etc...
Je suis donc entrain de coder tout cela, et cela fonctionne, par contre lorsque je compile j'ai des erreurs.
Par exemple cette erreur : Assets/Scripts/Importer.js(129,36): BCE0005: Unknown identifier: 'AssetDatabase'.
Mon script importer.js permet aux joueurs d'importer des éléments (3d, sons, textures, etc...) directement dans les assets unity.
Voici un bout de ce script pour ceux que ça intéresse
if(etattooglefichiermusique){ //si on doit importer un fichier son
//on verifie son extension
extensionok = false;
for(var extension : String in extensionsfichiermusique) //scan des extensions possibles pour un fichier son
{
if(fichieraimporter.Substring(fichieraimporter.Las tIndexOf(".")) == extension)
{
extensionok = true; //l'extension est ok
}
}
if(extensionok){ //l'extension est ok, on paramétre donc le chemin de destination
chemindestination = "Assets/Resources/Import/Sons";
}else{
//erreur sur l'extension
messagepourutilisateur = "Le fichier n'est pas correct, verifier son type";
}
}
if (chemindestination != ""){ //on lance l'import uniquement si un chemin de destination est correct
messagepourutilisateur = "Importation en cours, merci de patienter";
assetdestination = chemindestination + fichieraimporter.Substring(fichieraimporter.LastIn dexOf('/'));
assetdestination = AssetDatabase.GenerateUniqueAssetPath(assetdestina tion);
System.IO.File.Copy(fichieraimporter, assetdestination, true);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
messagepourutilisateur = "Importation terminée";
}
En fait le soucis proviens du fait que la fonction AssetDatabase est une fonction editor donc inutilisable dans un projet compilé, je me retrouve alors coincé.
Auriez-vous une idée, pour pallier à ce problème? Pouvoir faire ce que j'en envie et pouvoir le compiler.
Je n'ai pas mis toutes les erreurs mais toutes sont dues au fait que j'utilise des fonctions editor, notamment draganddrop, assetdatabase, editorapplication.
En vous remerciant par avance pour avoir lu tout ce pavé et m'aider à trouver une solution.