Guida allo sviluppo della modalità Editor
L'LCC Unity SDK supporta il rendering delle scene nell'Editor, il che significa che il modello LCC può essere traslato, ruotato e scalato in modalità modifica come qualsiasi altro GameObject in Unity. Puoi visualizzare e regolare la scena 3DGS nella finestra Scene in tempo reale senza fare clic sul pulsante Play per entrare in modalità Play.
Quando usi la scena Samples, puoi completare il rendering della scena tramite operazioni senza codice; quando usi script personalizzati, puoi ottenere lo stesso effetto tramite operazioni tramite codice.
Nota:
L'LCC Unity SDK supporta sia la modalità di rendering completo sia quella a blocchi. In modalità di rendering completo, la vista Scene può renderizzare completamente l'intero modello; in modalità di rendering a blocchi, poiché le posizioni e gli orientamenti della Scene Camera e della Game Camera non sono coerenti, il modello potrebbe non essere visualizzato completamente nella finestra Scene. In questo caso, devi sincronizzare la Scene Camera e la Game Camera.
Operazioni senza codice
Quando usi la scena Samples dell'SDK, se il percorso del file dati (File Path) è compilato correttamente, Unity renderizzerà automaticamente la scena nell'Editor dopo l'avvio, come mostrato di seguito.

Dopo aver compilato correttamente File Path, Unity renderizza automaticamente la scena nell'Editor all'avvio
Cambia scena
Quando devi modificare la scena renderizzata, segui questi passaggi:
- Seleziona il GameObject LCCRenderer nella finestra Gerarchia.
- Compila correttamente il percorso dati della nuova scena in File Path nella finestra Inspector.
- Fai clic sui tre puntini (⋮) a destra del componente LCCRenderer (Script) e scegli Render dal menu a comparsa, come mostrato di seguito.

Fai clic su Render nel menu a tre puntini a destra del componente LCCRenderer (Script)
Nota:
Poiché lo scaricamento dei dati della scena originale e il caricamento dei nuovi dati della scena richiedono del tempo, attendi un momento dopo aver fatto clic su Render; la nuova scena terminerà il caricamento.
Arresta il rendering della scena
Quando non hai più bisogno di renderizzare la scena nell'Editor, segui questi passaggi per arrestare il rendering:
- Seleziona il GameObject LCCRenderer nella finestra Gerarchia.
- Compila correttamente il percorso dati in File Path nella finestra Inspector.
- Fai clic sui tre puntini (⋮) a destra del componente LCCRenderer (Script) e scegli unRender dal menu a comparsa, come mostrato di seguito. Questo arresta il rendering della scena corrente.

Fai clic su unRender nel menu a tre puntini a destra del componente LCCRenderer (Script)
Entra in modalità Play
Quando fai clic sul pulsante Play in Unity per entrare nella normale modalità Play, la scena verrà renderizzata di nuovo nello stato di runtime. Poiché l'SDK usa internamente un meccanismo di multithreading, l'ingresso in modalità Play forza l'uscita dal thread di rendering in modalità modifica, che viene mostrata come un messaggio di errore stampato nella Console.
Puoi ignorare completamente questo errore; non ha effetti negativi e non influisce sul normale funzionamento successivo.
Se davvero non vuoi vedere questo errore, puoi eseguire il passaggio Arresta il rendering della scena (unRender) sopra prima di fare clic sul pulsante Play, poi fai clic sul pulsante Play per entrare nello stato di runtime.
Operazioni tramite codice
Se usi uno script personalizzato per renderizzare la scena, aggiungi semplicemente l'attributo [ExecuteInEditMode] prima della tua classe di rendering personalizzata per far sì che lo script venga eseguito nell'Editor, renderizzando così la scena in modalità modifica. Per le altre logiche operative, consulta lo script LCCRenderer.cs 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);
// Abilita la modalità editor
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] avanzamento caricamento file: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[MyLCCRenderer] file caricato");
}
}
Nota:
- L'attributo
[ExecuteInEditMode]fa sì che i metodi del ciclo di vita comeStarteUpdatevengano chiamati nell'Editor anche al di fuori della modalità Play; questa è la chiave del rendering in modalità Editor.- La modalità editor è supportata solo sulle piattaforme PC/Mac.
- Per il flusso di lavoro di rendering completo (configurazione della piattaforma, modalità di rendering, caricamento dei dati), consulta lo script
LCCRenderer.csin Samples.
Sincronizza le camere tra le finestre Scene e Game
I Samples forniti dall'SDK includono lo script SceneGameCameraSync, che sincronizza le operazioni della camera della finestra Scene con la finestra Game, consentendoti di operare sulla vista nell'Editor mentre visualizzi l'anteprima dell'immagine di runtime. Passaggi di utilizzo:
- Associa lo script
SceneGameCameraSyncdei Samples al GameObject della camera (Camera) nella scena. - Disabilita lo script di operazione della camera (per impostazione predefinita
CameraOperate). - Fai clic sul pulsante Play per entrare in modalità Play.
A questo punto, operare sulla camera nella finestra Scene sincronizzerà di conseguenza la camera nella finestra Game.

Associa lo script SceneGameCameraSync all'oggetto camera e disabilita lo script CameraOperate
Nota:
La sincronizzazione della camera supporta solo la sincronizzazione della camera dalla finestra Scene alla finestra Game; non supporta la sincronizzazione delle operazioni della camera dalla finestra Game alla finestra Scene.