XGRIDSDocumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel CyberColor

    • LCC Studio

      • Prise en main
      • Version et mises à jour
      • Téléchargement et installation
      • Aperçu de l’interface et navigation
      • Avant la reconstruction
      • Reconstruction du modèle
      • Reconstruction d’un modèle unique
      • Fusion cartographique
      • Fusion aérienne-terrestre
      • Reconstruction aérienne
      • Mes modèles
      • Autres fonctionnalités
      • Paramètres et compte
      • Convertisseur
      • Reconstruction vidéo
      • Questions fréquentes
    • LCC Scene Editor

      • Version et mises à jour
      • Compte et connexion
      • Présentation du produit et accueil
      • Interface de l’éditeur
      • Modes de navigation de scène
      • Fichier
      • Paramètres
      • Opérations d’édition
      • Fenêtre
      • Barre d’outils globale
      • Ressources et propriétés
      • Barre d’outils gauche
      • Points de vue
      • Portail
      • Skybox
      • Annotations
      • Mesure
      • Parcours
      • Rapport de scène
      • 3D Layout
      • Mini-carte
      • Mode Prévisualisation, Viewer
      • Aide
      • FAQ
      • Point d’apparition
    • LCC Model Editor

      • Version et mises à jour
      • Guide de l’utilisateur
      • Aperçu et interface
      • Opérations sur les fichiers
      • Sélecteurs
      • Modification des modèles
      • Mesure
      • Réglage des couleurs
      • Gestion des ressources
      • Paramètres et aide
      • Questions fréquentes
    • Bonnes Pratiques

      • Fusion de plusieurs modèles 3DGS de grande taille
  • Plugin & SDK

    • Unreal

      • Introduction
      • Démarrage rapide - Windows
      • Démarrage rapide - Linux
      • Démarrage rapide - Quest3
      • Éditions et licences
      • Rendu
      • Rastérisation Tiled (expérimental)
      • Réglages visuels
      • Normales et éclairage
      • Édition de scène
      • Paramètres de performance
      • Guide d'optimisation des performances
      • Intégration avec les plugins tiers et moteur
      • Maillage proxy
      • Animation de chargement
      • Collision
      • Prise en charge du système de navigation
      • Prise en charge de l'eau à couche unique
      • Localisation
      • Questions fréquentes
      • Dépannage
      • Journaux et diagnostics
      • Nous contacter
      • Bonnes pratiques

        • Rééclairer un 3DGS avec un maillage LixelStudio
      • Référence API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Journal des modifications

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Introduction au SDK Unity
      • Fonctionnalités techniques
      • Exigences de l'environnement de développement
      • Guide de démarrage rapide PC
      • Guide d'optimisation des paramètres de projet
      • Guide de développement Pico 4 Ultra
      • Guide de streaming PC du Pico 4 Ultra
      • Guide de développement Quest 3
      • Guide de streaming PC du Quest 3
      • Guide de développement OpenXR
      • Guide Business Streaming du Pico 4 Ultra
      • Glossaire
      • FAQ
      • Nous contacter
      • Guide de développement des fonctionnalités

        • Guide de développement du rendu mixte multi-scènes
        • Guide de développement de la réception des ombres
        • Guide de développement de l'éclairage en temps réel
        • Guide de développement du rendu multi-caméras
        • Guide de développement du rendu d'images haute résolution
        • Guide de développement de la compatibilité des formats de données LCC et LCC2
        • Guide de développement de l'effet de chargement
        • Guide de développement du basculement du mode de rendu Mip
        • Guide de développement de l'accrochage aux arêtes et aux coins
        • Guide de développement du décalque projeté
        • Guide de développement du décalque projeté vidéo
        • Guide de développement du surlignage
        • Guide de développement de la découpe en temps réel
        • Guide de développement du réglage des couleurs
        • Guide de développement de l'obtention des données Mesh de la scène
        • Guide de développement du mode éditeur
        • Guide de configuration des paramètres de performance de rendu
        • Guide de développement du co-packageage de l'application et des données
        • Guide de développement du système de collision
        • Guide des problèmes d'autorisation de développement macOS
        • Guide de développement de la compilation et du packageage sur appareil iOS
      • Référence de l'API

        • LCCManager
        • Renderer
        • Types de données
      • Journal des modifications

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14

LCCManager : Gestionnaire principal

Le gestionnaire principal du LCC Unity SDK, responsable de la gestion de toutes les instances Renderer, des caméras, de l'état de rendu global, ainsi que des opérations d'édition (découpe / surlignage / tons), de la projection de décalque, de l'accrochage et des requêtes d'interaction (raycast / collision). Il ne doit y avoir qu'une seule instance LCCManager dans toute la scène.

Espace de nomsLCCCore
Classe de baseMonoBehaviour

LCCManager n'a pas de propriétés publiques ; toutes les fonctionnalités sont accessibles via des méthodes. Les méthodes sont regroupées par objectif :

  • Initialisation et configuration
  • Contrôle du rendu à l'exécution
  • Éclairage et ombres
  • Gestion des caméras
  • Découpe / Surlignage / Tons
  • Projection de décalque
  • Accrochage
  • Requêtes de raycasting et de collision
  • Effets visuels
  • Requêtes d'instances

Initialisation et configuration

Les méthodes suivantes sont utilisées pour terminer la pré-configuration de la plateforme, du mode de rendu, de la capacité, etc. avant de charger les données. La plupart des méthodes doivent être appelées avant tout Renderer.Load().

SetPlatformType

public void SetPlatformType(PlatformType _type)

Définit la plateforme d'exécution cible du SDK, ce qui affecte la stratégie de rendu interne et l'allocation des ressources.

ParamètreTypeDescription
_typePlatformTypePlateforme cible ; voir PlatformType

Remarques :

  • Doit être exécutée avant tout appel GetRender().

Exemple :

lccManager.SetPlatformType(PlatformType.PC);

SwitchRenderPass

public void SwitchRenderPass(ActiveRenderMode _mode)

Définit le mode d'architecture de rendu global. MultiRender utilise un buffer GPU partagé et peut rendre jusqu'à 255 Renderers simultanément ; SingleRender laisse le SDK sélectionner automatiquement le chemin de rendu en fonction de la taille des données.

ParamètreTypeDescription
_modeActiveRenderModeMode de rendu ; voir ActiveRenderMode

Remarques :

  • Doit être appelée avant tout Renderer.Load().
  • Uniquement efficace sur les plateformes PC / Mac ; les plateformes mobiles / VR adoptent automatiquement une stratégie adaptative, et l'appel de cette méthode est rejeté.
  • Le mode MultiRender ne prend pas en charge les sources de données HTTP ; utilisez SingleRender pour les données HTTP.
  • Une fois qu'un Renderer a terminé Load(), le mode est verrouillé et ne peut plus être basculé.

Exemple :

lccManager.SwitchRenderPass(ActiveRenderMode.MultiRender);

GetRender (Surcharge 1 : lier le Transform)

// Valeur de retour : Renderer, null en cas d'échec
public Renderer GetRender(Transform _transform)

Crée une nouvelle instance de rendu et la lie au Transform spécifié. Après la création, Renderer.Load() doit être appelé pour charger les données.

ParamètreTypeDescription
_transformTransformLe Transform auquel l'instance de rendu est attachée

Remarques :

  • SetPlatformType() et SetMainCamera() doivent être appelés en premier.
  • Jusqu'à 255 Renderers sont pris en charge en mode MultiRender.

Exemple :

var go = new GameObject("LCCScene");
var renderer = lccManager.GetRender(go.transform);
renderer.Load(filePath, null, () => Debug.Log("Chargé"));

GetRender (Surcharge 2 : créer le GameObject automatiquement)

// Valeur de retour : Renderer, null en cas d'échec
public Renderer GetRender(out GameObject gameObject)

Crée automatiquement un GameObject nommé LCCRenderer et lie l'instance de rendu à son Transform.

ParamètreTypeDescription
gameObjectout GameObjectSort le GameObject créé automatiquement, null en cas d'échec

Exemple :

var renderer = lccManager.GetRender(out GameObject go);
renderer.Load(filePath, null, () => Debug.Log("Chargé"));

SetMaxBufferSplat

public void SetMaxBufferSplat(int _count)

Définit la capacité maximale du buffer GPU (nombre de Splats). Alloué une fois et ne peut pas être modifié dynamiquement.

ParamètreTypeDescription
_countintNombre maximal de Splats, unité : dix mille (valeur × 10000 = nombre réel)

Remarques :

  • Doit être appelée avant tout Renderer.Load(), et SetPlatformType() doit être appelée en premier.
  • Une capacité plus grande signifie une utilisation de mémoire vidéo plus élevée ; définissez-la selon les besoins.
  • Limites de plateforme : PC / Mac / PCVR 45 millions, Android / iOS 6 millions, VR (Pico / Quest / PicoSwan / AVP / OpenXR) 2 millions.
  • Valeurs par défaut : PC / Mac 30 millions, Android / iOS 3 millions, VR 1 million.

Exemple :

lccManager.SetMaxBufferSplat(3000); // 30 millions de points

SetFullRenderSplat

public void SetFullRenderSplat(int _count)

Définit le seuil supérieur du rendu complet PC / Mac. Lorsque la taille des données est inférieure à cette valeur, le chemin de rendu complet est utilisé ; sinon le chemin de rendu par blocs est utilisé.

ParamètreTypeDescription
_countintLimite supérieure du rendu complet, unité : dix mille, plage [100, 4500]

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac / PCVR.
  • Doit être appelée avant tout Renderer.Load(), et SetPlatformType() doit être appelée en premier.

Exemple :

lccManager.SetFullRenderSplat(2500); // 25 millions de points

SetMaxRenderSplats

public void SetMaxRenderSplats(int _count)

Définit le nombre maximal de Splats rendus par image à l'exécution. Peut être appelée dynamiquement après Load().

ParamètreTypeDescription
_countintNombre maximal de Splats rendus à l'exécution, unité : dix mille

Remarques :

  • Peut être ajustée dynamiquement à l'exécution.
  • Ne peut pas dépasser la capacité définie par SetMaxBufferSplat() ; elle est automatiquement bornée en cas de dépassement.
  • Aucun effet en mode de rendu complet.

Exemple :

lccManager.SetMaxRenderSplats(2500); // 25 millions de points

GetLoadRatio

// Valeur de retour : float, [0,1] progression de chargement des données actuelle
public float GetLoadRatio()

Interroge la progression de chargement des données de la scène actuelle.

Remarques :

  • Retourne toujours 1.0 en mode de rendu complet.
  • En mode de rendu par blocs, retourne le ratio de nœuds chargés sous la vue actuelle ; la valeur change en temps réel avec le mouvement de la caméra et n'est pas une progression globale monotone croissante.

Exemple :

float ratio = lccManager.GetLoadRatio();
progressBar.value = ratio;

SetSelectionMode

public void SetSelectionMode(SelectionMode mode)

Définit la stratégie de sélection des nœuds.

ParamètreTypeDescription
modeSelectionModeStratégie de sélection ; voir SelectionMode

Remarques :

  • Auto (défaut) : décidé automatiquement en fonction de la boîte englobante globale de la scène ; lorsque la dimension maximale de la scène dépasse environ 380 mètres, elle passe automatiquement à Large.
  • Normal : convient aux petites et moyennes scènes.
  • Large : convient aux très grandes scènes (plus de 1000 mètres).
  • Prend effet immédiatement lors du basculement.

Exemple :

lccManager.SetSelectionMode(SelectionMode.Auto);

Contrôle du rendu à l'exécution

Les méthodes suivantes peuvent être appelées dynamiquement à l'exécution pour ajuster la précision de rendu, les effets d'affichage et les bascules de rendu.

SetDetailLevel

public void SetDetailLevel(float sse)

Définit le niveau de précision de rendu. Une valeur plus grande signifie un rendu plus fin et une consommation de performance plus élevée.

ParamètreTypeDescription
ssefloatNiveau de précision, plage [1, 100], automatiquement borné en cas de dépassement

Remarques :

  • Utilise une correspondance logarithmique : les changements sont sensibles dans la plage de valeurs basses et fluides dans la plage de valeurs hautes.
  • Peut être ajusté dynamiquement à l'exécution.
  • Ne prend effet qu'en mode de sélection Normal.

Exemple :

lccManager.SetDetailLevel(50f); // Précision moyenne

SetStartLod

public void SetStartLod(int lod)

Définit le point de départ de l'expansion LOD (basé sur 0). 0 est le plus fin, et un nombre plus grand signifie un niveau plus grossier.

ParamètreTypeDescription
lodintNiveau LOD de départ, plage [0, 10], automatiquement borné en cas de dépassement

Remarques :

  • La limite supérieure effective réelle est contrainte par le nombre total de niveaux de données.

Exemple :

lccManager.SetStartLod(0);

SetAutoFov

public void SetAutoFov(bool _auto)

Définit s'il faut gérer automatiquement le FOV de rendu. Lorsqu'il est activé (défaut), le SDK verrouille une base de distance focale en pixels à la première image, puis inverse le FOV vertical depuis la hauteur de viewport actuelle à chaque image et l'écrit dans Camera.fieldOfView ; lorsqu'il est désactivé, fieldOfView est contrôlé en externe (SetFOV() ou modification directe de la caméra).

ParamètreTypeDescription
_autoboolS'il faut utiliser le FOV automatique

Remarques :

  • Activé par défaut.
  • Lorsqu'il est activé, il réécrit continuellement le Camera.fieldOfView de la caméra principale, donc l'appel de SetFOV() est ignoré.
  • Lorsqu'il est désactivé, SetFOV() doit être appelé manuellement pour définir les paramètres.

Exemple :

lccManager.SetAutoFov(true);

SetFOV

public void SetFOV(int _width, int _height, float _verticalFov, float _aspect)

Définit manuellement le FOV vertical (en degrés). Réécrit directement le Camera.fieldOfView de la caméra principale afin que le FOV dans l'Inspecteur corresponde au FOV réellement utilisé pour le rendu. _width / _height / _aspect sont des paramètres de signature hérités ; la projection réelle utilise le propre viewport de la caméra principale (utilisez SetRecordMode() pour une sortie hors écran avec une taille / un FOV différents).

ParamètreTypeDescription
_widthintLargeur en pixels
_heightintHauteur en pixels
_verticalFovfloatFOV vertical (degrés)
_aspectfloatRatio d'aspect

Remarques :

  • SetAutoFov(false) doit être appelé en premier, sinon l'inversion auto du FOV par image écrase la valeur manuelle.
  • Le FOV vertical est borné à [1, 179] degrés.
  • L'appeler sur les plateformes VR / PCVR, pendant l'enregistrement, ou sous une caméra orthographique est rejeté (avertit et retourne).

Exemple :

lccManager.SetFOV(1920, 1080, 60f, 1.778f);

SetRenderEnable

public void SetRenderEnable(Renderer _renderer, bool _isEnable)

Contrôle la bascule de rendu du Renderer spécifié à l'exécution. Lorsqu'il est désactivé, il ne participe pas au parcours ni au dessin.

ParamètreTypeDescription
_rendererRendererInstance de rendu cible
_isEnableboolS'il faut activer le rendu

Exemple :

lccManager.SetRenderEnable(renderer, false); // Masquer

SetEnvironment

public void SetEnvironment(Renderer _renderer, bool _isRender)

Contrôle le rendu des données d'environnement du Renderer spécifié. Les données d'environnement sont un nuage de points d'arrière-plan à faible précision utilisé pour remplir les vues lointaines.

ParamètreTypeDescription
_rendererRendererInstance de rendu cible
_isRenderboolS'il faut rendre les données d'environnement

Remarques :

  • Les données doivent contenir des nœuds d'environnement.

Exemple :

lccManager.SetEnvironment(renderer, true);

SetZDepth

public void SetZDepth(bool zwrite)

Active/désactive l'écriture de profondeur Z et ajuste la file de rendu en conséquence.

ParamètreTypeDescription
zwriteboolS'il faut activer l'écriture de profondeur Z

Exemple :

lccManager.SetZDepth(true);

SetAlpha

public void SetAlpha(float alpha)

Définit l'opacité globale.

ParamètreTypeDescription
alphafloatOpacité globale, plage [0, 1], automatiquement bornée en cas de dépassement

Exemple :

lccManager.SetAlpha(0.8f);

SetLightIntensity

public void SetLightIntensity(float intensity)

Définit l'intensité lumineuse globale.

ParamètreTypeDescription
intensityfloatIntensité lumineuse, plage [0, 1], automatiquement bornée en cas de dépassement

Exemple :

lccManager.SetLightIntensity(0.7f);

SetLowPassFilter

public void SetLowPassFilter(float _filter)

Définit la force du filtre passe-bas global, utilisé pour supprimer l'aliasing / le bruit haute fréquence.

ParamètreTypeDescription
_filterfloatForce du filtre passe-bas, plage [0, 1], automatiquement bornée en cas de dépassement

Exemple :

lccManager.SetLowPassFilter(0.3f);

SetLockFPS

public void SetLockFPS(bool _isLock)

Active/désactive le verrouillage de la fréquence d'images (bascule statique / dynamique de la fréquence d'images).

ParamètreTypeDescription
_isLockboolS'il faut verrouiller la fréquence d'images

Exemple :

lccManager.SetLockFPS(true);

SetRenderLayer

public void SetRenderLayer(int _layer)

Définit la couche Unity utilisée par le rendu LCC, pour le contrôle de visibilité par CullingMask de la caméra.

ParamètreTypeDescription
_layerintCouche de rendu Unity, plage [0, 31]

Remarques :

  • Peut être ajustée dynamiquement à l'exécution.

Exemple :

lccManager.SetRenderLayer(8); // Utiliser la couche 8

SetForceRefresh

public void SetForceRefresh()

Force une actualisation du rendu. Efface le cache d'informations de caméra interne afin que le frustum, le LOD et les autres paramètres soient recalculés à l'image suivante. Convient aux cas où des paramètres de caméra modifiés en externe doivent prendre effet immédiatement.

Exemple :

lccManager.SetForceRefresh();

SetMipMode

public void SetMipMode(MipMode _mipMode)

Bascule le mode de rendu Mip. Le mode Mip utilise l'échantillonnage mipmap (défaut), et le mode Non_Mip désactive le mipmap.

ParamètreTypeDescription
_mipModeMipModeMode cible ; voir MipMode

Remarques :

  • Retourne immédiatement si le mode actuel est le même que le mode transmis.
  • Prend effet immédiatement lors du basculement.

Exemple :

lccManager.SetMipMode(MipMode.Non_Mip);

SetGraphicsAPI

public void SetGraphicsAPI(GraphicsDeviceType type)

Définit le type d'API graphique. Le HDR est activé en mode DX11.

ParamètreTypeDescription
typeGraphicsDeviceTypeType d'API graphique (enum intégré Unity)

Exemple :

lccManager.SetGraphicsAPI(GraphicsDeviceType.Direct3D11);

SetDebugMode

public void SetDebugMode(bool debug)

Active/désactive le mode débogage.

ParamètreTypeDescription
debugboolS'il faut activer le mode débogage

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.SetDebugMode(true);

SetEditorMode

public void SetEditorMode(bool _isEditor)

Active/désactive le mode éditeur.

ParamètreTypeDescription
_isEditorboolS'il faut activer le mode éditeur

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.SetEditorMode(true);

SetAECMode

public void SetAECMode(bool _aec)

Active/désactive le mode AEC (Architecture / Engineering / Construction).

ParamètreTypeDescription
_aecboolS'il faut activer le mode AEC

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.SetAECMode(true);

SetSemantic

// Valeur de retour : bool, false=paramètre invalide
public bool SetSemantic(bool enable, Vector4[] color = null)

Active/désactive le mode de rendu sémantique. Lorsqu'il est activé, un tableau de couleurs peut être transmis pour définir la couleur d'affichage de chaque catégorie sémantique.

ParamètreTypeDescription
enableboolS'il faut activer le rendu sémantique
colorVector4[]Tableau de couleurs sémantiques, la longueur doit être 100, sinon false est retourné ; passez null pour utiliser les couleurs par défaut

Exemple :

Vector4[] colors = new Vector4[100];
colors[0] = new Vector4(1, 0, 0, 1); // Catégorie 0 = rouge
lccManager.SetSemantic(true, colors);

SwitchRenderMode

public void SwitchRenderMode(RenderMode mode, Texture2D tex = null)

Bascule entre le rendu du nuage de points et le rendu 3DGS. Une texture de rampe de couleur d'élévation peut être fournie en mode nuage de points.

ParamètreTypeDescription
modeRenderModeMode de rendu ; voir RenderMode
texTexture2DTexture de rampe de couleur d'élévation (optionnelle)

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.SwitchRenderMode(RenderMode.PointCloud, elevationTex);

SetRecordMode

public void SetRecordMode(bool isRecord, Vector2 renderSize, float verticalFov)

Définit le mode d'enregistrement. En mode d'enregistrement, une résolution et un FOV fixes sont utilisés pour le rendu, adaptés à l'enregistrement vidéo HD.

ParamètreTypeDescription
isRecordboolS'il faut utiliser le mode d'enregistrement
renderSizeVector2Résolution d'enregistrement
verticalFovfloatFOV vertical (degrés)

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.
  • En mode d'enregistrement, la distance focale de la caméra est fixe et ne change pas avec le composant Camera.
  • Après l'enregistrement, appelez SetRecordMode(false, ...) pour restaurer.

Exemple :

lccManager.SetRecordMode(true, new Vector2(3840, 2160), 60f);

SetVRPerformance

public void SetVRPerformance(bool _enabled)

Définit le mode de tri haute performance VR. true utilise le tri radix GPU (GpuSorter), et false retombe sur CPU / BitonicSorter.

ParamètreTypeDescription
_enabledboolS'il faut activer le tri GPU haute performance

Remarques :

  • N'affecte que le chemin de tri des casques VR (Pico / Quest / PicoSwan / OpenXR) ; activé par défaut.
  • Lorsqu'il n'y a pas de périphérique de calcul (comme Mali), le tri en amont retombe automatiquement sur CPU, non affecté par cette bascule.

Exemple :

lccManager.SetVRPerformance(true);

Éclairage et ombres

Les méthodes suivantes contrôlent la réception des ombres et les éclairages ponctuels personnalisés sur les surfaces 3DGS. Les méthodes liées aux ombres doivent être appelées après la fin du chargement de la scène LCC.

SetShadowReceive

public void SetShadowReceive(bool enable)

Active/désactive la réception des ombres du nuage de points. Lorsqu'elle est activée, les ombres des objets Mesh de la scène peuvent être projetées sur les surfaces du nuage de points 3DGS.

ParamètreTypeDescription
enableboolS'il faut recevoir les ombres

Remarques :

  • Désactivé par défaut.
  • Nécessite des objets Mesh qui projettent des ombres et une Lumière directionnelle dans la scène.

Exemple :

lccManager.SetShadowReceive(true);

SetShadowColor

public void SetShadowColor(Color color)

Définit la couleur de la zone d'ombre.

ParamètreTypeDescription
colorColorCouleur de l'ombre (RGBA)

Remarques :

  • Défaut (0.3, 0.3, 0.3, 1).
  • SetShadowReceive(true) doit être activé en premier.

Exemple :

lccManager.SetShadowColor(new Color(0.3f, 0.3f, 0.3f, 1f));

SetShadowStrength

public void SetShadowStrength(float strength)

Définit la force de l'ombre. 0 est aucune ombre, 1 est l'ombre la plus forte.

ParamètreTypeDescription
strengthfloatForce de l'ombre, plage [0, 1], automatiquement bornée en cas de dépassement

Remarques :

  • Défaut 1.0.
  • SetShadowReceive(true) doit être activé en premier.

Exemple :

lccManager.SetShadowStrength(0.8f);

SetLights

// Valeur de retour : int, 0=succès, -1=limite maximale de nombre dépassée
public int SetLights(List<PointLightData> lights)

Définit la liste d'éclairages ponctuels personnalisés. Passer null ou une liste vide désactive l'éclairage personnalisé.

ParamètreTypeDescription
lightsList<PointLightData>Liste d'éclairages ponctuels ; voir PointLightData

Remarques :

  • PointLightData.lightType : 0 est un éclairage ponctuel (direction / spotAngle ignorés), 1 est un spot (direction / spotAngle requis).
  • Passer null ou une liste vide désactive l'éclairage personnalisé.

Exemple :

using Unity.Mathematics; // float3

var lights = new List<PointLightData>();
lights.Add(new PointLightData {
    position = new float3(0, 5, 0),
    lightType = 0,              // 0=éclairage ponctuel, 1=spot
    color = new float3(1, 1, 1),
    intensity = 2f,
    range = 10f
});
lccManager.SetLights(lights);

Gestion des caméras

SetMainCamera

public void SetMainCamera(Camera _cam)

Définit la caméra de rendu principale. LCC utilise cette caméra pour le frustum culling, la sélection LOD, le tri et d'autres opérations.

ParamètreTypeDescription
_camCameraCaméra de rendu principale ; passez null pour effacer

Remarques :

  • Doit être définie avant Renderer.Load().
  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.SetMainCamera(Camera.main);

AddCamera

public void AddCamera(Camera _cam)

Ajoute une caméra secondaire. La caméra secondaire participe au rendu mais n'affecte pas la sélection LOD.

ParamètreTypeDescription
_camCameraCaméra secondaire

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.
  • La caméra principale ne peut pas être ajoutée comme caméra secondaire.

Exemple :

lccManager.AddCamera(secondCamera);

RemoveCamera

public void RemoveCamera(Camera _cam)

Supprime une caméra secondaire ajoutée.

ParamètreTypeDescription
_camCameraLa caméra secondaire à supprimer

Remarques :

  • Pris en charge uniquement sur les plateformes PC / Mac.

Exemple :

lccManager.RemoveCamera(secondCamera);

Découpe / Surlignage / Tons

La découpe, le surlignage et les tons sont trois types d'opérations d'édition, qui prennent toutes en charge la définition de la région affectée via une texture 2D, une géométrie 3D ou un mélange des deux. Voir Data2D, Data3D, DataMix et ToneMix.

SetClip (découpe par plan)

// Valeur de retour : int, 0=succès
public int SetClip(Vector3 planePoint, Vector3 planeNormal, bool inside = true)

Découpe le nuage de points avec un plan infini, en conservant les points du côté de la normale ou du côté opposé.

ParamètreTypeDescription
planePointVector3Un point sur le plan
planeNormalVector3Normale du plan
insidebooltrue conserve le côté de la normale

Remarques :

  • Mutuellement exclusive avec les autres modes de découpe.

Exemple :

lccManager.SetClip(Vector3.zero, Vector3.up, true); // Conserver au-dessus du sol

SetClip (découpe par texture 2D)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé
public int SetClip(List<Data2D> _2Ds)

Découpe le nuage de points à l'aide d'un masque de texture projetée 2D.

ParamètreTypeDescription
_2DsList<Data2D>Liste de sélection par texture 2D

Exemple :

var clips = new List<Data2D>();
clips.Add(new Data2D {
    texture = maskTex,
    mv = modelViewMatrix,
    mvp = mvpMatrix,
    mode = SelectMode.normal
});
lccManager.SetClip(clips);

SetClip (découpe par géométrie 3D)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé, 3=zéro géométrie valide
public int SetClip(List<Data3D> _3Ds)

Découpe le nuage de points avec une géométrie 3D, prenant en charge les opérations booléennes pour combiner plusieurs géométries.

ParamètreTypeDescription
_3DsList<Data3D>Liste de géométrie 3D

Remarques :

  • Au moins une géométrie avec operation == normal est requise.

Exemple :

var clips = new List<Data3D>();
clips.Add(new Data3D {
    type = ShapeType.box,
    invMat = boxInverseMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetClip(clips);

SetClip (découpe en mode mixte)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé
public int SetClip(List<DataMix> mix)

Définit la région de découpe avec un mélange de textures 2D et de géométries 3D. Chaque entrée spécifie son type via editType.

ParamètreTypeDescription
mixList<DataMix>Liste de sélection mixte (2D + 3D)

Exemple :

var mix = new List<DataMix>();
mix.Add(new DataMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = matrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetClip(mix);

QuitClipMode

public void QuitClipMode()

Sort du mode de découpe et restaure l'affichage complet du nuage de points.

Exemple :

lccManager.QuitClipMode();

SetHighlight (surlignage par texture 2D)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé
public int SetHighlight(List<Data2D> _2Ds)

Surligne le nuage de points à l'aide d'un masque de texture projetée 2D ; le nuage de points en dehors de la région surlignée est assombri.

ParamètreTypeDescription
_2DsList<Data2D>Liste de sélection par texture 2D

Remarques :

  • Mutuellement exclusif avec le surlignage 3D et le surlignage mixte.

Exemple :

var highlights = new List<Data2D>();
highlights.Add(new Data2D {
    texture = maskTex,
    mv = modelViewMatrix,
    mvp = mvpMatrix,
    mode = SelectMode.normal
});
lccManager.SetHighlight(highlights);

SetHighlight (surlignage par géométrie 3D)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé, 3=zéro géométrie valide
public int SetHighlight(List<Data3D> _3Ds)

Définit la région surlignée avec une géométrie 3D, prenant en charge les opérations booléennes pour combiner.

ParamètreTypeDescription
_3DsList<Data3D>Liste de géométrie 3D

Remarques :

  • Au moins une géométrie avec operation == normal est requise.

Exemple :

var highlights = new List<Data3D>();
highlights.Add(new Data3D {
    type = ShapeType.box,
    invMat = boxInverseMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetHighlight(highlights);

SetHighlight (surlignage en mode mixte)

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé
public int SetHighlight(List<DataMix> mix)

Définit la région surlignée avec un mélange de textures 2D et de géométries 3D.

ParamètreTypeDescription
mixList<DataMix>Liste de sélection mixte

Exemple :

var mix = new List<DataMix>();
mix.Add(new DataMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = matrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetHighlight(mix);

QuitHighlightMode

public void QuitHighlightMode()

Sort du mode de surlignage et restaure l'affichage normal du nuage de points.

Exemple :

lccManager.QuitHighlightMode();

SetTone

// Valeur de retour : int, 0=succès, 1=liste vide, 2=nombre maximal dépassé
public int SetTone(List<ToneMix> mix)

Applique un ajustement de tons à la région sélectionnée, prenant en charge la luminosité, la saturation, le contraste et les filtres LUT. La région de tons peut être définie par une texture 2D ou une géométrie 3D.

ParamètreTypeDescription
mixList<ToneMix>Liste de mélange de tons

Remarques :

  • brightness / saturation / contrast ont pour défaut 1.0.
  • lutid est l'index du filtre LUT ; 0 signifie non utilisé.

Exemple :

var tones = new List<ToneMix>();
tones.Add(new ToneMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = boxMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal,
    brightness = 1.2f,
    saturation = 1.0f,
    contrast = 1.1f,
    lutid = 0
});
lccManager.SetTone(tones);

QuitToneMode

public void QuitToneMode()

Sort du mode de tons et restaure la couleur d'origine du nuage de points.

Exemple :

lccManager.QuitToneMode();

Projection de décalque

La projection de décalque projette une texture sur les surfaces 3DGS le long de la direction du projecteur. Le décalque est un état global fixé dans le monde, cohérent pour toutes les caméras. Le flux de travail typique est : activer le décalque → définir la texture → définir la pose du projecteur. Les méthodes suivantes sont prises en charge uniquement sur les plateformes PC / Mac.

SetDecalEnabled

public void SetDecalEnabled(bool enable)

Active/désactive la projection de décalque. SetDecalTexture() et SetDecalProjection() doivent être appelées séparément pour définir le contenu et la pose du projecteur.

ParamètreTypeDescription
enableboolS'il faut activer la projection de décalque

Remarques :

  • La désactivation n'efface pas la texture / les paramètres mis en cache.

Exemple :

lccManager.SetDecalEnabled(true);
lccManager.SetDecalTexture(decalTex);
lccManager.SetDecalProjection(projectorPos, projectorRot, 60f, 1.778f, 0.1f, 20f);

SetDecalTexture

public void SetDecalTexture(Texture2D tex)

Définit la texture du décalque. RGB est la couleur, et A est le masque propre du décalque, qui est multiplié avec l'opacité globale et le fondu de bord.

ParamètreTypeDescription
texTexture2DTexture du décalque ; passer null efface la référence

Exemple :

lccManager.SetDecalTexture(logoTex);

SetDecalProjection

public void SetDecalProjection(Vector3 pos, Quaternion rot, float fov, float aspect, float near, float far)

Définit la pose et les paramètres de perspective du projecteur de décalque. Le projecteur projette le long de sa direction avant (+Z), et les points à l'intérieur du frustum sont recouverts par le décalque.

ParamètreTypeDescription
posVector3Position mondiale du projecteur
rotQuaternionOrientation du projecteur
fovfloatFOV vertical (degrés), borné à [1, 179]
aspectfloatRatio d'aspect, minimum 1e-4
nearfloatPlan de découpe proche, minimum 1e-3
farfloatPlan de découpe lointain, minimum near + 1e-3

Exemple :

lccManager.SetDecalProjection(new Vector3(0, 10, 0), Quaternion.Euler(90, 0, 0), 60f, 1.778f, 0.1f, 20f);

SetDecalOpacity

public void SetDecalOpacity(float opacity)

Définit l'opacité globale du décalque.

ParamètreTypeDescription
opacityfloatOpacité globale du décalque, plage [0, 1], automatiquement bornée en cas de dépassement

Exemple :

lccManager.SetDecalOpacity(0.8f);

SetDecalEdgeFade

public void SetDecalEdgeFade(float edgeFade)

Définit la largeur du fondu de bord du décalque. 0 est un bord dur, et une valeur plus grande rend la transition de bord plus douce.

ParamètreTypeDescription
edgeFadefloatLargeur du fondu de bord (ratio en espace UV), plage [0, 0.5), automatiquement bornée en cas de dépassement

Exemple :

lccManager.SetDecalEdgeFade(0.1f);

SetDecalOcclusion

public void SetDecalOcclusion(bool enable)

Active/désactive l'occlusion culling du décalque (basée sur la carte de profondeur du projecteur). Lorsqu'elle est activée, les surfaces occluses ne sont pas recouvertes par le décalque.

ParamètreTypeDescription
enableboolS'il faut activer l'occlusion culling du décalque

Remarques :

  • Plateforme PC / Mac uniquement, et pipeline URP uniquement.
  • SetDecalProjection() doit avoir été appelée pour définir le projecteur avant l'activation.
  • Dépend des paramètres de qualité configurés par SetDecalOcclusionSettings().

Exemple :

lccManager.SetDecalOcclusion(true);

SetDecalOcclusionSettings

public void SetDecalOcclusionSettings(DecalOcclusionSettings settings)

Définit tous les paramètres de qualité de l'occlusion culling du décalque en une seule fois. Voir DecalOcclusionSettings.

ParamètreTypeDescription
settingsDecalOcclusionSettingsParamètres de qualité de l'occlusion culling

Remarques :

  • Peut être ajusté à tout moment ; les paramètres prennent effet immédiatement.

Exemple :

lccManager.SetDecalOcclusionSettings(DecalOcclusionSettings.Default);
lccManager.SetDecalOcclusionSettings(new DecalOcclusionSettings {
    opacityCutoff = 0.1f,
    depthBias = 0.05f,
    footprintMaxPx = 2,
    resolution = 1024
});

Accrochage

La fonctionnalité d'accrochage recherche automatiquement les arêtes / coins proches pour s'aligner pendant le raycasting, et est couramment utilisée pour des interactions précises telles que la mesure et l'annotation. Les méthodes suivantes sont prises en charge uniquement sur les plateformes PC / Mac.

SetSnapEnabled

public void SetSnapEnabled(bool enable)

Active/désactive la fonctionnalité d'accrochage. Lorsqu'elle est activée, RaycastWithSnap() recherche automatiquement les arêtes / coins proches auxquels s'accrocher.

ParamètreTypeDescription
enableboolS'il faut activer l'accrochage

Remarques :

  • Désactivé par défaut.
  • Aucun effet sur mobile / VR, et un avertissement est affiché.

Exemple :

lccManager.SetSnapEnabled(true);

SetSnapRadius

public void SetSnapRadius(float pixels)

Définit le rayon de recherche d'accrochage. Recherche l'arête / le coin le plus proche dans cette plage de pixels.

ParamètreTypeDescription
pixelsfloatRayon de recherche d'accrochage (pixels)

Remarques :

  • Défaut 20 pixels.
  • Une valeur plus grande signifie une plage de recherche plus large, mais peut s'accrocher à des cibles non voulues.

Exemple :

lccManager.SetSnapRadius(30f);

SetEdgeThreshold

public void SetEdgeThreshold(float threshold)

Définit le seuil de détection d'arêtes. Une valeur plus petite détecte plus d'arêtes.

ParamètreTypeDescription
thresholdfloatSeuil de détection d'arêtes, plage recommandée [0.1, 0.8]

Remarques :

  • Défaut 0.3.
  • Une valeur trop petite produit une grande quantité d'arêtes bruyantes.

Exemple :

lccManager.SetEdgeThreshold(0.2f);

SetSnapPreviewEnabled

public void SetSnapPreviewEnabled(bool enable)

Active/désactive la fonctionnalité d'aperçu d'accrochage. Lorsqu'elle est activée, l'indicateur de la cible d'accrochage la plus proche est affiché en temps réel lorsque la souris se déplace.

ParamètreTypeDescription
enableboolS'il faut activer l'aperçu d'accrochage

Remarques :

  • SetSnapEnabled(true) doit être appelé en premier.
  • L'aperçu consomme continuellement des ressources GPU (détection à chaque image).

Exemple :

lccManager.SetSnapPreviewEnabled(true);

UpdateSnapPreview

public void UpdateSnapPreview(Vector2 mousePos, Camera cam)

Met à jour l'état de l'aperçu d'accrochage. Appelée lorsque la souris se déplace pour mettre à jour la position de l'indicateur d'aperçu.

ParamètreTypeDescription
mousePosVector2Coordonnées écran actuelles de la souris
camCameraCaméra

Remarques :

  • SetSnapPreviewEnabled(true) doit être appelé en premier.
  • Recommandé d'appeler continuellement dans Update.

Exemple :

void Update()
{
    lccManager.UpdateSnapPreview(Input.mousePosition, Camera.main);
}

GetSnapPreviewState

// Valeur de retour : SnapPreviewState
public SnapPreviewState GetSnapPreviewState()

Obtient l'état actuel de l'aperçu d'accrochage, y compris s'il existe une cible d'accrochage, le type de cible, la position écran de la cible et la distance en pixels par rapport à la souris. Voir SnapPreviewState.

Remarques :

  • SetSnapPreviewEnabled(true) et UpdateSnapPreview() doivent être appelés en premier.
  • Retourne default(SnapPreviewState) lorsqu'il n'y a pas de cible.
  • screenPos est en coordonnées écran, pas en coordonnées mondiales ; utilisez RaycastWithSnap() pour obtenir HitResult.hitPos pour les coordonnées mondiales.

Exemple :

var state = lccManager.GetSnapPreviewState();
if (state.hasTarget)
{
    // state.snapType : Corner / Edge
    // state.screenPos : coordonnées écran de la cible d'accrochage
    // state.distanceToMouse : distance en pixels
}

Requêtes de raycasting et de collision

Le raycasting est utilisé pour sélectionner des points sur les surfaces 3DGS, et les requêtes de collision sont utilisées pour l'interaction physique entre les personnages / objets et le nuage de points. Le résultat d'impact est retourné via HitResult.

Remarque :

Le champ de coordonnée mondiale du point d'impact de HitResult est nommé hitPos (pas position).

Raycast (coordonnées écran)

// Valeur de retour : bool, true=impact
public bool Raycast(Vector3 mousePos, out HitResult _finalResult)

Émet un rayon depuis des coordonnées écran pour détecter les impacts sur le nuage de points. Le rayon est généré en utilisant la caméra principale définie par SetMainCamera().

ParamètreTypeDescription
mousePosVector3Coordonnées écran
_finalResultout HitResultRésultat de l'impact

Remarques :

  • SetMainCamera() doit être appelé en premier pour définir la caméra principale.
  • Retourne le point d'impact le plus proche de la caméra.
  • La précision est affectée par SetRaycastDelta(), et la distance maximale est contrôlée par SetMaxRaycastDistance().

Exemple :

if (lccManager.Raycast(Input.mousePosition, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

Raycast (Ray)

// Valeur de retour : bool, true=impact
public bool Raycast(Ray _ray, out HitResult _finalResult)

Effectue le raycasting avec un Ray personnalisé, itérant sur tous les Renderers actifs et retournant l'impact le plus proche.

ParamètreTypeDescription
_rayRayRay
_finalResultout HitResultRésultat de l'impact

Exemple :

Ray ray = new Ray(origin, direction);
if (lccManager.Raycast(ray, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

RaycastMesh (coordonnées écran)

// Valeur de retour : bool, true=impact
public bool RaycastMesh(Vector3 mousePos, out HitResult _finalResult, float _distance = 70.0f)

Émet un rayon depuis des coordonnées écran pour détecter les impacts contre le mesh de collision du nuage de points. Utilise les données Collider pour la détection, ce qui est plus rapide que Raycast() mais moins précis.

ParamètreTypeDescription
mousePosVector3Coordonnées écran
_finalResultout HitResultRésultat de l'impact
_distancefloatDistance de détection maximale, défaut 70.0

Remarques :

  • Les données doivent contenir des nœuds Collider, et Renderer.SetColliderEnable(true) doit être appelé en premier.

Exemple :

if (lccManager.RaycastMesh(Input.mousePosition, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

RaycastMesh (Ray + Bounds)

// Valeur de retour : bool, true=impact
public bool RaycastMesh(Ray ray, out HitResult result, out Bounds hitBounds, float maxDist = 70.0f)

Effectue la détection du mesh de collision avec un Ray personnalisé, retournant également la boîte englobante du nœud impacté.

ParamètreTypeDescription
rayRayRay
resultout HitResultRésultat de l'impact
hitBoundsout BoundsBoîte englobante du nœud impacté
maxDistfloatDistance de détection maximale, défaut 70.0

Remarques :

  • Les données doivent contenir des nœuds Collider.

Exemple :

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (lccManager.RaycastMesh(ray, out HitResult hit, out Bounds bounds))
{
    Debug.Log(bounds.center);
}

RaycastWithSnap

// Valeur de retour : bool, true=impact
public bool RaycastWithSnap(Vector2 screenPos, Camera cam, out HitResult result)

Raycasting avec accrochage. Effectue d'abord un raycast normal, puis recherche les arêtes / coins proches du point d'impact pour s'y accrocher.

ParamètreTypeDescription
screenPosVector2Coordonnées écran
camCameraCaméra
resultout HitResultRésultat de l'impact (incluant les informations d'accrochage)

Remarques :

  • SetSnapEnabled(true) doit être appelé en premier.
  • Plateformes PC / Mac uniquement ; non disponible sur mobile / VR.
  • Priorité d'accrochage : Corner > Edge > None.
  • HitResult.snapType est le type d'accrochage, HitResult.hitPos est la coordonnée mondiale après accrochage, et HitResult.originalHitPos est le point d'impact d'origine avant accrochage.

Exemple :

if (lccManager.RaycastWithSnap(mousePos, cam, out HitResult hit))
{
    // hit.snapType : Corner / Edge / None
    // hit.hitPos : coordonnée mondiale après accrochage
    // hit.originalHitPos : point d'impact d'origine avant accrochage
}

SetRaycastDelta

public void SetRaycastDelta(float delta)

Définit le paramètre de précision du raycasting. Une valeur plus petite signifie une précision plus élevée mais une consommation de performance plus élevée.

ParamètreTypeDescription
deltafloatPrécision du raycasting, plage [0.1, 10.0], automatiquement bornée en cas de dépassement

Remarques :

  • Défaut 0.1.
  • Affecte la précision de détection de toutes les méthodes Raycast().

Exemple :

lccManager.SetRaycastDelta(0.5f);

SetMaxRaycastDistance

public void SetMaxRaycastDistance(float _distance)

Définit la distance de détection maximale des méthodes Raycast().

ParamètreTypeDescription
_distancefloatDistance maximale de raycast, plage [10, 10000], automatiquement bornée en cas de dépassement

Remarques :

  • Affecte les surcharges Raycast(Vector3) / Raycast(Ray) ; n'affecte pas RaycastMesh() (qui a son propre paramètre de distance).

Exemple :

lccManager.SetMaxRaycastDistance(500f);

IntersectsSphere

// Valeur de retour : bool, true=intersection
public bool IntersectsSphere(Sphere sphere)

// Valeur de retour : bool, true=intersection
public bool IntersectsSphere(Sphere sphere, out Vector3 delta)

Détecte si une sphère intersecte le collider du nuage de points. La deuxième surcharge retourne en plus le vecteur de pénétration, qui peut être utilisé pour la poussée physique.

ParamètreTypeDescription
sphereSphereSphère
deltaout Vector3Vecteur de pénétration (direction et distance de poussée)

Remarques :

  • Les données doivent contenir des nœuds Collider, et Renderer.SetColliderEnable(true) doit être appelé en premier.
  • Itère sur tous les Renderers actifs.

Exemple :

var sphere = new Sphere(transform.position, 0.5f);
if (lccManager.IntersectsSphere(sphere, out Vector3 delta))
{
    transform.position += delta;
}

IntersectsCapsule

// Valeur de retour : bool, true=intersection
public bool IntersectsCapsule(Capsule capsule)

// Valeur de retour : bool, true=intersection
public bool IntersectsCapsule(Capsule capsule, out Vector3 delta)

Détecte si une capsule intersecte le collider du nuage de points, couramment utilisé pour la détection de collision des contrôleurs de personnage. La deuxième surcharge retourne le vecteur de pénétration.

ParamètreTypeDescription
capsuleCapsuleCapsule
deltaout Vector3Vecteur de pénétration

Remarques :

  • Les données doivent contenir des nœuds Collider, et Renderer.SetColliderEnable(true) doit être appelé en premier.

Exemple :

var capsule = new Capsule(footPos, headPos, 0.3f);
if (lccManager.IntersectsCapsule(capsule, out Vector3 delta))
{
    characterController.Move(delta);
}

Effets visuels

TriggerVFX

public void TriggerVFX(Vector3 vfxOriginW, int vfxid = 0)

Déclenche un effet visuel à la coordonnée mondiale spécifiée, se propageant vers l'extérieur depuis cette coordonnée.

ParamètreTypeDescription
vfxOriginWVector3Origine en coordonnées mondiales de l'effet
vfxidintID de l'effet, défaut 0

Remarques :

  • Doit être appelé après la fin du chargement de la scène LCC.

Exemple :

lccManager.TriggerVFX(hitPoint, 0);

Requêtes d'instances

GetAllRenderers

// Valeur de retour : List<Renderer>, une copie de toutes les instances Renderer enregistrées
public List<Renderer> GetAllRenderers()

Obtient la liste de toutes les instances Renderer actuellement enregistrées (retourne une copie).

Exemple :

var renderers = lccManager.GetAllRenderers();
foreach (var r in renderers) { /* ... */ }