Renderer.SetPropertyBlock(MaterialPropertyBlock properties, number materialIndex = -1)
Lets you set or clear per-renderer or per-material parameter overrides.
Parameters:
Name | Type | Description |
---|---|---|
properties | MaterialPropertyBlock | Property block with values you want to override. |
materialIndex | number | The index of the Material you want to override the parameters of. The index ranges from 0 to #Renderer.sharedMaterial-1. |
Usage
---@type Renderer
local renderer;
---@type MaterialPropertyBlock
local properties;
---@type number
local materialIndex;
renderer.SetPropertyBlock(properties, materialIndex)
Extra Detail
This is recommended when only a few properties of a Material are different per object. This is more memory efficient than having one complete distinct Material per object. You can also provide a Material index (from 0 to #Renderer.materials-1
). In this case, only parameters of that Material are set. If there is both a per-renderer and a per-material block, only the per-Material block is used. To disable any of per-Renderer or per-Material overrides, pass nil as the property’s argument.