Ontwikkelgids voor de Editor-modus
De LCC Unity SDK ondersteunt het renderen van scènes in de Editor, wat betekent dat het LCC-model in de bewerkingsmodus net als elk ander GameObject in Unity kan worden verplaatst, gedraaid en geschaald. Je kunt de 3DGS-scène in het Scene-venster in realtime bekijken en aanpassen zonder op de Play-knop te klikken om de Play-modus te openen.
Bij gebruik van de Samples-scène kun je het renderen van de scène voltooien via niet-code-bewerkingen; bij gebruik van aangepaste scripts kun je hetzelfde effect bereiken via code-bewerkingen.
Opmerking:
De LCC Unity SDK ondersteunt zowel de volledige rendermodus als de chunked-rendermodus. In de volledige rendermodus kan de Scene-weergave het hele model volledig renderen; in de chunked-rendermodus wordt het model mogelijk niet volledig weergegeven in het Scene-venster, omdat de posities en oriëntaties van de Scene-camera en de Game-camera niet overeenkomen. In dat geval moet je de Scene-camera en de Game-camera synchroniseren.
Niet-code-bewerkingen
Wanneer je de Samples-scène van de SDK gebruikt, rendert Unity de scène na het opstarten automatisch in de Editor als het gegevensbestandspad (File Path) correct is ingevuld, zoals hieronder wordt weergegeven.

Nadat je File Path correct hebt ingevuld, rendert Unity de scène bij het opstarten automatisch in de Editor
Van scène wisselen
Volg deze stappen wanneer je de gerenderde scène wilt wijzigen:
- Selecteer het LCCRenderer-GameObject in het Hiërarchie-venster.
- Vul het gegevenspad van de nieuwe scène correct in bij File Path in het Inspector-venster.
- Klik op de drie puntjes (⋮) rechts van de LCCRenderer (Script)-component en kies Render in het pop-upmenu, zoals hieronder wordt weergegeven.

Klik op Render in het menu met drie puntjes rechts van de LCCRenderer (Script)-component
Opmerking:
Omdat het verwijderen van de oorspronkelijke scènegegevens en het laden van nieuwe scènegegevens enige tijd kost, wacht je even nadat je op Render hebt geklikt; de nieuwe scène wordt dan geladen.
Het renderen van de scène stoppen
Volg deze stappen om het renderen te stoppen wanneer je de scène niet langer in de Editor hoeft te renderen:
- Selecteer het LCCRenderer-GameObject in het Hiërarchie-venster.
- Vul het gegevenspad correct in bij File Path in het Inspector-venster.
- Klik op de drie puntjes (⋮) rechts van de LCCRenderer (Script)-component en kies unRender in het pop-upmenu, zoals hieronder wordt weergegeven. Hiermee stopt het renderen van de huidige scène.

Klik op unRender in het menu met drie puntjes rechts van de LCCRenderer (Script)-component
De Play-modus binnengaan
Wanneer je op de Play-knop in Unity klikt om de normale Play-modus te openen, wordt de scène opnieuw gerenderd in de runtime-status. Omdat de SDK intern een multithreading-mechanisme gebruikt, wordt bij het openen van de Play-modus de renderingthread in de bewerkingsmodus geforceerd afgesloten, wat als een foutmelding in de Console wordt weergegeven.
Je kunt deze fout volledig negeren; deze heeft geen nadelig effect en heeft geen invloed op de daaropvolgende normale werking.
Als je deze fout echt niet wilt zien, kun je vóór het klikken op de Play-knop de bovenstaande stap Het renderen van de scène stoppen (unRender) uitvoeren en vervolgens op de Play-knop klikken om de runtime-status te openen.
Code-bewerkingen
Als je een aangepast script gebruikt om de scène te renderen, voeg dan simpelweg het [ExecuteInEditMode]-attribuut vóór je aangepaste renderingklasse toe om het script in de Editor te laten draaien, zodat de scène in de bewerkingsmodus wordt gerenderd. Raadpleeg voor de overige bewerkingslogica het LCCRenderer.cs-script in Samples.
using LCCCore;
using UnityEngine;
[ExecuteInEditMode]
public class MyLCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
// Schakel de Editor-modus in
m_manager.SetEditorMode(true);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[MyLCCRenderer] bestand laadvoortgang: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[MyLCCRenderer] bestand geladen");
}
}
Opmerking:
- Het
[ExecuteInEditMode]-attribuut zorgt ervoor dat lifecycle-methoden zoalsStartenUpdatein de Editor worden aangeroepen, ook buiten de Play-modus; dit is de sleutel tot het renderen in de Editor-modus.- De Editor-modus wordt alleen ondersteund op pc-/Mac-platformen.
- Raadpleeg voor de volledige renderingworkflow (platformconfiguratie, rendermodus, gegevens laden) het
LCCRenderer.cs-script in Samples.
Camera's synchroniseren tussen het Scene- en Game-venster
De Samples van de SDK bevatten het SceneGameCameraSync-script, dat de camerabewerkingen van het Scene-venster synchroniseert naar het Game-venster, zodat je de weergave in de Editor kunt bedienen terwijl je het runtime-beeld bekijkt. Gebruiksstappen:
- Voeg het
SceneGameCameraSync-script uit Samples toe aan het camera-GameObject (Camera) in de scène. - Schakel het camerabedieningsscript uit (standaard
CameraOperate). - Klik op de Play-knop om de Play-modus te openen.
Als je nu de camera in het Scene-venster bedient, wordt de camera in het Game-venster dienovereenkomstig gesynchroniseerd.

Voeg het SceneGameCameraSync-script toe aan het camera-object en schakel het CameraOperate-script uit
Opmerking:
Camerasynchronisatie ondersteunt alleen het synchroniseren van de camera van het Scene-venster naar het Game-venster; het ondersteunt niet het synchroniseren van camerabewerkingen van het Game-venster naar het Scene-venster.