champions-of-luneraria/Assets/Luneraria/Editor/Setup/LunePlayerBuild.cs
Martin Stickelbroeck 323cc3ae00 U2D Playable Unity Match
Vollständige Bot-Partien sichtbar in Unity, gleich der Partie des Kerns
(Vertical Function Test vor dem vollständigen Asset-Import).

- VerticalFunctionTests (PlayMode): Seed 2 von Runde 1 bis zum Fall des
  Blau-Ancient (9 Runden; Türme fallen ab Runde 7, Grottenboss in Runde 8
  gewonnen und in Runde 9 auf der Bot-Lane eingesetzt, bis zu 4 Helden) und
  Seed 9 ab Runde 21 mit der Fixture des Golden-Szenarios high_wave_21 (bis zu
  125 Einheiten, 6 Helden, Fall des Rot-Ancient). Beide Fingerabdrücke gleich
  dem Kernlauf; 14 Bilder der Schlüsselmomente.
- macOS-Player-Build (LunePlayerBuild) und LuneBenchmark: 1080p, VSync aus,
  116 Einheiten: 161-199 fps, Hauptthread 1,3 ms, Simulation unter 0,1 ms;
  Ausreißer beim Present (p95 18-26 ms) analysiert und für U5 vorgemerkt.
- Dokumentation: U2-WORLD (U2D, Abnahme), PORT-STATUS, PORT-QA,
  KNOWN-BEHAVIOR-DIFFERENCES (U2 ändert kein Verhalten), README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 17:31:19 +02:00

32 lines
1.4 KiB
C#

using System.IO;
using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;
namespace Luneraria.EditorTools
{
/// <summary>
/// Player builds (U2D). Only macOS is possible on this machine; Windows and Linux need the build
/// modules listed in docs/port/U1.5-UNITY.md. Output goes to Builds/ (ignored by git).
/// Unity -batchmode -projectPath . -executeMethod Luneraria.EditorTools.LunePlayerBuild.BuildMac -logFile -
/// </summary>
public static class LunePlayerBuild
{
public static void BuildMac()
{
string path = Path.Combine(Path.GetDirectoryName(Application.dataPath), "Builds/macOS/Luneraria.app");
// CPU and GPU frame timings for the benchmark (FrameTimingManager).
PlayerSettings.enableFrameTimingStats = true;
var options = new BuildPlayerOptions
{
scenes = new[] { LuneWorldBuilder.ScenePath },
locationPathName = path,
target = BuildTarget.StandaloneOSX,
options = BuildOptions.None,
};
BuildReport report = BuildPipeline.BuildPlayer(options);
Debug.Log(string.Format("LUNE_BUILD {0}: {1}, {2:0.0} MB, {3:0.0} s", report.summary.result, path, report.summary.totalSize / 1048576.0, report.summary.totalTime.TotalSeconds));
EditorApplication.Exit(report.summary.result == BuildResult.Succeeded ? 0 : 1);
}
}
}