为什么在游戏中调用SetTexture
上的MaterialPropertyBlock
似乎没有效果?如果在GetTexture
上调用MaterialPropertyBlock
,则可以see将其纹理更改为我设置的任何纹理。但是,此脚本所附加到的对象的外观永远不会改变。
private Renderer renderer;
private MaterialPropertyBlock materialPropertyBlockl;
private Texture[] textures;
// ...
private int Frame
{
get
{
return frame;
}
set
{
// ...
renderer.GetPropertyBlock(materialPropertyBlock);
materialPropertyBlock.SetTexture("_MainTex", textures[frame]);
renderer.SetPropertyBlock(materialPropertyBlock);
}
}
// ...
public void Initialise(string model)
{
renderer = GetComponent<Renderer>();
materialPropertyBlock = new MaterialPropertyBlock();
textures = Resources.LoadAll<Texture>(model);
// ...
}
[有两个Renderer
-一个附加到对象,一个附加到对象内部的多边形。我更新的是错误的。