Entwicklungsanleitung für gemischtes Multi-Szenen-Rendering
Gemischtes Multi-Szenen-Rendering bedeutet, mehrere LCC-Szenen gleichzeitig zu erstellen und ihr Rendering in Echtzeit zu mischen, um korrekte Verdeckung und Verschmelzung zu erzielen. Um jede am Rendering beteiligte LCC-Szene unabhängig zu steuern, müssen Sie mehrere Renderer erstellen und jeden Renderer an ein unabhängiges GameObject anhängen, damit die Transform jeder LCC-Szene unabhängig gesteuert werden kann.
Schritt 1: Szene und GameObjects erstellen
Erstellen Sie eine brandneue Szene in Unity. Unity erstellt standardmäßig Hauptkamera und Richtungslicht.
LCCManager erstellen
Klicken Sie mit der rechten Maustaste in einen leeren Bereich des Fensters Hierarchie, wählen Sie im Popup-Menü Leeres GameObject erstellen, um ein leeres GameObject zu erstellen, benennen Sie es LCCManager, normalisieren Sie dessen Transform und fügen Sie über Komponente hinzufügen das Skript LCCManager hinzu.

Das GameObject LCCManager erstellen und das Skript LCCManager hinzufügen
LCCRenderer01 erstellen
Klicken Sie mit der rechten Maustaste in einen leeren Bereich des Fensters Hierarchie, wählen Sie Leeres GameObject erstellen, um ein leeres GameObject zu erstellen, benennen Sie es LCCRenderer01 und setzen Sie dessen Transform auf Rotation.x = -90 und Scale.x = -1.

LCCRenderer01 erstellen und dessen Transform festlegen (Rotation.x = -90, Scale.x = -1)
LCCRenderer02 erstellen
Erstellen Sie auf dieselbe Weise ein weiteres leeres GameObject, benennen Sie es LCCRenderer02 und setzen Sie dessen Transform ebenfalls auf Rotation.x = -90 und Scale.x = -1.

LCCRenderer02 erstellen und dessen Transform festlegen (Rotation.x = -90, Scale.x = -1)
Hinweis:
Die Transform-Einstellungen des GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) richten es am LCC-Daten-Koordinatensystem aus. Details zur Ausrichtung am Koordinatensystem finden Sie unter „LCC-Daten-Koordinatensystem“ in Einführung in das Unity SDK.
Schritt 2: Das Multi-Szenen-Rendering-Skript schreiben
Erstellen Sie ein neues C#-Skript namens MultiRenderer.cs mit folgendem Code:
using LCCCore;
using UnityEngine;
public class MultiRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath01;
public Transform m_transform01;
public string m_FilePath02;
public Transform m_transform02;
private LCCCore.Renderer m_renderer01;
private LCCCore.Renderer m_renderer02;
private int m_currentFileIndex = 0;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
// In den MultiRender-Modus wechseln, damit mehrere Renderer gleichzeitig aktiv und gemischt werden können
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);
Debug.Log("Gestartet ");
m_renderer01 = m_manager.GetRender(m_transform01);
m_renderer02 = m_manager.GetRender(m_transform02);
m_currentFileIndex = 0;
m_renderer01.Load(m_FilePath01, onProgress, onComplete);
m_currentFileIndex = 1;
m_renderer02.Load(m_FilePath02, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[LCCRenderer] Datei {m_currentFileIndex} Ladefortschritt: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] Datei {m_currentFileIndex} geladen");
}
}
Schritt 3: Das Skript anhängen und Eigenschaften konfigurieren
- Hängen Sie das Skript
MultiRenderer.csim Fenster Hierarchie an das GameObject LCCManager. - Weisen Sie im Fenster Inspektor die Referenzen und Pfade gemäß der folgenden Tabelle zu:
| Skript-Eigenschaft | Zuweisung |
|---|---|
| Manager | Das GameObject LCCManager auf diese Eigenschaft ziehen |
| Transform01 | Das GameObject LCCRenderer01 auf diese Eigenschaft ziehen |
| Transform02 | Das GameObject LCCRenderer02 auf diese Eigenschaft ziehen |
| File Path01 | Pfad der ersten LCC-Datenquelle |
| File Path02 | Pfad der zweiten LCC-Datenquelle |

Die Referenzen und Datenpfade des MultiRenderer-Skripts im Inspektor konfigurieren
Schritt 4: Ausführen
Klicken Sie im Fenster Spiel auf die Schaltfläche Play, und Sie sehen die beiden gleichzeitig gerenderten und gemischten LCC-Szenen. Ändern Sie die Transform-Werte des GameObject LCCRenderer01 oder LCCRenderer02, und jede gerenderte Szene aktualisiert sich in Echtzeit.

Zwei gleichzeitig gerenderte und gemischte LCC-Szenen nach dem Ausführen
Schlüsselpunkte
Es gibt zwei Schlüsselpunkte für die Entwicklung des gemischten Multi-LCC-Szenen-Renderings:
- In den MultiRender-Modus wechseln: Verwenden Sie
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);, um das Mischen mehrerer LCC-Szenen zu ermöglichen. Standardmäßig ist der ModusSingleRender, der das Mischen mehrerer LCC-Szenen nicht erlaubt. - Jeden Renderer an ein unabhängiges GameObject anhängen: Verwenden Sie
GetRender(Transform), um jeden Renderer an ein unabhängiges GameObject zu binden, damit die Transform jeder LCC-Szene unabhängig gesteuert werden kann.