Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Remove(LightProbes)

Unregisters a LightProbes object from the light probe system, removing it from rendering.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public static void Remove(LightProbes lightProbes)

Parameters

lightProbes

The
LightProbes
object to unregister.

Remarks

After calling
Remove
, call LightProbes.Tetrahedralize or LightProbes.TetrahedralizeAsync to apply the changes.
Each call to
Remove
decrements the internal reference count for
lightProbes
. When the count reaches zero, the object's probes are no longer registered for use in rendering.
Remove
is called automatically for
LightProbes
objects belonging to a scene when that scene is unloaded.

Examples

// Attach this script to a GameObject, then enter Play mode.// The script spawns a cloud of randomly placed light probes,// which affects rendering immediately.// Destroying the GameObject removes the probes again.using UnityEngine;using UnityEngine.Rendering;public class SpawnLightProbes : MonoBehaviour{ public int count = 100; public float radius = 5; LightProbes probes; void Start() { probes = new LightProbes(count); Vector3[] positions = new Vector3[count]; SphericalHarmonicsL2[] coefficients = new SphericalHarmonicsL2[count]; for (int i = 0; i < count; i++) { positions[i] = transform.position + Random.insideUnitSphere * radius; SphericalHarmonicsL2 sh = new SphericalHarmonicsL2(); sh.AddAmbientLight(Color.Lerp(Color.red, Color.blue, Random.value)); coefficients[i] = sh; } probes.SetPositionsSelf(positions, false); probes.SetSHCoefficientsSelf(coefficients); LightProbes.Append(probes); LightProbes.Tetrahedralize(); } void OnDestroy() { LightProbes.Remove(probes); LightProbes.Tetrahedralize(); }}