Guide de développement du mode éditeur
Le LCC Unity SDK prend en charge le rendu de scènes dans l'éditeur, ce qui signifie que le modèle LCC peut être translaté, tourné et mis à l'échelle en mode édition comme tout autre GameObject dans Unity. Vous pouvez visualiser et ajuster la scène 3DGS dans la fenêtre Scène en temps réel sans cliquer sur le bouton Play pour entrer en mode Play.
Lors de l'utilisation de la scène Samples, vous pouvez terminer le rendu de la scène via des opérations sans code ; lors de l'utilisation de scripts personnalisés, vous pouvez obtenir le même effet via des opérations par code.
Remarque :
Le LCC Unity SDK prend en charge à la fois les modes de rendu complet et par blocs. En mode de rendu complet, la vue Scène peut rendre entièrement le modèle complet ; en mode de rendu par blocs, comme les positions et orientations de la caméra de scène et de la caméra de jeu ne sont pas cohérentes, le modèle peut ne pas être entièrement affiché dans la fenêtre Scène. Dans ce cas, vous devez synchroniser la caméra de scène et la caméra de jeu.
Opérations sans code
Lors de l'utilisation de la scène Samples du SDK, si le chemin du fichier de données (File Path) est correctement renseigné, Unity rendra automatiquement la scène dans l'éditeur après le démarrage, comme illustré ci-dessous.

Après avoir correctement renseigné le File Path, Unity rend automatiquement la scène dans l'éditeur au démarrage
Basculer de scène
Lorsque vous devez modifier la scène rendue, suivez ces étapes :
- Sélectionnez le GameObject LCCRenderer dans la fenêtre Hiérarchie.
- Renseignez correctement le chemin des données de la nouvelle scène dans File Path dans la fenêtre Inspecteur.
- Cliquez sur les trois points (⋮) à droite du composant LCCRenderer (Script), et choisissez Render dans le menu contextuel, comme illustré ci-dessous.

Cliquer sur Render dans le menu à trois points à droite du composant LCCRenderer (Script)
Remarque :
Comme le déchargement des données de la scène d'origine et le chargement des nouvelles données de scène prennent un certain temps, veuillez patienter un moment après avoir cliqué sur Render ; la nouvelle scène finira de charger.
Arrêter le rendu de la scène
Lorsque vous n'avez plus besoin de rendre la scène dans l'éditeur, suivez ces étapes pour arrêter le rendu :
- Sélectionnez le GameObject LCCRenderer dans la fenêtre Hiérarchie.
- Renseignez correctement le chemin des données dans File Path dans la fenêtre Inspecteur.
- Cliquez sur les trois points (⋮) à droite du composant LCCRenderer (Script), et choisissez unRender dans le menu contextuel, comme illustré ci-dessous. Cela arrête le rendu de la scène actuelle.

Cliquer sur unRender dans le menu à trois points à droite du composant LCCRenderer (Script)
Entrer en mode Play
Lorsque vous cliquez sur le bouton Play dans Unity pour entrer en mode Play normal, la scène sera re-rendue dans l'état d'exécution. Comme le SDK utilise un mécanisme multithread en interne, l'entrée en mode Play force la sortie du thread de rendu en mode édition, ce qui s'affiche comme un message d'erreur imprimé dans la Console.
Vous pouvez complètement ignorer cette erreur ; elle n'a aucun effet négatif et n'affecte pas le fonctionnement normal ultérieur.
Si vous ne voulez vraiment pas voir cette erreur, vous pouvez effectuer l'étape Arrêter le rendu de la scène (unRender) ci-dessus avant de cliquer sur le bouton Play, puis cliquer sur le bouton Play pour entrer dans l'état d'exécution.
Opérations par code
Si vous utilisez un script personnalisé pour rendre la scène, ajoutez simplement l'attribut [ExecuteInEditMode] avant votre classe de rendu personnalisée pour que le script s'exécute dans l'éditeur, rendant ainsi la scène en mode édition. Pour les autres logiques d'opération, reportez-vous au script LCCRenderer.cs dans 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);
// Activer le mode éditeur
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] progression du chargement du fichier : {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[MyLCCRenderer] fichier chargé");
}
}
Remarque :
- L'attribut
[ExecuteInEditMode]fait que les méthodes du cycle de vie telles queStartetUpdatesont appelées dans l'éditeur même hors mode Play ; c'est la clé du rendu en mode éditeur.- Le mode éditeur n'est pris en charge que sur les plateformes PC/Mac.
- Pour le flux de travail de rendu complet (configuration de la plateforme, mode de rendu, chargement des données), reportez-vous au script
LCCRenderer.csdans Samples.
Synchroniser les caméras entre les fenêtres Scène et Jeu
Les Samples fournis par le SDK incluent le script SceneGameCameraSync, qui synchronise les opérations de caméra de la fenêtre Scène vers la fenêtre Jeu, vous permettant d'opérer la vue dans l'éditeur tout en prévisualisant l'image d'exécution. Étapes d'utilisation :
- Attachez le script
SceneGameCameraSyncdes Samples à la caméra (GameObject Camera) de la scène. - Désactivez le script d'opération de caméra (par défaut
CameraOperate). - Cliquez sur le bouton Play pour entrer en mode Play.
À ce stade, opérer la caméra dans la fenêtre Scène synchronisera la caméra dans la fenêtre Jeu en conséquence.

Attacher le script SceneGameCameraSync à l'objet caméra et désactiver le script CameraOperate
Remarque :
La synchronisation de caméra ne prend en charge que la synchronisation de la caméra de la fenêtre Scène vers la fenêtre Jeu ; elle ne prend pas en charge la synchronisation des opérations de caméra de la fenêtre Jeu vers la fenêtre Scène.