Fester Simulationstakt und Ansichten, die nur lesen; Nachweis, dass die Partie bei jeder Bildrate dieselbe ist. - LuneClock: Akkumulator, ganze Schritte zu 0,05 s, Alpha zum Interpolieren. - LuneMatchRunner: Host-Ablauf einer Bot-Partie (Planung über die Befehlsschnittstelle, Kampf im festen Takt, Abrechnung, nächste Runde); LuneMatchDriver reicht in Update nur Bildzeit weiter. - LuneTrace: Fingerabdruck der Partie (jeder Schritt, jede Abrechnung) und der reine Kernlauf zum Vergleich. - Ansichten: LuneMatchView, LuneUnitView (interpolierte Position, Blickrichtung, Clips aus Kampfereignissen, Teamring, Lebensbalken), LuneBuildingView mit Einsturz und Ruine aus den autoritativen HP, Turmblitze, LuneCameraRig wie lune_camera.gd, vorläufige Debug-Anzeige (kein HUD; U3 portiert das G3-HUD). - Einheitenbibliothek: Kohlenbeißer aus 131 Teilen zu einem Mesh, Animator- Controller mit den Blender-Clips, Ring- und Balkenmeshes, Markermaterialien. - Tests: EditMode (30/60/120 fps, unbegrenzt, Ruckler, 8x Tempo; Seed 2 und Seed 9 ab Runde 21) und PlayMode in der Szene bei echten Bildraten 30, 60, 120 und unbegrenzt: überall derselbe Fingerabdruck wie der Kern. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using Luneraria.Core;
|
|
using UnityEngine;
|
|
|
|
namespace Luneraria.View
|
|
{
|
|
/// <summary>
|
|
/// What a unit looks like in U2 (only the six representative assets are imported): the boss
|
|
/// is the Schlundkrone, heroes use the rigged Funkenlanze, every other unit the Kohlenbeißer
|
|
/// (g01, parts combined into one mesh). Team rings and bars tell the sides apart, as in Godot.
|
|
/// </summary>
|
|
public sealed class LuneUnitLibrary : ScriptableObject
|
|
{
|
|
public GameObject Rigid;
|
|
public GameObject Hero;
|
|
public RuntimeAnimatorController HeroController;
|
|
public GameObject Boss;
|
|
public RuntimeAnimatorController BossController;
|
|
public LuneMaterialSet Materials;
|
|
public LuneGround Ground;
|
|
public Mesh RingRound;
|
|
public Mesh RingDiamond;
|
|
public Mesh RingHexagon;
|
|
public Mesh Quad;
|
|
public Material[] TeamRing = new Material[3];
|
|
public Material HeroRing;
|
|
public Material BarBack;
|
|
public Material[] BarFill = new Material[3];
|
|
public Material[] Bolt = new Material[3];
|
|
|
|
public GameObject PrefabFor(LuneUnit unit, out RuntimeAnimatorController controller)
|
|
{
|
|
controller = null;
|
|
if (unit.Kind == "boss")
|
|
{
|
|
controller = BossController;
|
|
return Boss;
|
|
}
|
|
if (unit.Kind == "hero")
|
|
{
|
|
controller = HeroController;
|
|
return Hero;
|
|
}
|
|
return Rigid;
|
|
}
|
|
}
|
|
}
|