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

    • PortalCam P1

      • Productoverzicht
      • Basisbediening
      • De LCC Scan App gebruiken
      • Onderhoud en verzorging
      • Veelgestelde vragen
  • Lixel K-serie

    • Lixel K1

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
    • Lixel K2

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
  • Lixel L-serie

    • Lixel L2 Pro

      • Productoverzicht
      • Basisbediening
      • Apparaatactivering en -verbinding
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten opnemen
      • Meetpunt
      • Appendix
      • FAQ
    • Lixel L3

      • Productoverzicht
      • Basisfuncties van het apparaat
      • Apparaatactivering en -verbinding
      • Gegevensopname
      • Absolute coördinaten opnemen
      • Appendix
  • Lixel Studio

    • Versie en copyright
    • Installatie en activering
    • Software-interface
    • Bestandsbewerkingen
    • Projectverwerking
    • Gereedschappen
    • 2D-tekenen
    • Toepassingen
    • Instellingen
    • Apparaatverbinding
  • 07-plugin-sdk

    • Unity

      • LCC Unity SDK Introductie
      • Technische functies
      • Vereisten voor de ontwikkelomgeving
      • Snelstartgids voor pc
      • Optimalisatiegids voor projectinstellingen
      • Ontwikkelgids voor Pico 4 Ultra
      • Pc-streaminggids voor Pico 4 Ultra
      • Ontwikkelgids voor Quest 3
      • Pc-streaminggids voor Quest 3
      • Ontwikkelgids voor OpenXR
      • Business Streaming-gids voor Pico 4 Ultra
      • Woordenlijst
      • Veelgestelde vragen
      • Contact opnemen
      • Ontwikkelingshandleiding voor functies

        • Ontwikkelgids voor gemengde rendering van meerdere scènes
        • Ontwikkelgids voor het ontvangen van schaduwen
        • Ontwikkelgids voor realtime belichting
        • Ontwikkelgids voor multi-camera rendering
        • Ontwikkelgids voor het renderen van afbeeldingen met hoge resolutie
        • Ontwikkelgids voor compatibiliteit van de gegevensformaten LCC en LCC2
        • Ontwikkelgids voor laadeffecten
        • Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
        • Ontwikkelgids voor rand- en hoeksnapping
        • Ontwikkelgids voor geprojecteerde decal
        • Ontwikkelgids voor video-geprojecteerde decal
        • Ontwikkelgids voor markeren
        • Ontwikkelgids voor realtime knippen
        • Ontwikkelgids voor kleuraanpassing
        • Ontwikkelgids voor het ophalen van scène-Meshgegevens
        • Ontwikkelgids voor de Editor-modus
        • Configuratiegids voor renderprestatieparameters
        • Ontwikkelgids voor het samen verpakken van de applicatie en de gegevens
        • Ontwikkelgids voor het botsingssysteem
        • Gids voor macOS-ontwikkelingsmachtigingsproblemen
        • Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten
      • API-referentie

        • LCCManager
        • Renderer
        • Gegevenstypen
      • Wijzigingslogboek

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

LCCManager: kernmanager

De kernmanager van de LCC Unity SDK, verantwoordelijk voor het beheer van alle Renderer-instanties, camera's, de globale renderingstatus, evenals bewerkingsbewerkingen (knippen / markeren / toon), decalprojectie, snapping en interactiequery's (raycast / botsing). Er mag in de hele scène slechts één LCCManager-instantie zijn.

NaamruimteLCCCore
BasisklasseMonoBehaviour

LCCManager heeft geen openbare eigenschappen; alle functionaliteit wordt via methoden benaderd. De methoden zijn gegroepeerd naar doel:

  • Initialisatie en configuratie
  • Renderingbeheer tijdens runtime
  • Verlichting en schaduwen
  • Camerabeheer
  • Knippen / markeren / toon
  • Decalprojectie
  • Snapping
  • Raycasting- en botsingsquery's
  • Visuele effecten
  • Instantiequery's

Initialisatie en configuratie

De volgende methoden worden gebruikt om vóór het laden van gegevens de vooraf-configuratie van platform, rendermodus, capaciteit enzovoort te voltooien. De meeste methoden moeten vóór elke Renderer.Load() worden aangeroepen.

SetPlatformType

public void SetPlatformType(PlatformType _type)

Stelt het doel-runtimeplatform van de SDK in, wat van invloed is op de interne renderingstrategie en resourcetoewijzing.

ParameterTypeBeschrijving
_typePlatformTypeDoelplatform; zie PlatformType

Opmerkingen:

  • Moet vóór elke GetRender()-aanroep worden uitgevoerd.

Voorbeeld:

lccManager.SetPlatformType(PlatformType.PC);

SwitchRenderPass

public void SwitchRenderPass(ActiveRenderMode _mode)

Stelt de globale renderingarchitectuurmodus in. MultiRender maakt gebruik van een gedeelde GPU-buffer en kan tot 255 Renderers gelijktijdig renderen; SingleRender laat de SDK automatisch het renderingpad selecteren op basis van de gegevensgrootte.

ParameterTypeBeschrijving
_modeActiveRenderModeRendermodus; zie ActiveRenderMode

Opmerkingen:

  • Moet vóór elke Renderer.Load() worden aangeroepen.
  • Alleen van kracht op pc-/Mac-platformen; mobiele / VR-platformen hanteren automatisch een adaptieve strategie en het aanroepen van deze methode wordt geweigerd.
  • De MultiRender-modus ondersteunt geen HTTP-gegevensbronnen; gebruik SingleRender voor HTTP-gegevens.
  • Zodra een Renderer Load() heeft voltooid, is de modus vergrendeld en kan deze niet opnieuw worden gewijzigd.

Voorbeeld:

lccManager.SwitchRenderPass(ActiveRenderMode.MultiRender);

GetRender (overbelasting 1: Transform koppelen)

// Retourwaarde: Renderer, null bij fout
public Renderer GetRender(Transform _transform)

Maakt een nieuwe renderinginstantie aan en koppelt deze aan de opgegeven Transform. Na het aanmaken moet Renderer.Load() worden aangeroepen om gegevens te laden.

ParameterTypeBeschrijving
_transformTransformDe Transform waaraan de renderinginstantie wordt gekoppeld

Opmerkingen:

  • SetPlatformType() en SetMainCamera() moeten eerst worden aangeroepen.
  • In de MultiRender-modus worden maximaal 255 Renderers ondersteund.

Voorbeeld:

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

GetRender (overbelasting 2: GameObject automatisch aanmaken)

// Retourwaarde: Renderer, null bij fout
public Renderer GetRender(out GameObject gameObject)

Maakt automatisch een GameObject met de naam LCCRenderer aan en koppelt de renderinginstantie aan de Transform ervan.

ParameterTypeBeschrijving
gameObjectout GameObjectGeeft het automatisch aangemaakte GameObject uit, null bij fout

Voorbeeld:

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

SetMaxBufferSplat

public void SetMaxBufferSplat(int _count)

Stelt de maximale capaciteit van de GPU-buffer (aantal Splats) in. Wordt eenmalig toegewezen en kan niet dynamisch worden gewijzigd.

ParameterTypeBeschrijving
_countintMaximaal aantal Splats, eenheid: tienduizend (waarde × 10000 = werkelijke aantal)

Opmerkingen:

  • Moet vóór elke Renderer.Load() worden aangeroepen en SetPlatformType() moet eerst worden aangeroepen.
  • Een grotere capaciteit betekent een hoger videogeheugengebruik; stel deze in naar behoefte.
  • Platformlimieten: pc / Mac / PCVR 45 miljoen, Android / iOS 6 miljoen, VR (Pico / Quest / PicoSwan / AVP / OpenXR) 2 miljoen.
  • Standaardwaarden: pc / Mac 30 miljoen, Android / iOS 3 miljoen, VR 1 miljoen.

Voorbeeld:

lccManager.SetMaxBufferSplat(3000); // 30 miljoen punten

SetFullRenderSplat

public void SetFullRenderSplat(int _count)

Stelt de bovendrempel voor volledige rendering op pc / Mac in. Wanneer de gegevensgrootte onder deze waarde ligt, wordt het volledige renderingpad gebruikt; anders wordt het chunked renderingpad gebruikt.

ParameterTypeBeschrijving
_countintBovengrens voor volledige rendering, eenheid: tienduizend, bereik [100, 4500]

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-/PCVR-platformen.
  • Moet vóór elke Renderer.Load() worden aangeroepen en SetPlatformType() moet eerst worden aangeroepen.

Voorbeeld:

lccManager.SetFullRenderSplat(2500); // 25 miljoen punten

SetMaxRenderSplats

public void SetMaxRenderSplats(int _count)

Stelt het maximale aantal Splats in dat tijdens runtime per frame wordt gerenderd. Kan dynamisch na Load() worden aangeroepen.

ParameterTypeBeschrijving
_countintMaximaal aantal Splats dat tijdens runtime wordt gerenderd, eenheid: tienduizend

Opmerkingen:

  • Kan tijdens runtime dynamisch worden aangepast.
  • Mag de door SetMaxBufferSplat() ingestelde capaciteit niet overschrijden; bij overschrijding wordt deze automatisch begrensd.
  • Geen effect in de volledige rendermodus.

Voorbeeld:

lccManager.SetMaxRenderSplats(2500); // 25 miljoen punten

GetLoadRatio

// Retourwaarde: float, [0,1] huidige laadvoortgang van de gegevens
public float GetLoadRatio()

Vraagt de laadvoortgang van de huidige scènegegevens op.

Opmerkingen:

  • Retourneert in de volledige rendermodus altijd 1.0.
  • Retourneert in de chunked-rendermodus de verhouding van geladen knooppunten onder de huidige weergave; de waarde verandert in realtime met de camerabeweging en is geen monotoon stijgende algehele voortgang.

Voorbeeld:

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

SetSelectionMode

public void SetSelectionMode(SelectionMode mode)

Stelt de strategie voor knooppuntselectie in.

ParameterTypeBeschrijving
modeSelectionModeSelectiestrategie; zie SelectionMode

Opmerkingen:

  • Auto (standaard): wordt automatisch bepaald op basis van het totale begrenzingskader van de scène; wanneer de maximale afmeting van de scène ongeveer 380 meter overschrijdt, wordt automatisch overgeschakeld naar Large.
  • Normal: geschikt voor kleine en middelgrote scènes.
  • Large: geschikt voor zeer grote scènes (meer dan 1000 meter).
  • Wordt direct na het omschakelen van kracht.

Voorbeeld:

lccManager.SetSelectionMode(SelectionMode.Auto);

Renderingbeheer tijdens runtime

De volgende methoden kunnen tijdens runtime dynamisch worden aangeroepen om de renderingprecisie, weergave-effecten en rendering-schakelaars aan te passen.

SetDetailLevel

public void SetDetailLevel(float sse)

Stelt het renderingprecisieniveau in. Een grotere waarde betekent fijnere rendering en een hoger prestatieverbruik.

ParameterTypeBeschrijving
ssefloatPrecisieniveau, bereik [1, 100], automatisch begrensd bij overschrijding

Opmerkingen:

  • Maakt gebruik van logaritmische toewijzing: veranderingen zijn gevoelig in het lage waardebereik en vloeiend in het hoge waardebereik.
  • Kan tijdens runtime dynamisch worden aangepast.
  • Wordt alleen van kracht in de Normal-selectiemodus.

Voorbeeld:

lccManager.SetDetailLevel(50f); // Gemiddelde precisie

SetStartLod

public void SetStartLod(int lod)

Stelt het startpunt van de LOD-expansie in (0-gebaseerd). 0 is het fijnst en een groter getal betekent een grover niveau.

ParameterTypeBeschrijving
lodintLOD-startniveau, bereik [0, 10], automatisch begrensd bij overschrijding

Opmerkingen:

  • De daadwerkelijk van kracht zijnde bovengrens wordt beperkt door het totale aantal gegevensniveaus.

Voorbeeld:

lccManager.SetStartLod(0);

SetAutoFov

public void SetAutoFov(bool _auto)

Stelt in of de rendering-FOV automatisch moet worden beheerd. Wanneer deze is ingeschakeld (standaard), vergrendelt de SDK bij het eerste frame een pixelbrandpuntsafstandsbasislijn, leidt vervolgens elke frame de verticale FOV af van de huidige viewporthoogte en schrijft deze terug naar Camera.fieldOfView; wanneer deze is uitgeschakeld, wordt fieldOfView extern beheerd (SetFOV() of door de camera rechtstreeks te wijzigen).

ParameterTypeBeschrijving
_autoboolOf automatische FOV moet worden gebruikt

Opmerkingen:

  • Standaard ingeschakeld.
  • Wanneer deze is ingeschakeld, wordt de Camera.fieldOfView van de hoofdcamera voortdurend herschreven, dus het aanroepen van SetFOV() wordt genegeerd.
  • Wanneer deze is uitgeschakeld, moet SetFOV() handmatig worden aangeroepen om parameters in te stellen.

Voorbeeld:

lccManager.SetAutoFov(true);

SetFOV

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

Stelt handmatig de verticale FOV (in graden) in. Herschrijft de Camera.fieldOfView van de hoofdcamera rechtstreeks, zodat de FOV in de Inspector overeenkomt met de FOV die daadwerkelijk voor rendering wordt gebruikt. _width / _height / _aspect zijn legacy-handtekeningsparameters; de daadwerkelijke projectie gebruikt de eigen viewport van de hoofdcamera (gebruik SetRecordMode() voor offscreen-uitvoer met een andere grootte / FOV).

ParameterTypeBeschrijving
_widthintPixelbreedte
_heightintPixelhoogte
_verticalFovfloatVerticale FOV (graden)
_aspectfloatBeeldverhouding

Opmerkingen:

  • SetAutoFov(false) moet eerst worden aangeroepen, anders overschrijft de per-frame automatische FOV-afleiding de handmatige waarde.
  • De verticale FOV wordt begrensd tot [1, 179] graden.
  • Aanroepen op VR-/PCVR-platformen, tijdens het opnemen of onder een orthografische camera wordt geweigerd (geeft een waarschuwing en retourneert).

Voorbeeld:

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

SetRenderEnable

public void SetRenderEnable(Renderer _renderer, bool _isEnable)

Beheert de rendering-schakelaar van de opgegeven Renderer tijdens runtime. Wanneer deze is uitgeschakeld, neemt deze niet deel aan traversaal en tekenen.

ParameterTypeBeschrijving
_rendererRendererDoel-renderinginstantie
_isEnableboolOf rendering moet worden ingeschakeld

Voorbeeld:

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

SetEnvironment

public void SetEnvironment(Renderer _renderer, bool _isRender)

Beheert de rendering van omgevingsgegevens van de opgegeven Renderer. Omgevingsgegevens zijn een achtergrondpuntenwolk met lage precisie die wordt gebruikt om verre uitzichten op te vullen.

ParameterTypeBeschrijving
_rendererRendererDoel-renderinginstantie
_isRenderboolOf omgevingsgegevens moeten worden gerenderd

Opmerkingen:

  • De gegevens moeten omgevingsknooppunten bevatten.

Voorbeeld:

lccManager.SetEnvironment(renderer, true);

SetZDepth

public void SetZDepth(bool zwrite)

Schakelt de Z-diepteschrijving in of uit en past de renderwachtrij dienovereenkomstig aan.

ParameterTypeBeschrijving
zwriteboolOf Z-diepteschrijving moet worden ingeschakeld

Voorbeeld:

lccManager.SetZDepth(true);

SetAlpha

public void SetAlpha(float alpha)

Stelt de globale opaciteit in.

ParameterTypeBeschrijving
alphafloatGlobale opaciteit, bereik [0, 1], automatisch begrensd bij overschrijding

Voorbeeld:

lccManager.SetAlpha(0.8f);

SetLightIntensity

public void SetLightIntensity(float intensity)

Stelt de globale lichtintensiteit in.

ParameterTypeBeschrijving
intensityfloatLichtintensiteit, bereik [0, 1], automatisch begrensd bij overschrijding

Voorbeeld:

lccManager.SetLightIntensity(0.7f);

SetLowPassFilter

public void SetLowPassFilter(float _filter)

Stelt de sterkte van het globale laagdoorlaatfilter in, gebruikt om hoogfrequente aliasing / ruis te onderdrukken.

ParameterTypeBeschrijving
_filterfloatSterkte van het laagdoorlaatfilter, bereik [0, 1], automatisch begrensd bij overschrijding

Voorbeeld:

lccManager.SetLowPassFilter(0.3f);

SetLockFPS

public void SetLockFPS(bool _isLock)

Schakelt de frameratevergrendeling in of uit (statische / dynamische frameratewisseling).

ParameterTypeBeschrijving
_isLockboolOf de framerate moet worden vergrendeld

Voorbeeld:

lccManager.SetLockFPS(true);

SetRenderLayer

public void SetRenderLayer(int _layer)

Stelt de Unity Layer in die door LCC-rendering wordt gebruikt, voor de zichtbaarheidsbeheer via de camera-CullingMask.

ParameterTypeBeschrijving
_layerintUnity-renderlaag, bereik [0, 31]

Opmerkingen:

  • Kan tijdens runtime dynamisch worden aangepast.

Voorbeeld:

lccManager.SetRenderLayer(8); // Laag 8 gebruiken

SetForceRefresh

public void SetForceRefresh()

Forceert een renderingvernieuwing. Wist de interne camerainfo-cache zodat het frustum, de LOD en andere parameters in het volgende frame opnieuw worden berekend. Geschikt voor gevallen waarin extern gewijzigde cameraparameters direct van kracht moeten worden.

Voorbeeld:

lccManager.SetForceRefresh();

SetMipMode

public void SetMipMode(MipMode _mipMode)

Schakelt tussen de Mip-rendermodi. De Mip-modus maakt gebruik van mipmap-sampling (standaard) en de Non_Mip-modus schakelt mipmap uit.

ParameterTypeBeschrijving
_mipModeMipModeDoelmodus; zie MipMode

Opmerkingen:

  • Retourneert direct wanneer de huidige modus gelijk is aan de doorgegeven modus.
  • Wordt direct na het omschakelen van kracht.

Voorbeeld:

lccManager.SetMipMode(MipMode.Non_Mip);

SetGraphicsAPI

public void SetGraphicsAPI(GraphicsDeviceType type)

Stelt het grafische API-type in. HDR is ingeschakeld in de DX11-modus.

ParameterTypeBeschrijving
typeGraphicsDeviceTypeGrafisch API-type (ingebouwde enum van Unity)

Voorbeeld:

lccManager.SetGraphicsAPI(GraphicsDeviceType.Direct3D11);

SetDebugMode

public void SetDebugMode(bool debug)

Schakelt de debugmodus in of uit.

ParameterTypeBeschrijving
debugboolOf de debugmodus moet worden ingeschakeld

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.SetDebugMode(true);

SetEditorMode

public void SetEditorMode(bool _isEditor)

Schakelt de Editor-modus in of uit.

ParameterTypeBeschrijving
_isEditorboolOf de Editor-modus moet worden ingeschakeld

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.SetEditorMode(true);

SetAECMode

public void SetAECMode(bool _aec)

Schakelt de AEC-modus (Architecture / Engineering / Construction) in of uit.

ParameterTypeBeschrijving
_aecboolOf de AEC-modus moet worden ingeschakeld

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.SetAECMode(true);

SetSemantic

// Retourwaarde: bool, false=ongeldige parameter
public bool SetSemantic(bool enable, Vector4[] color = null)

Schakelt de semantische rendermodus in of uit. Wanneer deze is ingeschakeld, kan een kleurenarray worden doorgegeven om de weergavekleur van elke semantische categorie te definiëren.

ParameterTypeBeschrijving
enableboolOf semantische rendering moet worden ingeschakeld
colorVector4[]Semantische kleurenarray, de lengte moet 100 zijn, anders wordt false geretourneerd; geef null door om standaardkleuren te gebruiken

Voorbeeld:

Vector4[] colors = new Vector4[100];
colors[0] = new Vector4(1, 0, 0, 1); // Categorie 0 = rood
lccManager.SetSemantic(true, colors);

SwitchRenderMode

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

Schakelt tussen puntenwolkrendering en 3DGS-rendering. In de puntenwolkmodus kan een kleurverlooptextuur voor hoogte worden opgegeven.

ParameterTypeBeschrijving
modeRenderModeRendermodus; zie RenderMode
texTexture2DKleurverlooptextuur voor hoogte (optioneel)

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.SwitchRenderMode(RenderMode.PointCloud, elevationTex);

SetRecordMode

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

Stelt de opnamemodus in. In de opnamemodus worden een vaste resolutie en FOV gebruikt voor rendering, geschikt voor HD-video-opname.

ParameterTypeBeschrijving
isRecordboolOf de opnamemodus moet worden gebruikt
renderSizeVector2Opnameresolutie
verticalFovfloatVerticale FOV (graden)

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.
  • In de opnamemodus is de brandpuntsafstand van de camera vast en verandert deze niet met de Camera-component.
  • Roep na het opnemen SetRecordMode(false, ...) aan om te herstellen.

Voorbeeld:

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

SetVRPerformance

public void SetVRPerformance(bool _enabled)

Stelt de krachtige VR-sorteermodus in. true gebruikt GPU-radixsortering (GpuSorter) en false valt terug op CPU / BitonicSorter.

ParameterTypeBeschrijving
_enabledboolOf krachtige GPU-sortering moet worden ingeschakeld

Opmerkingen:

  • Heeft alleen invloed op het sorteertraject van VR-headsets (Pico / Quest / PicoSwan / OpenXR); standaard ingeschakeld.
  • Wanneer er geen compute-apparaat is (zoals Mali), valt de sorteervoorganger automatisch terug op CPU, ongeacht deze schakelaar.

Voorbeeld:

lccManager.SetVRPerformance(true);

Verlichting en schaduwen

De volgende methoden beheren de schaduwontvangst en aangepaste puntlichten op 3DGS-oppervlakken. Schaduwgerelateerde methoden moeten nadat de LCC-scène klaar is met laden worden aangeroepen.

SetShadowReceive

public void SetShadowReceive(bool enable)

Schakelt de schaduwontvangst van de puntenwolk in of uit. Wanneer deze is ingeschakeld, kunnen schaduwen van Mesh-objecten in de scène op 3DGS-puntenwolkoppervlakken worden geworpen.

ParameterTypeBeschrijving
enableboolOf schaduwen moeten worden ontvangen

Opmerkingen:

  • Standaard uitgeschakeld.
  • Vereist Mesh-objecten die schaduwen werpen en een Directional Light in de scène.

Voorbeeld:

lccManager.SetShadowReceive(true);

SetShadowColor

public void SetShadowColor(Color color)

Stelt de kleur van het schaduwgebied in.

ParameterTypeBeschrijving
colorColorSchaduwkleur (RGBA)

Opmerkingen:

  • Standaard (0.3, 0.3, 0.3, 1).
  • SetShadowReceive(true) moet eerst worden ingeschakeld.

Voorbeeld:

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

SetShadowStrength

public void SetShadowStrength(float strength)

Stelt de schaduwsterkte in. 0 is geen schaduw, 1 is de sterkste schaduw.

ParameterTypeBeschrijving
strengthfloatSchaduwsterkte, bereik [0, 1], automatisch begrensd bij overschrijding

Opmerkingen:

  • Standaard 1.0.
  • SetShadowReceive(true) moet eerst worden ingeschakeld.

Voorbeeld:

lccManager.SetShadowStrength(0.8f);

SetLights

// Retourwaarde: int, 0=succes, -1=de maximale aantal-limiet overschreden
public int SetLights(List<PointLightData> lights)

Stelt de lijst met aangepaste puntlichten in. Het doorgeven van null of een lege lijst schakelt aangepaste verlichting uit.

ParameterTypeBeschrijving
lightsList<PointLightData>Lijst met puntlichten; zie PointLightData

Opmerkingen:

  • PointLightData.lightType: 0 is een puntlicht (direction / spotAngle genegeerd), 1 is een spotlicht (direction / spotAngle vereist).
  • Het doorgeven van null of een lege lijst schakelt aangepaste verlichting uit.

Voorbeeld:

using Unity.Mathematics; // float3

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

Camerabeheer

SetMainCamera

public void SetMainCamera(Camera _cam)

Stelt de hoofdrendercamera in. LCC gebruikt deze camera voor frustum-culling, LOD-selectie, sortering en andere bewerkingen.

ParameterTypeBeschrijving
_camCameraHoofdrendercamera; geef null door om te wissen

Opmerkingen:

  • Moet vóór Renderer.Load() worden ingesteld.
  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.SetMainCamera(Camera.main);

AddCamera

public void AddCamera(Camera _cam)

Voegt een secundaire camera toe. De secundaire camera neemt deel aan rendering maar heeft geen invloed op de LOD-selectie.

ParameterTypeBeschrijving
_camCameraSecundaire camera

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.
  • De hoofdcamera kan niet als secundaire camera worden toegevoegd.

Voorbeeld:

lccManager.AddCamera(secondCamera);

RemoveCamera

public void RemoveCamera(Camera _cam)

Verwijdert een toegevoegde secundaire camera.

ParameterTypeBeschrijving
_camCameraDe te verwijderen secundaire camera

Opmerkingen:

  • Alleen ondersteund op pc-/Mac-platformen.

Voorbeeld:

lccManager.RemoveCamera(secondCamera);

Knippen / markeren / toon

Knippen, markeren en toon zijn drie soorten bewerkingsbewerkingen, die allemaal het definiëren van het getroffen gebied via 2D-textuur, 3D-geometrie of een combinatie van beide ondersteunen. Zie Data2D, Data3D, DataMix en ToneMix.

SetClip (vlak knippen)

// Retourwaarde: int, 0=succes
public int SetClip(Vector3 planePoint, Vector3 planeNormal, bool inside = true)

Knipt de puntenwolk met een oneindig vlak, waarbij punten aan de normaalzijde of de tegenovergestelde zijde behouden blijven.

ParameterTypeBeschrijving
planePointVector3Een punt op het vlak
planeNormalVector3Vlaknormaal
insidebooltrue behoudt de normaalzijde

Opmerkingen:

  • Sluit andere knipmodi wederzijds uit.

Voorbeeld:

lccManager.SetClip(Vector3.zero, Vector3.up, true); // Behoud boven de grond

SetClip (2D-textuur knippen)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden
public int SetClip(List<Data2D> _2Ds)

Knipt de puntenwolk met behulp van een 2D-geprojecteerde textuurmasker.

ParameterTypeBeschrijving
_2DsList<Data2D>Selectielijst met 2D-texturen

Voorbeeld:

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

SetClip (3D-geometrie knippen)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden, 3=geen geldige geometrie
public int SetClip(List<Data3D> _3Ds)

Knipt de puntenwolk met 3D-geometrie, met ondersteuning voor booleaanse bewerkingen om meerdere geometrieën te combineren.

ParameterTypeBeschrijving
_3DsList<Data3D>Lijst met 3D-geometrieën

Opmerkingen:

  • Ten minste één geometrie met operation == normal is vereist.

Voorbeeld:

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

SetClip (knippen in gemengde modus)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden
public int SetClip(List<DataMix> mix)

Definieert het knipgebied met een combinatie van 2D-texturen en 3D-geometrieën. Elke vermelding specificeert het type via editType.

ParameterTypeBeschrijving
mixList<DataMix>Gemengde selectielijst (2D + 3D)

Voorbeeld:

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()

Verlaat de knipmodus en herstelt de volledige weergave van de puntenwolk.

Voorbeeld:

lccManager.QuitClipMode();

SetHighlight (2D-textuur markeren)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden
public int SetHighlight(List<Data2D> _2Ds)

Markeert de puntenwolk met behulp van een 2D-geprojecteerde textuurmasker; de puntenwolk buiten het gemarkeerde gebied wordt gedimd.

ParameterTypeBeschrijving
_2DsList<Data2D>Selectielijst met 2D-texturen

Opmerkingen:

  • Sluit 3D-markering en gemengde markering wederzijds uit.

Voorbeeld:

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

SetHighlight (3D-geometrie markeren)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden, 3=geen geldige geometrie
public int SetHighlight(List<Data3D> _3Ds)

Definieert het gemarkeerde gebied met 3D-geometrie, met ondersteuning voor booleaanse bewerkingen om te combineren.

ParameterTypeBeschrijving
_3DsList<Data3D>Lijst met 3D-geometrieën

Opmerkingen:

  • Ten minste één geometrie met operation == normal is vereist.

Voorbeeld:

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

SetHighlight (markeren in gemengde modus)

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden
public int SetHighlight(List<DataMix> mix)

Definieert het gemarkeerde gebied met een combinatie van 2D-texturen en 3D-geometrieën.

ParameterTypeBeschrijving
mixList<DataMix>Gemengde selectielijst

Voorbeeld:

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()

Verlaat de markeermodus en herstelt de normale weergave van de puntenwolk.

Voorbeeld:

lccManager.QuitHighlightMode();

SetTone

// Retourwaarde: int, 0=succes, 1=lege lijst, 2=het maximum aantal overschreden
public int SetTone(List<ToneMix> mix)

Past toonaanpassing toe op het geselecteerde gebied, met ondersteuning voor filters voor helderheid, verzadiging, contrast en LUT. Het toongebied kan worden gedefinieerd door 2D-textuur of 3D-geometrie.

ParameterTypeBeschrijving
mixList<ToneMix>Toonmixlijst

Opmerkingen:

  • brightness / saturation / contrast zijn standaard 1.0.
  • lutid is de LUT-filterindex; 0 betekent niet gebruikt.

Voorbeeld:

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()

Verlaat de toonmodus en herstelt de oorspronkelijke kleur van de puntenwolk.

Voorbeeld:

lccManager.QuitToneMode();

Decalprojectie

Decalprojectie projecteert een textuur op 3DGS-oppervlakken langs de richting van de projector. De decal is een in de wereld vastgelegde globale status, consistent voor alle camera's. De typische workflow is: de decal inschakelen → de textuur instellen → de projectorpose instellen. De volgende methoden worden alleen ondersteund op pc-/Mac-platformen.

SetDecalEnabled

public void SetDecalEnabled(bool enable)

Schakelt decalprojectie in of uit. SetDecalTexture() en SetDecalProjection() moeten afzonderlijk worden aangeroepen om de inhoud en de projectorpose in te stellen.

ParameterTypeBeschrijving
enableboolOf decalprojectie moet worden ingeschakeld

Opmerkingen:

  • Uitschakelen wist de in de cache opgeslagen textuur / parameters niet.

Voorbeeld:

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

SetDecalTexture

public void SetDecalTexture(Texture2D tex)

Stelt de decaltextuur in. RGB is de kleur en A is het eigen masker van de decal, dat wordt vermenigvuldigd met de globale opaciteit en de randvervaging.

ParameterTypeBeschrijving
texTexture2DDecaltextuur; het doorgeven van null wist de verwijzing

Voorbeeld:

lccManager.SetDecalTexture(logoTex);

SetDecalProjection

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

Stelt de pose- en perspectiefparameters van de decalprojector in. De projector projecteert langs de voorwaartse richting (+Z) en punten binnen het frustum worden door de decal bedekt.

ParameterTypeBeschrijving
posVector3Wereldpositie van de projector
rotQuaternionOriëntatie van de projector
fovfloatVerticale FOV (graden), begrensd tot [1, 179]
aspectfloatBeeldverhouding, minimaal 1e-4
nearfloatNabij knipvlak, minimaal 1e-3
farfloatVer knipvlak, minimaal near + 1e-3

Voorbeeld:

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

SetDecalOpacity

public void SetDecalOpacity(float opacity)

Stelt de algehele opaciteit van de decal in.

ParameterTypeBeschrijving
opacityfloatAlgehele decalopaciteit, bereik [0, 1], automatisch begrensd bij overschrijding

Voorbeeld:

lccManager.SetDecalOpacity(0.8f);

SetDecalEdgeFade

public void SetDecalEdgeFade(float edgeFade)

Stelt de breedte van de randvervaging van de decal in. 0 is een harde rand en een grotere waarde maakt de randovergang zachter.

ParameterTypeBeschrijving
edgeFadefloatBreedte van de randvervaging (verhouding in UV-ruimte), bereik [0, 0.5), automatisch begrensd bij overschrijding

Voorbeeld:

lccManager.SetDecalEdgeFade(0.1f);

SetDecalOcclusion

public void SetDecalOcclusion(bool enable)

Schakelt decal-occlusieculling in of uit (op basis van de dieptekaart van de projector). Wanneer deze is ingeschakeld, worden afgeschermde oppervlakken niet door de decal bedekt.

ParameterTypeBeschrijving
enableboolOf decal-occlusieculling moet worden ingeschakeld

Opmerkingen:

  • Alleen pc-/Mac-platform en alleen de URP-pipeline.
  • SetDecalProjection() moet zijn aangeroepen om de projector in te stellen voordat deze wordt ingeschakeld.
  • Afhankelijk van de kwaliteitsparameters die door SetDecalOcclusionSettings() zijn geconfigureerd.

Voorbeeld:

lccManager.SetDecalOcclusion(true);

SetDecalOcclusionSettings

public void SetDecalOcclusionSettings(DecalOcclusionSettings settings)

Stelt alle kwaliteitsparameters van decal-occlusieculling in één keer in. Zie DecalOcclusionSettings.

ParameterTypeBeschrijving
settingsDecalOcclusionSettingsKwaliteitsparameters voor occlusieculling

Opmerkingen:

  • Kan op elk moment worden aangepast; parameters worden direct van kracht.

Voorbeeld:

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

Snapping

De snappingfunctie zoekt tijdens raycasting automatisch naar nabijgelegen randen / hoeken om uit te lijnen en wordt vaak gebruikt voor precieze interactie zoals meten en annoteren. De volgende methoden worden alleen ondersteund op pc-/Mac-platformen.

SetSnapEnabled

public void SetSnapEnabled(bool enable)

Schakelt de snappingfunctie in of uit. Wanneer deze is ingeschakeld, zoekt RaycastWithSnap() automatisch naar nabijgelegen randen / hoeken om naar te snappen.

ParameterTypeBeschrijving
enableboolOf snapping moet worden ingeschakeld

Opmerkingen:

  • Standaard uitgeschakeld.
  • Geen effect op mobiel / VR en er wordt een waarschuwing uitgevoerd.

Voorbeeld:

lccManager.SetSnapEnabled(true);

SetSnapRadius

public void SetSnapRadius(float pixels)

Stelt de zoekradius voor snapping in. Zoekt binnen dit pixelbereik naar de dichtstbijzijnde rand / hoek.

ParameterTypeBeschrijving
pixelsfloatZoekradius voor snapping (pixels)

Opmerkingen:

  • Standaard 20 pixels.
  • Een grotere waarde betekent een breder zoekbereik, maar kan naar onbedoelde doelen snappen.

Voorbeeld:

lccManager.SetSnapRadius(30f);

SetEdgeThreshold

public void SetEdgeThreshold(float threshold)

Stelt de randdetectiedrempel in. Een kleinere waarde detecteert meer randen.

ParameterTypeBeschrijving
thresholdfloatRanddetectiedrempel, aanbevolen bereik [0.1, 0.8]

Opmerkingen:

  • Standaard 0.3.
  • Een te kleine waarde levert een grote hoeveelheid ruisranden op.

Voorbeeld:

lccManager.SetEdgeThreshold(0.2f);

SetSnapPreviewEnabled

public void SetSnapPreviewEnabled(bool enable)

Schakelt de snapvoorbeeldfunctie in of uit. Wanneer deze is ingeschakeld, wordt de indicator van het dichtstbijzijnde snapdoel in realtime weergegeven terwijl de muis beweegt.

ParameterTypeBeschrijving
enableboolOf het snapvoorbeeld moet worden ingeschakeld

Opmerkingen:

  • SetSnapEnabled(true) moet eerst worden aangeroepen.
  • Het voorbeeld verbruikt voortdurend GPU-bronnen (detectie elke frame).

Voorbeeld:

lccManager.SetSnapPreviewEnabled(true);

UpdateSnapPreview

public void UpdateSnapPreview(Vector2 mousePos, Camera cam)

Werkt de status van het snapvoorbeeld bij. Wordt aangeroepen terwijl de muis beweegt om de positie van de voorbeeldindicator bij te werken.

ParameterTypeBeschrijving
mousePosVector2Huidige schermcoördinaten van de muis
camCameraCamera

Opmerkingen:

  • SetSnapPreviewEnabled(true) moet eerst worden aangeroepen.
  • Aanbevolen om continu in Update aan te roepen.

Voorbeeld:

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

GetSnapPreviewState

// Retourwaarde: SnapPreviewState
public SnapPreviewState GetSnapPreviewState()

Haalt de huidige status van het snapvoorbeeld op, inclusief of er een snapdoel is, het doeltype, de schermpositie van het doel en de pixelafstand tot de muis. Zie SnapPreviewState.

Opmerkingen:

  • SetSnapPreviewEnabled(true) en UpdateSnapPreview() moeten eerst worden aangeroepen.
  • Retourneert default(SnapPreviewState) wanneer er geen doel is.
  • screenPos is in schermcoördinaten, niet in wereldcoördinaten; gebruik RaycastWithSnap() om HitResult.hitPos voor wereldcoördinaten te verkrijgen.

Voorbeeld:

var state = lccManager.GetSnapPreviewState();
if (state.hasTarget)
{
    // state.snapType: Corner / Edge
    // state.screenPos: schermcoördinaten van het snapdoel
    // state.distanceToMouse: pixelafstand
}

Raycasting- en botsingsquery's

Raycasting wordt gebruikt om punten op 3DGS-oppervlakken te selecteren en botsingsquery's worden gebruikt voor fysieke interactie tussen personages / objecten en de puntenwolk. Het hitresultaat wordt geretourneerd via HitResult.

Opmerking:

Het veld met de wereldcoördinaten van het trefpunt van HitResult heet hitPos (niet position).

Raycast (schermcoördinaten)

// Retourwaarde: bool, true=geraakt
public bool Raycast(Vector3 mousePos, out HitResult _finalResult)

Zendt een straal uit vanuit schermcoördinaten om treffers op de puntenwolk te detecteren. De straal wordt gegenereerd met behulp van de hoofdcamera die door SetMainCamera() is ingesteld.

ParameterTypeBeschrijving
mousePosVector3Schermcoördinaten
_finalResultout HitResultHitresultaat

Opmerkingen:

  • SetMainCamera() moet eerst worden aangeroepen om de hoofdcamera in te stellen.
  • Retourneert het trefpunt dat zich het dichtst bij de camera bevindt.
  • De precisie wordt beïnvloed door SetRaycastDelta() en de maximale afstand wordt beheerd door SetMaxRaycastDistance().

Voorbeeld:

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

Raycast (Ray)

// Retourwaarde: bool, true=geraakt
public bool Raycast(Ray _ray, out HitResult _finalResult)

Voert raycasting uit met een aangepaste Ray, doorloopt alle actieve Renderers en retourneert de dichtstbijzijnde treffer.

ParameterTypeBeschrijving
_rayRayStraal
_finalResultout HitResultHitresultaat

Voorbeeld:

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

RaycastMesh (schermcoördinaten)

// Retourwaarde: bool, true=geraakt
public bool RaycastMesh(Vector3 mousePos, out HitResult _finalResult, float _distance = 70.0f)

Zendt een straal uit vanuit schermcoördinaten om treffers op de botsings-Mesh van de puntenwolk te detecteren. Maakt gebruik van Collider-gegevens voor detectie, wat sneller is dan Raycast() maar minder nauwkeurig.

ParameterTypeBeschrijving
mousePosVector3Schermcoördinaten
_finalResultout HitResultHitresultaat
_distancefloatMaximale detectieafstand, standaard 70.0

Opmerkingen:

  • De gegevens moeten Collider-knooppunten bevatten en Renderer.SetColliderEnable(true) moet eerst worden aangeroepen.

Voorbeeld:

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

RaycastMesh (Ray + Bounds)

// Retourwaarde: bool, true=geraakt
public bool RaycastMesh(Ray ray, out HitResult result, out Bounds hitBounds, float maxDist = 70.0f)

Voert detectie van de botsings-Mesh uit met een aangepaste Ray en retourneert ook het begrenzingskader van het geraakte knooppunt.

ParameterTypeBeschrijving
rayRayStraal
resultout HitResultHitresultaat
hitBoundsout BoundsBegrenzingskader van het geraakte knooppunt
maxDistfloatMaximale detectieafstand, standaard 70.0

Opmerkingen:

  • De gegevens moeten Collider-knooppunten bevatten.

Voorbeeld:

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

RaycastWithSnap

// Retourwaarde: bool, true=geraakt
public bool RaycastWithSnap(Vector2 screenPos, Camera cam, out HitResult result)

Raycasting met snapping. Voert eerst een normale raycast uit en zoekt vervolgens naar randen / hoeken nabij het trefpunt om naar te snappen.

ParameterTypeBeschrijving
screenPosVector2Schermcoördinaten
camCameraCamera
resultout HitResultHitresultaat (inclusief snap-info)

Opmerkingen:

  • SetSnapEnabled(true) moet eerst worden aangeroepen.
  • Alleen pc-/Mac-platformen; niet beschikbaar op mobiel / VR.
  • Snapprioriteit: Corner > Edge > None.
  • HitResult.snapType is het snap-type, HitResult.hitPos is de wereldcoördinaat na het snappen en HitResult.originalHitPos is het oorspronkelijke trefpunt vóór het snappen.

Voorbeeld:

if (lccManager.RaycastWithSnap(mousePos, cam, out HitResult hit))
{
    // hit.snapType: Corner / Edge / None
    // hit.hitPos: wereldcoördinaat na het snappen
    // hit.originalHitPos: oorspronkelijk trefpunt vóór het snappen
}

SetRaycastDelta

public void SetRaycastDelta(float delta)

Stelt de precisieparameter van raycasting in. Een kleinere waarde betekent een hogere precisie maar een hoger prestatieverbruik.

ParameterTypeBeschrijving
deltafloatRaycastingprecisie, bereik [0.1, 10.0], automatisch begrensd bij overschrijding

Opmerkingen:

  • Standaard 0.1.
  • Beïnvloedt de detectieprecisie van alle Raycast()-methoden.

Voorbeeld:

lccManager.SetRaycastDelta(0.5f);

SetMaxRaycastDistance

public void SetMaxRaycastDistance(float _distance)

Stelt de maximale detectieafstand van de Raycast()-methoden in.

ParameterTypeBeschrijving
_distancefloatMaximale raycastafstand, bereik [10, 10000], automatisch begrensd bij overschrijding

Opmerkingen:

  • Beïnvloedt de overbelastingen Raycast(Vector3) / Raycast(Ray); heeft geen invloed op RaycastMesh() (dat een eigen afstandsparameter heeft).

Voorbeeld:

lccManager.SetMaxRaycastDistance(500f);

IntersectsSphere

// Retourwaarde: bool, true=snijdt
public bool IntersectsSphere(Sphere sphere)

// Retourwaarde: bool, true=snijdt
public bool IntersectsSphere(Sphere sphere, out Vector3 delta)

Detecteert of een bol de puntenwolkcollider snijdt. De tweede overbelasting retourneert bovendien de penetratievector, die kan worden gebruikt voor fysiek naar buiten duwen.

ParameterTypeBeschrijving
sphereSphereBol
deltaout Vector3Penetratievector (uitduwrichting en -afstand)

Opmerkingen:

  • De gegevens moeten Collider-knooppunten bevatten en Renderer.SetColliderEnable(true) moet eerst worden aangeroepen.
  • Itereert over alle actieve Renderers.

Voorbeeld:

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

IntersectsCapsule

// Retourwaarde: bool, true=snijdt
public bool IntersectsCapsule(Capsule capsule)

// Retourwaarde: bool, true=snijdt
public bool IntersectsCapsule(Capsule capsule, out Vector3 delta)

Detecteert of een capsule de puntenwolkcollider snijdt, vaak gebruikt voor botsingsdetectie van de character controller. De tweede overbelasting retourneert de penetratievector.

ParameterTypeBeschrijving
capsuleCapsuleCapsule
deltaout Vector3Penetratievector

Opmerkingen:

  • De gegevens moeten Collider-knooppunten bevatten en Renderer.SetColliderEnable(true) moet eerst worden aangeroepen.

Voorbeeld:

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

Visuele effecten

TriggerVFX

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

Activeert een visueel effect op de opgegeven wereldcoördinaat, dat zich vanaf die coördinaat naar buiten verspreidt.

ParameterTypeBeschrijving
vfxOriginWVector3Wereldcoördinaatoorsprong van het effect
vfxidintEffect-ID, standaard 0

Opmerkingen:

  • Moet worden aangeroepen nadat de LCC-scène klaar is met laden.

Voorbeeld:

lccManager.TriggerVFX(hitPoint, 0);

Instantiequery's

GetAllRenderers

// Retourwaarde: List<Renderer>, een kopie van alle geregistreerde Renderer-instanties
public List<Renderer> GetAllRenderers()

Haalt de lijst op van alle momenteel geregistreerde Renderer-instanties (retourneert een kopie).

Voorbeeld:

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