# CopyProbeOcclusionArrayFrom

> This function copies the entire source array into a Vector4 property array named unity_ProbesOcclusion for use with instanced Shadowmask rendering.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## CopyProbeOcclusionArrayFrom(List\<Vector4>)

This function copies the entire source array into a Vector4 property array named unity\_ProbesOcclusion for use with instanced Shadowmask rendering.

```csharp
public void CopyProbeOcclusionArrayFrom(List<Vector4> occlusionProbes)
```

### Parameters

**** (\[List\<Vector4>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): The array of probe occlusion values to copy from.

### Remarks

If the array property doesn't exist on the MaterialPropertyBlock, it will be created with the length of the source array.

Call [LightProbes.CalculateInterpolatedLightAndOcclusionProbes](/engine/6000.0/script-reference/unityengine/lightprobes/calculateinterpolatedlightandocclusionprobes.md) to calculate probe occlusion values at the given world space positions.

ArgumentNullException is thrown if occlusionProbes is null.

Note that all MaterialPropertyBlock arrays can only have a maximum of 1023 elements. Warnings are printed and the excess array elements are ignored if the source array exceeds the range.

Additional Resources: [MaterialPropertyBlock.CopySHCoefficientArraysFrom](/engine/6000.0/script-reference/unityengine/materialpropertyblock/copyshcoefficientarraysfrom.md), [Graphics.RenderMeshInstanced](/engine/6000.0/script-reference/unityengine/graphics/rendermeshinstanced.md), [CommandBuffer.DrawMeshInstanced](/engine/6000.0/script-reference/unityengine/rendering/commandbuffer/drawmeshinstanced.md).

## CopyProbeOcclusionArrayFrom(Vector4\[])

This function copies the entire source array into a Vector4 property array named unity\_ProbesOcclusion for use with instanced Shadowmask rendering.

```csharp
public void CopyProbeOcclusionArrayFrom(Vector4[] occlusionProbes)
```

### Parameters

**** (\[Vector4\[]]\(/engine/6000.0/script-reference/unityengine/vector4)): The array of probe occlusion values to copy from.

### Remarks

If the array property doesn't exist on the MaterialPropertyBlock, it will be created with the length of the source array.

Call [LightProbes.CalculateInterpolatedLightAndOcclusionProbes](/engine/6000.0/script-reference/unityengine/lightprobes/calculateinterpolatedlightandocclusionprobes.md) to calculate probe occlusion values at the given world space positions.

ArgumentNullException is thrown if occlusionProbes is null.

Note that all MaterialPropertyBlock arrays can only have a maximum of 1023 elements. Warnings are printed and the excess array elements are ignored if the source array exceeds the range.

Additional Resources: [MaterialPropertyBlock.CopySHCoefficientArraysFrom](/engine/6000.0/script-reference/unityengine/materialpropertyblock/copyshcoefficientarraysfrom.md), [Graphics.RenderMeshInstanced](/engine/6000.0/script-reference/unityengine/graphics/rendermeshinstanced.md), [CommandBuffer.DrawMeshInstanced](/engine/6000.0/script-reference/unityengine/rendering/commandbuffer/drawmeshinstanced.md).

## CopyProbeOcclusionArrayFrom(List\<Vector4>, int, int, int)

This function copies the source array into a Vector4 property array named unity\_ProbesOcclusion with the specified source and destination range for use with instanced Shadowmask rendering.

```csharp
public void CopyProbeOcclusionArrayFrom(List<Vector4> occlusionProbes, int sourceStart, int destStart, int count)
```

### Parameters

**** (\[List\<Vector4>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): The array of probe occlusion values to copy from.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the first element in the source array to copy from.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the first element in the destination MaterialPropertyBlock array to copy to.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of elements to copy.

### Remarks

If the array property doesn't exist on the MaterialPropertyBlock, it will be created with the length of the spcified range.

Call [LightProbes.CalculateInterpolatedLightAndOcclusionProbes](/engine/6000.0/script-reference/unityengine/lightprobes/calculateinterpolatedlightandocclusionprobes.md) to calculate probe occlusion values at the given world space positions.

ArgumentNullException is thrown if occlusionProbes is null.

ArgumentOutOfRangeException is thrown if the source or destination range is invalid.

Note that all MaterialPropertyBlock arrays can only have a maximum of 1023 elements. Warnings are printed and the excess array elements are ignored if the source array exceeds the range.

Additional Resources: [MaterialPropertyBlock.CopySHCoefficientArraysFrom](/engine/6000.0/script-reference/unityengine/materialpropertyblock/copyshcoefficientarraysfrom.md), [Graphics.RenderMeshInstanced](/engine/6000.0/script-reference/unityengine/graphics/rendermeshinstanced.md), [CommandBuffer.DrawMeshInstanced](/engine/6000.0/script-reference/unityengine/rendering/commandbuffer/drawmeshinstanced.md).

## CopyProbeOcclusionArrayFrom(Vector4\[], int, int, int)

This function copies the source array into a Vector4 property array named unity\_ProbesOcclusion with the specified source and destination range for use with instanced Shadowmask rendering.

```csharp
public void CopyProbeOcclusionArrayFrom(Vector4[] occlusionProbes, int sourceStart, int destStart, int count)
```

### Parameters

**** (\[Vector4\[]]\(/engine/6000.0/script-reference/unityengine/vector4)): The array of probe occlusion values to copy from.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the first element in the source array to copy from.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the first element in the destination MaterialPropertyBlock array to copy to.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of elements to copy.

### Remarks

If the array property doesn't exist on the MaterialPropertyBlock, it will be created with the length of the spcified range.

Call [LightProbes.CalculateInterpolatedLightAndOcclusionProbes](/engine/6000.0/script-reference/unityengine/lightprobes/calculateinterpolatedlightandocclusionprobes.md) to calculate probe occlusion values at the given world space positions.

ArgumentNullException is thrown if occlusionProbes is null.

ArgumentOutOfRangeException is thrown if the source or destination range is invalid.

Note that all MaterialPropertyBlock arrays can only have a maximum of 1023 elements. Warnings are printed and the excess array elements are ignored if the source array exceeds the range.

Additional Resources: [MaterialPropertyBlock.CopySHCoefficientArraysFrom](/engine/6000.0/script-reference/unityengine/materialpropertyblock/copyshcoefficientarraysfrom.md), [Graphics.RenderMeshInstanced](/engine/6000.0/script-reference/unityengine/graphics/rendermeshinstanced.md), [CommandBuffer.DrawMeshInstanced](/engine/6000.0/script-reference/unityengine/rendering/commandbuffer/drawmeshinstanced.md).
