Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ABBuilder
- {
- static readonly Windows.ConsoleWindow Console = new Windows.ConsoleWindow();
- private static readonly string Dest = Application.dataPath + "/AB";
- private static string _dataPath = Application.dataPath;
- [MenuItem("Tools/Copy Assets")]
- public static void CopyAssets()
- {
- var path = "C:/AB_Upload";
- var files = Directory.GetFiles(path);
- var imgPath = "Assets/AB_ref/ImageAsset.png";
- var vidPath = "Assets/AB_ref/VidAsset.mp4";
- var imgAsset = AssetDatabase.LoadAssetAtPath<Texture2D>(imgPath);
- var vidAsset = AssetDatabase.LoadAssetAtPath<VideoClip>(vidPath);
- var destFolderPath = "Assets/Data";
- foreach (var pre_assetPath in files)
- {
- var assetPath = pre_assetPath.Replace("\\", "/");
- Debug.LogFormat("Copying {0}", assetPath);
- if(string.IsNullOrEmpty(assetPath))continue;
- var extension = new FileInfo(assetPath).Extension;
- var assetDest = destFolderPath + assetPath.Substring(assetPath.LastIndexOf('/'));
- assetDest = AssetDatabase.GenerateUniqueAssetPath(assetDest);
- if (extension == ".png")
- {
- AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(imgAsset.GetInstanceID()), assetDest);
- File.Copy(assetPath, assetDest, true);
- }
- else if(extension == ".mp4")
- {
- AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(vidAsset.GetInstanceID()), assetDest);
- File.Copy(assetPath, assetDest, true);
- }
- else
- {
- continue;
- }
- Debug.LogFormat("Copied {0}", assetDest);
- }
- AssetDatabase.SaveAssets();
- AssetDatabase.Refresh();
- }
- [MenuItem("Tools/Build Asset Bundle from Data Folder")]
- public static void BuildAssetBundle()
- {
- AssetBundleBuild build = new AssetBundleBuild();
- build.assetBundleName = "data";
- string[] files = AssetDatabase.GetAllAssetPaths().ToList().Where(x => x.Contains("Assets/Data/")).ToArray();
- build.assetNames = files;
- BuildPipeline.BuildAssetBundles("Assets/AB", new AssetBundleBuild[1] { build }, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
- //todo copy assetbundle to dest folder
- }
- public static void Start()
- {
- Console.Initialize();
- Console.SetTitle( "Test Server" );
- Application.logMessageReceived += HandleLog;
- var sw = new Stopwatch();
- sw.Start();
- Debug.Log(" ");
- Debug.Log("Start copying assets");
- CopyAssets();
- BuildAssetBundle();
- Debug.Log("Finished Building Asset Bundle.. took : " + sw.Elapsed);
- sw.Stop();
- Console.Shutdown();
- }
- //
- // Debug.Log* callback
- //
- //todo define logtype so we can filter all unesseary unity msgs
- static void HandleLog( string message, string stackTrace, LogType type )
- {
- if ( type == LogType.Warning )
- System.Console.ForegroundColor = ConsoleColor.Yellow;
- else if ( type == LogType.Error )
- System.Console.ForegroundColor = ConsoleColor.Red;
- else
- System.Console.ForegroundColor = ConsoleColor.White;
- System.Console.WriteLine( message );
- }
- }
Add Comment
Please, Sign In to add comment