为什么设置材质属性块的纹理无效?

时间:2020-04-05 05:38:27

标签: c# unity3d 3d

为什么在SetTexture上调用MaterialPropertyBlock在游戏中似乎没有效果?如果我在GetTexture上调用MaterialPropertyBlock,我可以看到,其纹理将更改为我设置的纹理。但是,此脚本所附加的对象的外观永远不会改变。

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);

    // ...
}

1 个答案:

答案 0 :(得分:0)

有两个Renderer-一个附加到对象,一个附加到对象内部的多边形。我更新的是错误的。