Объявление
public static void MultiTexCoord2(int unit, float x, float y);Описание
Устанавливает текущую координату текстуры (x,y) для фактической единицы
текстуры.
В OpenGL это соответствует glMultiTexCoord
для данного модуля текстуры, если доступно мультитекстурирование. В других графических API эмулируется та же функциональность.
Эту функцию можно вызывать только между функциями GL.Begin и GL.End.
using UnityEngine;
public class Example : MonoBehaviour
{
// Changes between two textures assigned to a material
// When pressed space
Material mat;
bool flagTex = true;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (flagTex)
{
flagTex = false;
}
else
{
flagTex = true;
}
}
}
void OnPostRender()
{
if (!mat)
{
Debug.LogError("Please Assign a material on the inspector");
return;
}
GL.PushMatrix();
mat.SetPass(1);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
if (flagTex)
{
GL.MultiTexCoord2(0, 0, 0); // main texture
}
else
{
GL.MultiTexCoord2(1, 0, 0); // second texture
}
GL.Vertex3(0.25f, 0.25f, 0);
if (flagTex)
{
GL.MultiTexCoord2(0, 0, 1);
}
else
{
GL.MultiTexCoord2(1, 0, 1);
}
GL.Vertex3(0.25f, 0.75f, 0);
if (flagTex)
{
GL.MultiTexCoord2(0, 1, 1);
}
else
{
GL.MultiTexCoord2(1, 1, 1);
}
GL.Vertex3(0.75f, 0.75f, 0);
if (flagTex)
{
GL.MultiTexCoord2(0, 1, 0);
}
else
{
GL.MultiTexCoord2(1, 1, 0);
}
GL.Vertex3(0.75f, 0.25f, 0);
GL.End();
GL.PopMatrix();
}
}