お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseSets current texture coordinate (x,y,z) to the actual texture unit
.
In OpenGL this matches glMultiTexCoord
for the given texture unit
if multi-texturing is available. On other graphics APIs the same
機能性を持つものです。
The Z component is used only when:
1. You access a cubemap (which you access with a vector coordinate, hence x,y & z).
2. You do "projective texturing", where the X & Y coordinates are divided by Z to get the final coordinate. This would be mostly useful for water reflections and similar things.
この関数はGL.BeginとGL.End関数の間で呼び出すことができます。
// Changes between two textures assigned to a material // When pressed space var mat : Material; private var flagTex : boolean = true; function Update() { if (Input.GetKeyDown(KeyCode.Space)) { if(flagTex) { flagTex = false; } else { flagTex = true; } } } function 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.MultiTexCoord3(0,0,0,0); // main texture } else { GL.MultiTexCoord3(1,0,0,0); // second texture } GL.Vertex3(0.25,0.25,0); if (flagTex) { GL.MultiTexCoord3(0,0,1,0); } else { GL.MultiTexCoord3(1,0,1,0); } GL.Vertex3(0.25,0.75,0); if (flagTex) { GL.MultiTexCoord3(0,1,1,0); } else { GL.MultiTexCoord3(1,1,1,0); } GL.Vertex3(0.75,0.75,0); if (flagTex) { GL.MultiTexCoord3(0,1,0,0); } else { GL.MultiTexCoord3(1,1,0,0); } GL.Vertex3(0.75,0.25,0); GL.End(); GL.PopMatrix(); }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Material mat; private 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.MultiTexCoord3(0, 0, 0, 0); else GL.MultiTexCoord3(1, 0, 0, 0); GL.Vertex3(0.25F, 0.25F, 0); if (flagTex) GL.MultiTexCoord3(0, 0, 1, 0); else GL.MultiTexCoord3(1, 0, 1, 0); GL.Vertex3(0.25F, 0.75F, 0); if (flagTex) GL.MultiTexCoord3(0, 1, 1, 0); else GL.MultiTexCoord3(1, 1, 1, 0); GL.Vertex3(0.75F, 0.75F, 0); if (flagTex) GL.MultiTexCoord3(0, 1, 0, 0); else GL.MultiTexCoord3(1, 1, 0, 0); GL.Vertex3(0.75F, 0.25F, 0); GL.End(); GL.PopMatrix(); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public mat as Material private flagTex as bool = true def Update() as void: if Input.GetKeyDown(KeyCode.Space): if flagTex: flagTex = false else: flagTex = true def OnPostRender() as void: if not 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.MultiTexCoord3(0, 0, 0, 0) else: GL.MultiTexCoord3(1, 0, 0, 0) GL.Vertex3(0.25F, 0.25F, 0) if flagTex: GL.MultiTexCoord3(0, 0, 1, 0) else: GL.MultiTexCoord3(1, 0, 1, 0) GL.Vertex3(0.25F, 0.75F, 0) if flagTex: GL.MultiTexCoord3(0, 1, 1, 0) else: GL.MultiTexCoord3(1, 1, 1, 0) GL.Vertex3(0.75F, 0.75F, 0) if flagTex: GL.MultiTexCoord3(0, 1, 0, 0) else: GL.MultiTexCoord3(1, 1, 0, 0) GL.Vertex3(0.75F, 0.25F, 0) GL.End() GL.PopMatrix()