Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SetVector

Sets a value for a named vector in the material.
Read time 2 minutesLast updated 5 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

SetVector(string, Vector4)

Sets a value for a named vector in the material.
public void SetVector(string name, Vector4 value)

Parameters

name

Property name, e.g. "_WaveAndDistance".

value

Vector value to set.

Remarks

Four component vectors and colors are the same in Unity shaders.
SetVector
does almost exactly the same as Material.SetColor just the input data type is different (
xyzw
in the vector becomes
rgba
in the color). The only difference is that color values are be converted from sRGB to Linear value, when using linear color space (see properties in shader programs).
You can also use SetVector to assign values to float2 or float3 properties defined in the shader.

Examples

using UnityEngine;public class SetVectorExample : MonoBehaviour{ public Material targetMaterial; void Start() { Vector4 customVector = new Vector4(1.0f, 0.5f, 0.0f, 1.0f); // Set the vector to a shader property named "_CustomVector" targetMaterial.SetVector("_CustomVector", customVector); }}

SetVector(int, Vector4)

Sets a value for a named vector in the material.
public void SetVector(int nameID, Vector4 value)

Parameters

nameID

Property name ID, use Shader.PropertyToID to get it.

value

Vector value to set.

Remarks

Four component vectors and colors are the same in Unity shaders.
SetVector
does almost exactly the same as Material.SetColor just the input data type is different (
xyzw
in the vector becomes
rgba
in the color). The only difference is that color values are be converted from sRGB to Linear value, when using linear color space (see properties in shader programs).
You can also use SetVector to assign values to float2 or float3 properties defined in the shader.

Examples

using UnityEngine;public class SetVectorExample : MonoBehaviour{ public Material targetMaterial; void Start() { Vector4 customVector = new Vector4(1.0f, 0.5f, 0.0f, 1.0f); // Set the vector to a shader property named "_CustomVector" targetMaterial.SetVector("_CustomVector", customVector); }}