pas faux, j'ai simplement repris celui du live training :
Code : Tout sélectionner
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;
public class AssetBundleMenu
{
[MenuItem("AssetBundles/Clear Cache")]
static void ClearCache()
{
Caching.CleanCache ();
}
[MenuItem("AssetBundles/Build for PC")]
static void TogglePCBuild ()
{
EditorPrefs.SetBool("buildPC", !EditorPrefs.GetBool("buildPC", false));
}
[MenuItem("AssetBundles/Build for PC", true)]
static bool TogglePCBuildValidate ()
{
Menu.SetChecked("AssetBundles/Build for PC", EditorPrefs.GetBool("buildPC", false));
return true;
}
[MenuItem("AssetBundles/Build for OSX")]
static void ToggleOSXBuild ()
{
EditorPrefs.SetBool("buildOSX", !EditorPrefs.GetBool("buildOSX", false));
}
[MenuItem("AssetBundles/Build for OSX", true)]
static bool ToggleOSXBuildValidate ()
{
Menu.SetChecked("AssetBundles/Build for OSX", EditorPrefs.GetBool("buildOSX", false));
return true;
}
[MenuItem("AssetBundles/Build for Web")]
static void ToggleWebBuild ()
{
EditorPrefs.SetBool("buildWeb", !EditorPrefs.GetBool("buildWeb", false));
}
[MenuItem("AssetBundles/Build for Web", true)]
static bool ToggleWebBuildValidate ()
{
Menu.SetChecked("AssetBundles/Build for Web", EditorPrefs.GetBool("buildWeb", false));
return true;
}
[MenuItem("AssetBundles/Build for iOS")]
static void ToggleiOSBuild ()
{
EditorPrefs.SetBool("buildiOS", !EditorPrefs.GetBool("buildiOS", false));
}
[MenuItem("AssetBundles/Build for iOS", true)]
static bool ToggleiOSBuildValidate ()
{
Menu.SetChecked("AssetBundles/Build for iOS", EditorPrefs.GetBool("buildiOS", false));
return true;
}
[MenuItem("AssetBundles/Build for Android")]
static void ToggleAndroidBuild ()
{
EditorPrefs.SetBool("buildAndroid", !EditorPrefs.GetBool("buildAndroid", false));
}
[MenuItem("AssetBundles/Build for Android", true)]
static bool ToggleAndroidBuildValidate ()
{
Menu.SetChecked("AssetBundles/Build for Android", EditorPrefs.GetBool("buildAndroid", false));
return true;
}
[MenuItem("AssetBundles/Build Asset Bundles")]
static void BuildAssetBundles()
{
// Bring up save panel
string path = EditorUtility.SaveFolderPanel ("Save Bundle", "", "");
if (path.Length != 0)
{
if(EditorPrefs.GetBool("buildPC", false))
BuildBundle(path + "/PC", BuildTarget.StandaloneWindows);
if(EditorPrefs.GetBool("buildOSX", false))
BuildBundle(path + "/OSX", BuildTarget.StandaloneOSXUniversal);
if(EditorPrefs.GetBool("buildWeb", false))
BuildBundle(path + "/Web", BuildTarget.WebPlayer);
if(EditorPrefs.GetBool("buildiOS", false))
BuildBundle(path + "/iOS", BuildTarget.iOS);
if(EditorPrefs.GetBool("buildAndroid", false))
BuildBundle(path + "/Android", BuildTarget.Android);
}
}
static void BuildBundle(string path, BuildTarget target)
{
if (!Directory.Exists (path))
Directory.CreateDirectory (path);
BuildPipeline.BuildAssetBundles (path, BuildAssetBundleOptions.None, target);
}
}
Edit : j'ai trouvé le problème des textures j'avais commenté l'appel à la fonction de telechargement des textures >< par contre le rendu bizarre dans l'éditeur du shader standard reste étrange.
Edit 2 : il me semblait que les dépendances étaient incluse dans le bundle pourtant
Edit 3 : bon en fait ça marche en random quand je télécharge les dépendance à la main, et si je ne le fait pas, il manque le mainTexture du material, T_T, je comprends plus rien >< , il faut que je remette à la main la texture dans le material ? ( dans ce cas, l'essetbundle d'un material est quasi inutile ><