BuildFromCLI.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using UnityEditor;
  3. using UnityEngine;
  4. using CSObjectWrapEditor;
  5. using XLua;
  6. namespace XLuaTest
  7. {
  8. public static class BuildFromCLI
  9. {
  10. /// <summary>
  11. /// 此方法通过Unity菜单调用。
  12. /// </summary>
  13. [MenuItem("XLua/Examples/13_BuildFromCLI")]
  14. public static void BuildFromUnityMenu()
  15. {
  16. var outputDir = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length) + "/output";
  17. var packageName = "xLuaGame.exe";
  18. build(outputDir, packageName);
  19. }
  20. /// <summary>
  21. /// 此方法通过命令行调用。
  22. /// </summary>
  23. public static void Build()
  24. {
  25. var outputDir = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length) + "/output";
  26. var packageName = "xLuaGame.exe";
  27. build(outputDir, packageName);
  28. }
  29. private static void build(string outputDir, string packageName)
  30. {
  31. Debug.Log("构建开始:输出目录 " + outputDir);
  32. DelegateBridge.Gen_Flag = true;
  33. Generator.ClearAll();
  34. Generator.GenAll();
  35. var levels = new string[0];
  36. var locationPathName = string.Format("{0}/{1}", outputDir, packageName);
  37. var target = BuildTarget.StandaloneWindows64;
  38. var options = BuildOptions.None;
  39. BuildPipeline.BuildPlayer(levels, locationPathName, target, options);
  40. Debug.Log("构建完成");
  41. }
  42. }
  43. }