> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/scene-fusion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfmaterialutils.md).

# Class sfMaterialUtils

Namespace: [KS.SceneFusion.Client.Unity.Editor](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor.md)\
Assembly: KSUnity-Source.dll

Material utility functions.

```csharp
public class sfMaterialUtils
```

#### Inheritance

object ← [sfMaterialUtils](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfmaterialutils.md)

## Methods

### Get() <a href="#ks_scenefusion_client_unity_editor_sfmaterialutils_get" id="ks_scenefusion_client_unity_editor_sfmaterialutils_get"></a>

```csharp
public static sfMaterialUtils Get()
```

#### Returns

[sfMaterialUtils](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfmaterialutils.md)

singleton instance.

### UpdateMaterialOnObject(GameObject, Material, Material, Material) <a href="#ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialonobject_unityengine_gameobject_uni" id="ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialonobject_unityengine_gameobject_uni"></a>

Updates material on a game object.

```csharp
public void UpdateMaterialOnObject(GameObject gameObject, Material material, Material material2d, Material altMaterial)
```

#### Parameters

`gameObject` GameObject

`material` Material

material for mesh renderers.

`material2d` Material

material2d for sprite renderers.

`altMaterial` Material

will use for mesh renderers if the current material has the same name.

### UpdateMaterialOnObjectAndDescendants(GameObject, Material, Material) <a href="#ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialonobjectanddescendants_unityengine" id="ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialonobjectanddescendants_unityengine"></a>

Updates material on a game object and each of its descendants.

```csharp
public void UpdateMaterialOnObjectAndDescendants(GameObject gameObject, Material material, Material material2d)
```

#### Parameters

`gameObject` GameObject

`material` Material

material for mesh renderers.

`material2d` Material

material2d for sprite renderers.

### UpdateMaterialsOnRenderer\<T>(T, Material, int) <a href="#ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialsonrenderer__1___0_unityengine_mate" id="ks_scenefusion_client_unity_editor_sfmaterialutils_updatematerialsonrenderer__1___0_unityengine_mate"></a>

Updates materials on renderer.

```csharp
public void UpdateMaterialsOnRenderer<T>(T renderer, Material material, int materialCount) where T : Renderer
```

#### Parameters

`renderer` T

`material` Material

material to set on renderer.

`materialCount` int

number of materials to set.

#### Type Parameters

`T`
