nameID | 属性名称 ID,使用 Shader.PropertyToID 获取。 |
name | 属性名称,例如“_MainTex”。 |
value | 要设置的纹理。 |
element | Optional parameter that specifies the type of data to set from the RenderTexture. |
设置指定的纹理。
许多着色器使用多个纹理。使用 SetTexture 可更改纹理(由着色器属性名称或唯一的属性名称 ID 标识)。
使用标准着色器对材质设置纹理时应该知道,可能需要使用 EnableKeyword 启用以前未使用的着色器功能。有关更多详细信息,请参阅Accessing Materials via Script。
Unity 内置着色器使用的常用纹理名称:\
"_MainTex"
是主漫射纹理。它还可以通过 mainTexture 属性进行访问。\
"_BumpMap"
是法线贴图。
着色器属性还显示设置材质纹理所需的某些关键字。若要查看此内容,请转到材质,然后右键单击顶部的 **Shader** 下拉列表。接下来,选取 **Select Shader**。
By specifying a `RenderTextureSubElement`, you can indicate which type of data to set from the RenderTexture. The possible options are: RenderTextureSubElement.Color, RenderTextureSubElement.Depth, and RenderTextureSubElement.Stencil.
另请参阅:mainTexture 属性、GetTexture、Shader.PropertyToID, 着色器程序中的属性、RenderTextureSubElement。
//Attach this script to your GameObject (make sure it has a Renderer component) //Click on the GameObject. Attach your own Textures in the GameObject’s Inspector.
//This script takes your GameObject’s material and changes its Normal Map, Albedo, and Metallic properties to the Textures you attach in the GameObject’s Inspector. This happens when you enter Play Mode
using UnityEngine;
public class Example : MonoBehaviour {
//Set these Textures in the Inspector public Texture m_MainTexture, m_Normal, m_Metal; Renderer m_Renderer;
// Use this for initialization void Start () { //Fetch the Renderer from the GameObject m_Renderer = GetComponent<Renderer> ();
//Make sure to enable the Keywords m_Renderer.material.EnableKeyword ("_NORMALMAP"); m_Renderer.material.EnableKeyword ("_METALLICGLOSSMAP");
//Set the Texture you assign in the Inspector as the main texture (Or Albedo) m_Renderer.material.SetTexture("_MainTex", m_MainTexture); //Set the Normal map using the Texture you assign in the Inspector m_Renderer.material.SetTexture("_BumpMap", m_Normal); //Set the Metallic Texture as a Texture you assign in the Inspector m_Renderer.material.SetTexture ("_MetallicGlossMap", m_Metal); } }
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.