Broken UI and Loading screens
This commit is contained in:
@@ -13,7 +13,7 @@ namespace SplashEdit.RuntimeCode
|
||||
/// </summary>
|
||||
public static class PSXUIExporter
|
||||
{
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// Collect all PSXCanvas components and their child UI elements,
|
||||
/// converting RectTransform coordinates to PS1 pixel space.
|
||||
/// Also collects and deduplicates custom fonts.
|
||||
@@ -37,6 +37,42 @@ namespace SplashEdit.RuntimeCode
|
||||
return new PSXCanvasData[0];
|
||||
}
|
||||
|
||||
return CollectCanvasesInternal(canvases, resolution, out fonts);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Collect a single canvas from a prefab instance for loading screen export.
|
||||
/// The prefab must have a PSXCanvas on its root.
|
||||
/// Note: Image elements that reference VRAM textures will NOT work in loading screens
|
||||
/// since the VRAM hasn't been populated yet. Use Box, Text, and ProgressBar only.
|
||||
/// </summary>
|
||||
public static PSXCanvasData[] CollectCanvasFromPrefab(GameObject prefab, Vector2 resolution, out PSXFontData[] fonts)
|
||||
{
|
||||
if (prefab == null)
|
||||
{
|
||||
fonts = new PSXFontData[0];
|
||||
return new PSXCanvasData[0];
|
||||
}
|
||||
|
||||
PSXCanvas canvas = prefab.GetComponentInChildren<PSXCanvas>(true);
|
||||
if (canvas == null)
|
||||
{
|
||||
Debug.LogWarning($"PSXUIExporter: Prefab '{prefab.name}' has no PSXCanvas component.");
|
||||
fonts = new PSXFontData[0];
|
||||
return new PSXCanvasData[0];
|
||||
}
|
||||
|
||||
return CollectCanvasesInternal(new[] { canvas }, resolution, out fonts);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal shared implementation for canvas collection.
|
||||
/// Works on an explicit array of PSXCanvas components.
|
||||
/// </summary>
|
||||
private static PSXCanvasData[] CollectCanvasesInternal(PSXCanvas[] canvases, Vector2 resolution, out PSXFontData[] fonts)
|
||||
{
|
||||
List<PSXFontAsset> uniqueFonts = new List<PSXFontAsset>();
|
||||
|
||||
// First pass: collect unique fonts
|
||||
foreach (PSXCanvas canvas in canvases)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user