Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public void SetMatrix(string name, Matrix4x4 value);

public void SetMatrix(int nameID, Matrix4x4 value);

Параметры

nameID Идентификатор имени свойства. Чтобы получить его, используйте Shader.PropertyToID.
name Имя свойства, например. "_CubemapRotation".
value Значение матрицы для установки.

Описание

Задает именованную матрицу для шейдера.

В основном это используется с пользовательскими шейдерами, которым нужны дополнительные параметры матрицы. Параметры матрицы не отображаются в инспекторе материалов, но их можно задать и запросить с помощью SetMatrix и GetMatrix из скриптов.

Смотрите так же: GetMatrix, Materials, ShaderLab documentation, Shader.PropertyToID, Properties in Shader Programs.

using UnityEngine; public class ExampleClass : MonoBehaviour { // Присоединиться к объекту с компонентом Renderer, // и использовать материал с шейдером ниже. public float rotateSpeed = 30f; public void Update() { // Construct a rotation matrix and set it for the shader Quaternion rot = Quaternion.Euler(0, 0, Time.time * rotateSpeed); Matrix4x4 m = Matrix4x4.TRS(Vector3.zero, rot, Vector3.one); GetComponent<Renderer>().material.SetMatrix("_TextureRotation", m); } } // Use this shader on an object together with the above example script. // Шейдер преобразует координаты текстуры с помощью набора матриц из скрипта. Shader "RotatingTexture" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag struct v2f { float2 uv : TEXCOORD0; float4 pos : SV_POSITION; }; float4x4 _TextureRotation; v2f vert (float4 pos : POSITION, float2 uv : TEXCOORD0) { v2f o; o.pos = UnityObjectToClipPos(pos); o.uv = mul(_TextureRotation, float4(uv,0,1)).xy; return o; } sampler2D _MainTex; fixed4 frag (v2f i) : SV_Target { return tex2D(_MainTex, i.uv); } ENDCG } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3